$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: ramey_at_[hidden]
Date: 2008-04-06 16:01:49
Author: ramey
Date: 2008-04-06 16:01:48 EDT (Sun, 06 Apr 2008)
New Revision: 44078
URL: http://svn.boost.org/trac/boost/changeset/44078
Log:
change BOOST_IS_ABSTRACT to BOOST_ASSUME_ABSTRACT
Text files modified: 
   trunk/boost/archive/detail/iserializer.hpp   |     2 +-                                      
   trunk/boost/archive/detail/oserializer.hpp   |     2 +-                                      
   trunk/boost/serialization/export.hpp         |     4 ++--                                    
   trunk/boost/serialization/is_abstract.hpp    |    34 +++++++++++++++++++++++-----------      
   trunk/boost/serialization/shared_ptr_132.hpp |     2 +-                                      
   5 files changed, 28 insertions(+), 16 deletions(-)
Modified: trunk/boost/archive/detail/iserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/iserializer.hpp	(original)
+++ trunk/boost/archive/detail/iserializer.hpp	2008-04-06 16:01:48 EDT (Sun, 06 Apr 2008)
@@ -418,7 +418,7 @@
         // virtual serialize functions used for plug-ins
         typedef BOOST_DEDUCED_TYPENAME
             mpl::eval_if<
-                serialization::is_abstract<const T>,
+                boost::serialization::is_abstract<const T>,
                 mpl::identity<abstract<T> >,
                 mpl::identity<non_abstract<T> >    
             >::type typex;
Modified: trunk/boost/archive/detail/oserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/oserializer.hpp	(original)
+++ trunk/boost/archive/detail/oserializer.hpp	2008-04-06 16:01:48 EDT (Sun, 06 Apr 2008)
@@ -321,7 +321,7 @@
         // virtual serialize functions used for plug-ins
         typedef 
             BOOST_DEDUCED_TYPENAME mpl::eval_if<
-                serialization::is_abstract<T>,
+                boost::serialization::is_abstract<T>,
                 mpl::identity<abstract<T> >,
                 mpl::identity<non_abstract<T> >       
             >::type typex;
Modified: trunk/boost/serialization/export.hpp
==============================================================================
--- trunk/boost/serialization/export.hpp	(original)
+++ trunk/boost/serialization/export.hpp	2008-04-06 16:01:48 EDT (Sun, 06 Apr 2008)
@@ -135,8 +135,8 @@
         // note: exporting an abstract base class will have no effect
         // and cannot be used to instantitiate serialization code
         // (one might be using this in a DLL to instantiate code)
-        //BOOST_STATIC_WARNING(! boost::is_abstract<T>::value);
-        return export_guid(key, serialization::is_abstract<T>());
+        //BOOST_STATIC_WARNING(! boost::serialization::is_abstract<T>::value);
+        return export_guid(key, boost::serialization::is_abstract<T>());
     }
 };
 
Modified: trunk/boost/serialization/is_abstract.hpp
==============================================================================
--- trunk/boost/serialization/is_abstract.hpp	(original)
+++ trunk/boost/serialization/is_abstract.hpp	2008-04-06 16:01:48 EDT (Sun, 06 Apr 2008)
@@ -9,37 +9,49 @@
 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
 // is_abstract_class.hpp:
 
-// (C) Copyright 2002 Rani Sharoni (rani_sharoni_at_[hidden]) and Robert Ramey
+// (C) Copyright 2008 Robert Ramey
 // Use, modification and distribution is subject to the Boost Software
 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
 //  See http://www.boost.org for updates, documentation, and revision history.
 
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
+// this is useful for compilers which don't support the boost::is_abstract
+
 #include <boost/type_traits/is_abstract.hpp>
 
+#ifndef BOOST_NO_IS_ABSTRACT
+
+// if there is an intrinsic is_abstract defined, we don't have to do anything
+#define BOOST_SERIALIZATION_ASSUME_ABSTRACT(T)
+
+// but forward to the "official" is_abstract
 namespace boost {
 namespace serialization {
     template<class T>
-    struct is_abstract
-#ifdef BOOST_NO_IS_ABSTRACT
-      : mpl::false_
+    struct is_abstract : boost::is_abstract<T> {} ;
+} // namespace serialization
+} // namespace boost
+
 #else
-      : boost::is_abstract<T>
-#endif 
-    {};
+// we have to "make" one
+
+namespace boost {
+namespace serialization {
+    template<class T>
+    struct is_abstract : boost::false_type {};
 } // namespace serialization
 } // namespace boost
 
 // define a macro to make explicit designation of this more transparent
-#define BOOST_IS_ABSTRACT(T)                          \
+#define BOOST_SERIALIZATION_ASSUME_ABSTRACT(T)        \
 namespace boost {                                     \
 namespace serialization {                             \
 template<>                                            \
-struct is_abstract<const T > : mpl::true_ {};         \
+struct is_abstract<const T > : boost::true_type {};   \
 }}                                                    \
 /**/
 
+#endif // BOOST_NO_IS_ABSTRACT
+
 #endif //BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP
Modified: trunk/boost/serialization/shared_ptr_132.hpp
==============================================================================
--- trunk/boost/serialization/shared_ptr_132.hpp	(original)
+++ trunk/boost/serialization/shared_ptr_132.hpp	2008-04-06 16:01:48 EDT (Sun, 06 Apr 2008)
@@ -33,7 +33,7 @@
 #include <boost/serialization/void_cast.hpp>
 
 // mark base class as an (uncreatable) base class
-BOOST_IS_ABSTRACT(boost_132::detail::sp_counted_base)
+BOOST_SERIALIZATION_ASSUME_ABSTRACT(boost_132::detail::sp_counted_base)
 
 /////////////////////////////////////////////////////////////
 // Maintain a couple of lists of loaded shared pointers of the old previous