If you use lexical_cast to cast between identical types,

eg. lexical_cast< int >( 4 );

does it go through all the machinery of streaming out and back, or
does it short circuit? In those circumstances, does the type need
to be streamable?

Thanks, Rob.