void do_round_trip(const T& val, std::ios_base::fmtflags f)
{
std::stringstream ss;
-#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
ss << std::setprecision(std::numeric_limits<T>::max_digits10);
-#else
- ss << std::setprecision(std::numeric_limits<T>::digits10 + 3);
-#endif
ss.flags(f);
ss << val;
T new_val = static_cast<T>(ss.str());