$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: bdawes_at_[hidden]
Date: 2007-09-26 13:48:28
Author: bemandawes
Date: 2007-09-26 13:48:27 EDT (Wed, 26 Sep 2007)
New Revision: 39553
URL: http://svn.boost.org/trac/boost/changeset/39553
Log:
Turns out the --dep_name errors were due to functions in the wrong namespace (Chris Kohlhoff)
Text files modified: 
   trunk/boost/filesystem/convenience.hpp          |     3 -                                       
   trunk/boost/system/error_code.hpp               |    47 ++++++++++++++++++++++----------------- 
   trunk/libs/filesystem/src/path.cpp              |     2                                         
   trunk/libs/system/test/error_code_user_test.cpp |    33 +++++++++++++++++-----------            
   4 files changed, 48 insertions(+), 37 deletions(-)
Modified: trunk/boost/filesystem/convenience.hpp
==============================================================================
--- trunk/boost/filesystem/convenience.hpp	(original)
+++ trunk/boost/filesystem/convenience.hpp	2007-09-26 13:48:27 EDT (Wed, 26 Sep 2007)
@@ -45,8 +45,7 @@
            if ( !ph.empty() && !is_directory(ph) )
                boost::throw_exception( basic_filesystem_error<Path>(
                  "boost::filesystem::create_directories", ph,
-                 boost::system::make_error_code(
-                   boost::system::posix::file_exists ) ) );
+                 make_error_code( boost::system::posix::file_exists ) ) );
            return false;
          }
 
Modified: trunk/boost/system/error_code.hpp
==============================================================================
--- trunk/boost/system/error_code.hpp	(original)
+++ trunk/boost/system/error_code.hpp	2007-09-26 13:48:27 EDT (Wed, 26 Sep 2007)
@@ -172,10 +172,6 @@
     static const error_category &  errno_ecat  = get_posix_category();
     static const error_category &  native_ecat = get_system_category();
 
-    //  EDG with --dep_name requires make_error_condition be defined before use
-
-    template <class T> error_condition make_error_condition(T);
-
     //  class error_condition  -----------------------------------------------//
 
     //  error_conditions are portable, error_codes are system or lib specific
@@ -259,10 +255,6 @@
 
     };
 
-    //  EDG with --dep_name requires make_error_code be defined before use
-
-    template <class T> error_code make_error_code(T);
-
     //  class error_code  ----------------------------------------------------//
 
     //  We want error_code to be a value type that can be copied without slicing
@@ -408,13 +400,16 @@
 
     //  make_* functions for posix::posix_errno  -----------------------------//
 
-    //  explicit conversion:
-    template<> inline error_code make_error_code( posix::posix_errno e )
-      { return error_code( e, posix_category ); }
-
-    //  implicit conversion:
-    template<> inline error_condition make_error_condition( posix::posix_errno e )
-      { return error_condition( e, posix_category ); }
+    namespace posix
+    {
+      //  explicit conversion:
+      inline error_code make_error_code( posix_errno e )
+        { return error_code( e, posix_category ); }
+
+      //  implicit conversion:
+      inline error_condition make_error_condition( posix_errno e )
+        { return error_condition( e, posix_category ); }
+    }
 
     //  error_category default implementation  -------------------------------//
 
@@ -496,8 +491,11 @@
     template<> struct is_error_code_enum<cygwin::cygwin_errno>
       { static const bool value = true; };
 
-    template<> inline error_code make_error_code(cygwin::cygwin_errno e)
-      { return error_code( e, system_category ); }
+    namespace cygwin
+    {
+      inline error_code make_error_code( cygwin_errno e )
+        { return error_code( e, system_category ); }
+    }
 
 # elif defined(linux) || defined(__linux) || defined(__linux__)
 
@@ -563,8 +561,11 @@
     template<> struct is_error_code_enum<Linux::linux_error>
       { static const bool value = true; };
 
-    template<> inline error_code make_error_code(Linux::linux_error e)
-      { return error_code( e, system_category ); }
+    namespace Linux
+    {
+      inline error_code make_error_code( linux_error e )
+        { return error_code( e, system_category ); }
+    }
 
 # endif
 
@@ -642,13 +643,17 @@
 
         // TODO: add more Windows errors
       };
+
     }  // namespace windows
 
     template<> struct is_error_code_enum<windows::windows_error>
       { static const bool value = true; };
 
-    template<> inline error_code make_error_code(windows::windows_error e)
-      { return error_code( e, system_category ); }
+    namespace windows
+    {
+      inline error_code make_error_code( windows_error e )
+        { return error_code( e, system_category ); }
+    }
 
 #else
 #  error BOOST_POSIX_API or BOOST_WINDOWS_API must be defined
Modified: trunk/libs/filesystem/src/path.cpp
==============================================================================
--- trunk/libs/filesystem/src/path.cpp	(original)
+++ trunk/libs/filesystem/src/path.cpp	2007-09-26 13:48:27 EDT (Wed, 26 Sep 2007)
@@ -69,7 +69,7 @@
       if ( locked ) boost::throw_exception(
         wfilesystem_error(
           "boost::filesystem::wpath_traits::imbue() after lockdown",
-          system::make_error_code( system::posix::not_supported ) ) );
+          make_error_code( system::posix::not_supported ) ) );
       imbue( new_loc, std::nothrow );
     }
 
Modified: trunk/libs/system/test/error_code_user_test.cpp
==============================================================================
--- trunk/libs/system/test/error_code_user_test.cpp	(original)
+++ trunk/libs/system/test/error_code_user_test.cpp	2007-09-26 13:48:27 EDT (Wed, 26 Sep 2007)
@@ -73,23 +73,26 @@
   namespace lib3
   {
     // lib3 has its own error_category:
-    extern const boost::system::error_category & lib3_error_category;
+    const boost::system::error_category & get_lib3_error_category();
+    const boost::system::error_category & lib3_error_category = get_lib3_error_category();
     
     enum error
     {
       boo_boo=123,
       big_boo_boo
     };
-
   }
 
   namespace system
   {
     template<> struct is_error_code_enum<boost::lib3::error>
       { static const bool value = true; };
+  }
 
-    template<> inline error_code make_error_code(boost::lib3::error e)
-      { return error_code(e,boost::lib3::lib3_error_category); }
+  namespace lib3
+  {
+    inline boost::system::error_code make_error_code(error e)
+      { return boost::system::error_code(e,lib3_error_category); }
   }
 
 }
@@ -125,12 +128,14 @@
         if ( ev == big_boo_boo ) return std::string("big boo boo");
         return std::string("unknown error");
       }
-    };
 
-    const lib3_error_category_imp lib3_error_category_const;
+    };
 
-    const boost::system::error_category & lib3_error_category
-      = lib3_error_category_const;
+    const boost::system::error_category & get_lib3_error_category()
+    {
+      static const lib3_error_category_imp l3ecat;
+      return l3ecat;
+    }
   }
 }
 
@@ -147,7 +152,8 @@
 namespace lib4
 {
   // lib4 has its own error_category:
-  extern const boost::system::error_category & lib4_error_category;
+  const boost::system::error_category & get_lib4_error_category();
+  const boost::system::error_category & lib4_error_category = get_lib4_error_category();
   
   extern const boost::system::error_code boo_boo;
   extern const boost::system::error_code big_boo_boo;
@@ -183,10 +189,11 @@
     }
   };
 
-  const lib4_error_category_imp lib4_error_category_const;
-
-  const boost::system::error_category & lib4_error_category
-    = lib4_error_category_const;
+  const boost::system::error_category & get_lib4_error_category()
+  {
+    static const lib4_error_category_imp l4ecat;
+    return l4ecat;
+  }
 
   const boost::system::error_code boo_boo( 456, lib4_error_category );
   const boost::system::error_code big_boo_boo( 789, lib4_error_category );