Simply use a separate temp variable

The dynamic_cast thing caused error: dynamic_cast from rvalue to
reference type 'std::ostringstream &' (aka 'basic_ostringstream<char>
&') with Clang in C++11 mode.

Clearly putting the value of integer expressions into strings is a
very esoteric corner case that very few C++ programs need to do, if it
is this hard to do it and there is no obvious standard idiom that
would work in all compilers and language vintages.

Change-Id: I46ed2bd2a8f860d7323682b19886ec732b0722c1