Author: sebor Date: Mon Apr 7 14:28:17 2008 New Revision: 645701 URL: http://svn.apache.org/viewvc?rev=645701&view=rev Log: 2008-04-07 Martin Sebor <[EMAIL PROTECTED]>
STDCXX-831 * exmaples/manual/fmtflags_manip.cpp (fmtflags_manip, saveflags): Avoid converting -1 to fmtflags due to the unspecified result of the operation and to silence HP aCC 6 warnings. Modified: stdcxx/trunk/examples/manual/fmtflags_manip.cpp Modified: stdcxx/trunk/examples/manual/fmtflags_manip.cpp URL: http://svn.apache.org/viewvc/stdcxx/trunk/examples/manual/fmtflags_manip.cpp?rev=645701&r1=645700&r2=645701&view=diff ============================================================================== --- stdcxx/trunk/examples/manual/fmtflags_manip.cpp (original) +++ stdcxx/trunk/examples/manual/fmtflags_manip.cpp Mon Apr 7 14:28:17 2008 @@ -36,13 +36,15 @@ // implementation class of the fmtflags manipulator that saves // a stream object's fmtflags state before optionally setting // their new value and restores the saved state when destroyed +// uses ios::basefield as an invalid flags value (it's a valid +// mask but not a valid flags value) class fmtflags_manip { std::ios_base *strm_; std::ios_base::fmtflags saved_; public: - fmtflags_manip (): strm_ (), saved_ (std::ios_base::fmtflags (-1)) { } + fmtflags_manip (): strm_ (), saved_ (std::ios_base::basefield) { } void operator() (std::ios_base &strm, std::ios_base::fmtflags flags) const { @@ -50,7 +52,7 @@ const_cast<fmtflags_manip*>(this)->strm_ = &strm; const_cast<fmtflags_manip*>(this)->saved_ = strm.flags (); - if (flags != std::ios_base::fmtflags (-1)) + if (flags != std::ios_base::basefield) strm.flags (flags); } @@ -64,7 +66,7 @@ // saveflags manipulator to temporarily set formatting flags and // restore their initial value at the end of an insertion statement inline std::__rw_smanip<fmtflags_manip, std::ios_base::fmtflags> -saveflags (std::ios_base::fmtflags flags = std::ios_base::fmtflags (-1)) +saveflags (std::ios_base::fmtflags flags = std::ios_base::basefield) { typedef std::__rw_smanip<fmtflags_manip, std::ios_base::fmtflags> Manip;