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;
 


Reply via email to