$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: bdawes_at_[hidden]
Date: 2008-06-24 10:59:10
Author: bemandawes
Date: 2008-06-24 10:59:10 EDT (Tue, 24 Jun 2008)
New Revision: 46645
URL: http://svn.boost.org/trac/boost/changeset/46645
Log:
Apply LWG issue 805, using a namespace to emulate scoped enums.
Text files modified: 
   trunk/boost/system/error_code.hpp    |    38 +++++++++++++++++++-----------------    
   trunk/libs/system/doc/reference.html |    42 ++++++++++++++++++++--------------------
   trunk/libs/system/src/error_code.cpp |    22 ++++++++++----------                    
   3 files changed, 52 insertions(+), 50 deletions(-)
Modified: trunk/boost/system/error_code.hpp
==============================================================================
--- trunk/boost/system/error_code.hpp	(original)
+++ trunk/boost/system/error_code.hpp	2008-06-24 10:59:10 EDT (Tue, 24 Jun 2008)
@@ -47,11 +47,11 @@
     template< class T >
     struct is_error_condition_enum { static const bool value = false; };
 
-    //  portable error_conditions  -------------------------------------------//
+    //  generic error_conditions  --------------------------------------------//
 
-    namespace posix_error
+    namespace errc
     {
-      enum posix_errno
+      enum errc_t
       {
         success = 0,
         address_family_not_supported = EAFNOSUPPORT,
@@ -134,13 +134,14 @@
         wrong_protocol_type = EPROTOTYPE
       };
 
-    } // namespace posix_error
+    } // namespace errc
 
 # ifndef BOOST_SYSTEM_NO_DEPRECATED
-    namespace posix = posix_error;
+    namespace posix = errc;
+    namespace posix_error = errc;
 # endif
 
-    template<> struct is_error_condition_enum<posix_error::posix_errno>
+    template<> struct is_error_condition_enum<errc::errc_t>
       { static const bool value = true; };
 
 
@@ -199,15 +200,16 @@
     //  predefined error categories  -----------------------------------------//
 
     BOOST_SYSTEM_DECL const error_category &  get_system_category();
-    BOOST_SYSTEM_DECL const error_category &  get_posix_category();
+    BOOST_SYSTEM_DECL const error_category &  get_generic_category();
 
     static const error_category &  system_category = get_system_category();
-    static const error_category &  posix_category = get_posix_category();
+    static const error_category &  generic_category = get_generic_category();
     
 # ifndef BOOST_SYSTEM_NO_DEPRECATED
     //  deprecated synonyms
-    static const error_category &  errno_ecat  = get_posix_category();
-    static const error_category &  native_ecat = get_system_category();
+    static const error_category &  posix_category = get_generic_category();
+    static const error_category &  errno_ecat     = get_generic_category();
+    static const error_category &  native_ecat    = get_system_category();
 # endif
 
     //  class error_condition  -----------------------------------------------//
@@ -219,7 +221,7 @@
     public:
 
       // constructors:
-      error_condition() : m_val(0), m_cat(&get_posix_category()) {}
+      error_condition() : m_val(0), m_cat(&get_generic_category()) {}
       error_condition( int val, const error_category & cat ) : m_val(val), m_cat(&cat) {}
 
       template <class ConditionEnum>
@@ -248,7 +250,7 @@
       void clear()
       {
         m_val = 0;
-        m_cat = &get_posix_category();
+        m_cat = &get_generic_category();
       }
 
       // observers:
@@ -436,17 +438,17 @@
         + reinterpret_cast<std::size_t>(&ec.category());
     }
 
-    //  make_* functions for posix_error::posix_errno  -----------------------------//
+    //  make_* functions for errc::errc_t  -----------------------------//
 
-    namespace posix_error
+    namespace errc
     {
       //  explicit conversion:
-      inline error_code make_error_code( posix_errno e )
-        { return error_code( e, get_posix_category() ); }
+      inline error_code make_error_code( errc_t e )
+        { return error_code( e, get_generic_category() ); }
 
       //  implicit conversion:
-      inline error_condition make_error_condition( posix_errno e )
-        { return error_condition( e, get_posix_category() ); }
+      inline error_condition make_error_condition( errc_t e )
+        { return error_condition( e, get_generic_category() ); }
     }
 
     //  error_category default implementation  -------------------------------//
Modified: trunk/libs/system/doc/reference.html
==============================================================================
--- trunk/libs/system/doc/reference.html	(original)
+++ trunk/libs/system/doc/reference.html	2008-06-24 10:59:10 EDT (Tue, 24 Jun 2008)
@@ -132,10 +132,10 @@
     template< class T="" >
       struct is_error_condition_enum { static const bool value = false; };
 
-    //  portable error_conditions
-    namespace posix_error
+    //  generic error_conditions
+    namespace errc
     {
-      enum posix_errno
+      enum errc_t
       {
         success = 0,
         address_family_not_supported,   //EAFNOSUPPORT
@@ -218,9 +218,9 @@
         wrong_protocol_type             //EPROTOTYPE
       };
 
-    } // namespace posix_error
+    } // namespace errc
 
-    template<> struct is_error_condition_enum<posix::posix_errno><posix_error::posix_errno>
+    template<> struct is_error_condition_enum<posix::posix_errno><errc::errc_t>
       { static const bool value = true; };
 
     bool operator==( const error_code & lhs, const error_code & rhs );
@@ -236,8 +236,8 @@
     bool operator<( const error_code & lhs, const error_code & rhs );
     bool operator<( const error_condition & lhs, const error_condition & rhs );
 
-    error_code make_error_code( posix_error::posix_errno e );
-    error_condition make_error_condition( posix_error::posix_errno e );
+    error_code make_error_code( errc::errc_t e );
+    error_condition make_error_condition( errc::errc_t e );
 
     template <class charT, class traits>
       std::basic_ostream<charT,traits>&
@@ -247,7 +247,7 @@
   }
 }</pre>
 </blockquote>
-<p>The value of each<code> posix_errno</code> constant shall be the same as the 
+<p>The value of each<code> errc_t</code> constant shall be the same as the 
 value of the <code><cerrno></code> macro shown in the above synopsis.</p>
 <p>Users may specialize <code>is_error_code_enum</code> and <code>
 is_error_condition_enum</code> templates to indicate that a type is eligible for 
@@ -290,10 +290,10 @@
     };
 
     const error_category &  get_system_category();
-    const error_category &  get_posix_category();
+    const error_category &  get_generic_category();
 
     static const error_category &  system_category = get_system_category();
-    static const error_category &  posix_category = get_posix_category();
+    static const error_category &  generic_category = get_generic_category();
   }
 }</pre>
 </blockquote>
@@ -316,7 +316,7 @@
   <p><i>Returns:</i>  <code>error_condition( ev, *this )</code>.</p>
   <blockquote>
     <p> [<i>--Note:</i> Derived classes will typically convert <code>ev</code> 
-    to some portable <code>error_category</code>, such as <code>posix_category</code>, 
+    to some portable <code>error_category</code>, such as <code>generic_category</code>, 
     and return it as an <code>error_condition</code> for that category. <i>--end 
     note</i>]</p>
   </blockquote>
@@ -361,7 +361,7 @@
   identifying errors originating from the operating system.</p>
   <p><i>Throws:</i> Nothing.</p>
 </blockquote>
-<pre>const error_category & get_posix_category();</pre>
+<pre>const error_category & get_generic_category();</pre>
 <blockquote>
   <p><i>Returns:</i> A reference to a <code>error_category</code> object 
   identifying portable error conditions.</p>
@@ -370,7 +370,7 @@
 <h3><a name="Class-error_category-predefined-objects">Class <code>error_category</code> 
 predefined objects</a></h3>
 <p>Predefined objects <code>system_category</code> 
-and <code>posix_category</code> identify operating system error codes and portable error conditions, respectively.</p>
+and <code>generic_category</code> identify operating system error codes and portable error conditions, respectively.</p>
 <h2><a name="Class-error_code">Class <code>
 error_code</code></a></h2>
 <p>The class <code>error_code</code> describes an object used to hold error code 
@@ -454,7 +454,7 @@
 </blockquote>
 <p><code>void clear();</code></p>
 <blockquote>
-  <p><i>postcondition:</i> <code>value() == 0 && category() == posix_category</code></p>
+  <p><i>postcondition:</i> <code>value() == 0 && category() == generic_category</code></p>
 </blockquote>
   <h3><a name="Class-error_code-observers">Class <code>
 error_code</code> observers</a></h3>
@@ -538,7 +538,7 @@
 <pre>error_condition(); </pre>
 <blockquote>
   <p><i>Effects:</i> Constructs an object of type <code>error_condition</code>.</p>
-  <p><i>Postconditions:</i> <code>val_ == 0 and cat_ == posix_category</code>.</p>
+  <p><i>Postconditions:</i> <code>val_ == 0 and cat_ == generic_category</code>.</p>
   <p><i>Throws:</i> Nothing.</p>
 </blockquote>
 <pre>error_condition( value_type val, const error_category & cat );</pre>
@@ -571,7 +571,7 @@
 </blockquote>
 <p><code>void clear();</code></p>
 <blockquote>
-  <p><i>postcondition:</i> <code>value() == 0 && category() == posix_category</code></p>
+  <p><i>postcondition:</i> <code>value() == 0 && category() == generic_category</code></p>
 </blockquote>
 <h3><a name="Class-error_condition-observers">Class <code>error_condition</code> 
 observers</a></h3>
@@ -651,13 +651,13 @@
     || (lhs.category() == rhs.category() && lhs.value() < rhs.value())</code>.</p>
   <p><i>Throws: </i>Nothing.</p>
 </blockquote>
-<pre>error_code make_error_code( posix_error::posix_errno e );</pre>
+<pre>error_code make_error_code( errc::errc_t e );</pre>
 <blockquote>
-  <p><i>Returns:</i> <code>error_code( e, posix_category)</code>.</p>
+  <p><i>Returns:</i> <code>error_code( e, generic_category)</code>.</p>
 </blockquote>
-<pre>error_condition make_error_condition( posix_error::posix_errno e );</pre>
+<pre>error_condition make_error_condition( errc::errc_t e );</pre>
 <blockquote>
-  <p><i>Returns:</i> <code>error_condition( e, posix_category)</code>.</p>
+  <p><i>Returns:</i> <code>error_condition( e, generic_category)</code>.</p>
 </blockquote>
 
 <pre>template <class charT, class traits>
@@ -743,7 +743,7 @@
 <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
 
 <p>Revised 
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%B %d, %Y" startspan -->November 12, 2007<!--webbot bot="Timestamp" endspan i-checksum="39581" --> </font>
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%B %d, %Y" startspan -->June 24, 2008<!--webbot bot="Timestamp" endspan i-checksum="14232" --> </font>
 </p>
 
 </body>
Modified: trunk/libs/system/src/error_code.cpp
==============================================================================
--- trunk/libs/system/src/error_code.cpp	(original)
+++ trunk/libs/system/src/error_code.cpp	2008-06-24 10:59:10 EDT (Tue, 24 Jun 2008)
@@ -38,12 +38,12 @@
 
 namespace
 {
-  //  standard error categories  -------------------------------------------//
+  //  standard error categories  ---------------------------------------------//
 
-  class posix_error_category : public error_category
+  class generic_error_category : public error_category
   {
   public:
-    posix_error_category(){}
+    generic_error_category(){}
     const char *   name() const;
     std::string    message( int ev ) const;
   };
@@ -57,14 +57,14 @@
     error_condition     default_error_condition( int ev ) const;
   };
 
-  //  posix_error_category implementation  ---------------------------------//
+  //  generic_error_category implementation  ---------------------------------//
 
-  const char * posix_error_category::name() const
+  const char * generic_error_category::name() const
   {
-    return "POSIX";
+    return "GENERIC";
   }
 
-  std::string posix_error_category::message( int ev ) const
+  std::string generic_error_category::message( int ev ) const
   {
   // strerror_r is preferred because it is always thread safe,
   // however, we fallback to strerror in certain cases because:
@@ -318,7 +318,7 @@
 
   std::string system_error_category::message( int ev ) const
   {
-    return posix_category.message( ev );
+    return generic_category.message( ev );
   }
 # else
 // TODO:
@@ -402,10 +402,10 @@
       return system_category_const;
     }
 
-    BOOST_SYSTEM_DECL const error_category & get_posix_category()
+    BOOST_SYSTEM_DECL const error_category & get_generic_category()
     {
-      static const posix_error_category posix_category_const;
-      return posix_category_const;
+      static const generic_error_category generic_category_const;
+      return generic_category_const;
     }
 
   } // namespace system