Replacing the use of <iomanip> with <boost/detail/iomanip.hpp> across Boost.

On Linux, GNU's libstdc++, which is the default stdlib for icc and clang,
cannot parse the <iomanip> header in version 4.5+ (which thankfully neither
compiler advises the use of yet), as it's original C++98-friendly
implementation has been replaced with a gnu++0x implementation.
<boost/detail/iomanip.hpp> is a portable implementation of <iomanip>, providing
boost::detail::setfill, boost::detail::setbase, boost::detail::setw,
boost::detail::setprecision, boost::detail::setiosflags and
boost::detail::resetiosflags. 



[SVN r68140]
This commit is contained in:
Bryce Adelstein-Lelbach
2011-01-14 02:35:58 +00:00
parent 56ae4311bb
commit e43210c417
6 changed files with 42 additions and 3 deletions

View File

@ -13,7 +13,7 @@
#endif
#include <boost/exception/detail/type_info.hpp>
#include <iomanip>
#include <boost/detail/iomanip.hpp>
#include <ios>
#include <string>
#include <sstream>
@ -36,9 +36,9 @@ boost
s.fill('0');
s.width(2);
unsigned char const * b=reinterpret_cast<unsigned char const *>(&x);
s << std::setw(2) << std::hex << (unsigned int)*b;
s << boost::detail::setw(2) << std::hex << (unsigned int)*b;
for( unsigned char const * e=b+n; ++b!=e; )
s << " " << std::setw(2) << std::hex << (unsigned int)*b;
s << " " << boost::detail::setw(2) << std::hex << (unsigned int)*b;
return s.str();
}
}