Make <boost/detail/iomanip.hpp> include <iomanip> and put the <iomanip> functions

in the boost::detail namespace if not on clang- or intel-linux.



[SVN r68165]
This commit is contained in:
Bryce Adelstein-Lelbach
2011-01-15 02:23:46 +00:00
parent 74a47fbf05
commit e3049b1480

View File

@@ -8,15 +8,19 @@
#ifndef BOOST_DETAIL_IOMANIP_HPP #ifndef BOOST_DETAIL_IOMANIP_HPP
#define BOOST_DETAIL_IOMANIP_HPP #define BOOST_DETAIL_IOMANIP_HPP
#include <ios> #include <boost/config.hpp>
#include <istream>
#include <ostream>
namespace boost { #if (defined(BOOST_CLANG) || defined(BOOST_INTEL_LINUX)) && \
namespace detail { defined(BOOST_GNU_STDLIB)
#include <ios>
#include <istream>
#include <ostream>
//[resetiosflags namespace boost {
class resetiosflags_manip { namespace detail {
//[resetiosflags
class resetiosflags_manip {
private: private:
std::ios_base::fmtflags mask; std::ios_base::fmtflags mask;
@@ -41,15 +45,15 @@ class resetiosflags_manip {
os.unsetf(x.mask); os.unsetf(x.mask);
return os; return os;
} }
}; };
inline resetiosflags_manip resetiosflags (std::ios_base::fmtflags mask) { inline resetiosflags_manip resetiosflags (std::ios_base::fmtflags mask) {
return resetiosflags_manip(mask); return resetiosflags_manip(mask);
} }
//] //]
//[setiosflags //[setiosflags
class setiosflags_manip { class setiosflags_manip {
private: private:
std::ios_base::fmtflags mask; std::ios_base::fmtflags mask;
@@ -72,15 +76,15 @@ class setiosflags_manip {
os.setf(x.mask); os.setf(x.mask);
return os; return os;
} }
}; };
inline setiosflags_manip setiosflags (std::ios_base::fmtflags mask) { inline setiosflags_manip setiosflags (std::ios_base::fmtflags mask) {
return setiosflags_manip(mask); return setiosflags_manip(mask);
} }
//] //]
//[setbase //[setbase
class setbase_manip { class setbase_manip {
private: private:
int base; int base;
@@ -127,16 +131,16 @@ class setbase_manip {
return os; return os;
} }
} }
}; };
inline setbase_manip setbase (int base) { inline setbase_manip setbase (int base) {
return setbase_manip(base); return setbase_manip(base);
} }
//] //]
//[setfill //[setfill
template<class CharT> template<class CharT>
class setfill_manip { class setfill_manip {
private: private:
CharT fill; CharT fill;
@@ -150,16 +154,16 @@ class setfill_manip {
os.fill(x.fill); os.fill(x.fill);
return os; return os;
} }
}; };
template<class CharT> template<class CharT>
inline setfill_manip<CharT> setfill (CharT c) { inline setfill_manip<CharT> setfill (CharT c) {
return setfill_manip<CharT>(c); return setfill_manip<CharT>(c);
} }
//] //]
//[setprecision //[setprecision
class setprecision_manip { class setprecision_manip {
private: private:
int n; int n;
@@ -182,15 +186,15 @@ class setprecision_manip {
os.precision(x.n); os.precision(x.n);
return os; return os;
} }
}; };
inline setprecision_manip setprecision (int n_) { inline setprecision_manip setprecision (int n_) {
return setprecision_manip(n_); return setprecision_manip(n_);
} }
//] //]
//[setw //[setw
class setw_manip { class setw_manip {
private: private:
int n; int n;
@@ -211,15 +215,32 @@ class setw_manip {
os.width(x.n); os.width(x.n);
return os; return os;
} }
}; };
inline setw_manip setw (int n_) { inline setw_manip setw (int n_) {
return setw_manip(n_); return setw_manip(n_);
} }
//] //]
} // detail } // detail
} // boost } // boost
#else
#include <iomanip>
namespace boost {
namespace detail {
using ::std::resetiosflags;
using ::std::setiosflags;
using ::std::setbase;
using ::std::setfill;
using ::std::setprecision;
using ::std::setw;
} // detail
} // boost
#endif
#endif // BOOST_DETAIL_IOMANIP_HPP #endif // BOOST_DETAIL_IOMANIP_HPP