$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r73225 - in sandbox/conversion/boost/conversion: . boost std type_traits
From: vicente.botet_at_[hidden]
Date: 2011-07-18 19:57:50
Author: viboes
Date: 2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
New Revision: 73225
URL: http://svn.boost.org/trac/boost/changeset/73225
Log:
conversion: cleanup of ENBALE_CND
Text files modified: 
   sandbox/conversion/boost/conversion/assign_to.hpp                 |    40 -------------------------------         
   sandbox/conversion/boost/conversion/assignable_to.hpp             |    23 +----------------                       
   sandbox/conversion/boost/conversion/boost/array.hpp               |     8 ++---                                   
   sandbox/conversion/boost/conversion/boost/interval.hpp            |     4 +-                                      
   sandbox/conversion/boost/conversion/boost/optional.hpp            |     6 ++--                                    
   sandbox/conversion/boost/conversion/boost/rational.hpp            |     4 +-                                      
   sandbox/conversion/boost/conversion/boost/tuple.hpp               |     4 +-                                      
   sandbox/conversion/boost/conversion/config.hpp                    |    36 ---------------------------             
   sandbox/conversion/boost/conversion/convert_to_or_fallback.hpp    |    46 ------------------------------------    
   sandbox/conversion/boost/conversion/convertible_from.hpp          |     6 ---                                     
   sandbox/conversion/boost/conversion/convertible_to.hpp            |     4 ---                                     
   sandbox/conversion/boost/conversion/explicit_convert_to.hpp       |    51 ----------------------------------------
   sandbox/conversion/boost/conversion/implicit_convert_to.hpp       |     4 +-                                      
   sandbox/conversion/boost/conversion/std/pair.hpp                  |    19 +++++++++-----                          
   sandbox/conversion/boost/conversion/std/string.hpp                |    30 -----------------------                 
   sandbox/conversion/boost/conversion/std/vector.hpp                |    14 +++++++---                              
   sandbox/conversion/boost/conversion/type_traits/is_assignable.hpp |     5 ---                                     
   17 files changed, 39 insertions(+), 265 deletions(-)
Modified: sandbox/conversion/boost/conversion/assign_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/assign_to.hpp	(original)
+++ sandbox/conversion/boost/conversion/assign_to.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -45,7 +45,6 @@
   namespace conversion {
 
 
-#if defined(BOOST_CONVERSION_ENABLE_CND) || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     //! Customization point for @c assign_to.
     //!
     //! @tparam Target target type of the conversion.
@@ -197,45 +196,6 @@
       }
     };
 
-
-#else
-    template < typename Target, typename Source, class Enable = void>
-    struct assigner_cp :  true_type
-    {
-      //! @Effects Converts the @c from parameter to  the @c to parameter, using by default the assignment operator.
-      //! @Throws Whatever the underlying assignment operator of the @c Target class throws.
-      Target& operator()(Target& to, const Source& from)
-      {
-        to = ::boost::conversion::implicit_convert_to<Target>(from);
-        return to;
-      }
-    };
-    template < typename Target, typename Source, class Enable = void>
-    struct assigner : assigner_cp<Target,Source,Enable> {};
-
-    //! Partial specialization for c-array types.
-    //!
-    //! @Requires @c Target must be CopyAssinable and @c @c Source must be extrinsic convertible to @c Target.
-    template < typename Target, typename Source, std::size_t N  >
-    struct assigner<Target[N],Source[N]
-    > : true_type
-    {
-      //! @Effects  Converts the @c from parameter to the @c to parameter, using by default the assignment operator on each one of the array elements.
-      //! @Throws  Whatever the underlying assignment operator of the @c Target class throws.
-      //! @Basic
-      Target*& operator()(Target(&to)[N], const Source(& from)[N])
-      {
-        for (std::size_t i = 0; i < N; ++i)
-        {
-          to[i] = ::boost::conversion::implicit_convert_to<Target>(from[i]);
-        }
-        return to;
-      }
-    };
-
-#endif
-
-
   }
 
 #if defined(BOOST_CONVERSION_DOUBLE_CP)
Modified: sandbox/conversion/boost/conversion/assignable_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/assignable_to.hpp	(original)
+++ sandbox/conversion/boost/conversion/assignable_to.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -41,20 +41,6 @@
       //! @NoThrow.
       assignable_to(Target& r) : ref_(r) {}
 
-//      //! Implicit conversion to @c U.
-//      //! @Effects Forwards the conversion from the reference using @c conver_to.
-//      //! @Returns @c *this
-//      //! @Throws Whatever @c convert_to throws.
-//      template <typename U
-//#if defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
-//      , typename boost::enable_if< is_extrinsically_convertible<Target,U>, int >::type = 0
-//#endif
-//      >
-//      operator U()
-//      {
-//        return boost::conversion::convert_to<U>(ref_);
-//      }
-
       //! Assignment.
       //!
       //! @Effects Forwards the assignment to the reference.
@@ -73,7 +59,7 @@
       //! @Throws Whatever @c assign_to throws.
       //! @Remark This constructor doesn't participates on overload resolution if @c Source is not extrinsic assignable to @c Target.
       template <typename Source>
-#if defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
       typename boost::enable_if< is_extrinsically_assignable<Target,Source>, assignable_to& >::type
 #else
       assignable_to&
@@ -91,7 +77,7 @@
       //! @Throws Whatever @c assign_to throws.
       //! @Remark This constructor doesn't participates on overload resolution if @c Source is not extrinsic assignable to @c Target.
       template <typename Source>
-#if defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
       typename boost::enable_if< is_extrinsically_assignable<Target,Source>, assignable_to& >::type
 #else
       assignable_to&
@@ -106,11 +92,6 @@
 
     //! The result is able to transform conversion by convert_to calls and assignments by assign_to calls.
     //! @NoThrow.
-    //~ template <typename Target>
-    //~ assignable_to<Target> mat(Target& r)
-    //~ {
-      //~ return assignable_to<Target>(r);
-    //~ }
     template <typename Target>
     assignable_to<Target> lvalue(Target& r)
     {
Modified: sandbox/conversion/boost/conversion/boost/array.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/array.hpp	(original)
+++ sandbox/conversion/boost/conversion/boost/array.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -48,7 +48,7 @@
         , requires(
         ExtrinsicallyAssignable<Target,Source>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_assignable<Target, Source>::value
         >::type
@@ -78,7 +78,7 @@
         ExtrinsicallyAssignable<Target,Source>
   && ! Assignable<Target, Source>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_assignable<Target,Source>::value
   && ! is_assignable<Target, Source>::value
@@ -99,7 +99,6 @@
     /**
      * Partial specialization of @c assigner for @c boost::array of the same size
      */
-#if defined(BOOST_CONVERSION_ENABLE_CND) || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     template < typename Target, typename Source, std::size_t N>
     struct assigner_cp< array<Target,N>, array<Source,N>
 #if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
@@ -107,7 +106,7 @@
         ExtrinsicallyAssignable<Target,Source>
      && Assignable<Target, Source>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_assignable<Target,Source>::value
      && is_assignable<Target, Source>::value
@@ -125,7 +124,6 @@
         return to;
       }
     };
-#endif
   }
 
 #if defined(BOOST_CONVERSION_DOUBLE_CP)
Modified: sandbox/conversion/boost/conversion/boost/interval.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/interval.hpp	(original)
+++ sandbox/conversion/boost/conversion/boost/interval.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -37,7 +37,7 @@
         , requires(
         ExtrinsicallyConvertible<Source,Target>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<Source,Target>::value
         >::type
@@ -56,7 +56,7 @@
         , requires(
         ExtrinsicallyConvertible<Source,Target>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<Source,Target>::value
         >::type
Modified: sandbox/conversion/boost/conversion/boost/optional.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/optional.hpp	(original)
+++ sandbox/conversion/boost/conversion/boost/optional.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -46,7 +46,7 @@
         , requires(
         ExtrinsicallyConvertible<Source,Target>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<Source,Target>::value
         >::type
@@ -72,7 +72,7 @@
         ExtrinsicallyConvertible<Source,Target>
         && ! Optional<Source>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<Source,Target>::value
         && ! detail::is_optional<Source>::value
@@ -107,7 +107,7 @@
         ExtrinsicallyExplicit_convertible<Source,Target>
         && ! Optional<Source>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_explicit_convertible<Source,Target>::value
         && ! detail::is_optional<Source>::value
Modified: sandbox/conversion/boost/conversion/boost/rational.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/rational.hpp	(original)
+++ sandbox/conversion/boost/conversion/boost/rational.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -43,7 +43,7 @@
         , requires(
         ExtrinsicallyConvertible<Source,Target>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<Source,Target>::value
         >::type
@@ -62,7 +62,7 @@
         , requires(
         ExtrinsicallyConvertible<Source,Target>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<Source,Target>::value
         >::type
Modified: sandbox/conversion/boost/conversion/boost/tuple.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/tuple.hpp	(original)
+++ sandbox/conversion/boost/conversion/boost/tuple.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -36,7 +36,7 @@
     ExtrinsicallyConvertible<S1,T1>
     && ExtrinsicallyConvertible<S2,T2>
     )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<S1,T1>::value
      && is_extrinsically_convertible<S2,T2>::value
@@ -60,7 +60,7 @@
         && ExtrinsicallyConvertible<S2,T2>
         && ExtrinsicallyConvertible<S3,T3>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_convertible<S1,T1>::value
         && is_extrinsically_convertible<S2,T2>::value
Modified: sandbox/conversion/boost/conversion/config.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/config.hpp	(original)
+++ sandbox/conversion/boost/conversion/config.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -18,42 +18,8 @@
 #include <boost/config.hpp>
 #include <boost/utility/enable_if.hpp>
 
-#define BOOST_CONVERSION_REQUIRES(CND) \
-                , typename enable_if_c< CND >::type
 
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
-  #define BOOST_CONVERSION_ENABLE_CND
-#else
-  #if ! defined(BOOST_NO_DECLTYPE)
-    #if defined _MSC_VER
-    #elif defined __clang__
-         #define BOOST_CONVERSION_ENABLE_CND
-    #elif defined __GNUC__
-       #if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
-       #endif
-       #define BOOST_CONVERSION_ENABLE_CND
-    #else
-      #define BOOST_CONVERSION_ENABLE_CND
-    #endif
-  #else
-    #if defined _MSC_VER
-       #define BOOST_CONVERSION_NO_IS_ASSIGNABLE
-    #elif defined __clang__
-         #define BOOST_CONVERSION_ENABLE_CND
-    #elif defined __GNUC__
-       #if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
-       #endif
-       #define BOOST_CONVERSION_ENABLE_CND
-    #else
-    #endif
-  #endif
-#endif
-
-#if !defined BOOST_CONVERSION_ENABLE_CND
-#define BOOST_CONVERSION_ENABLE_CND
-#endif
-
-#if defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
+#if !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
   #if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
   #else
     #define BOOST_CONVERSION_IMPLICITLY_ENABLED
Modified: sandbox/conversion/boost/conversion/convert_to_or_fallback.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/convert_to_or_fallback.hpp	(original)
+++ sandbox/conversion/boost/conversion/convert_to_or_fallback.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -45,7 +45,6 @@
 
 namespace boost {
   namespace conversion {
-#if defined(BOOST_CONVERSION_ENABLE_CND) || !defined(BOOST_NO_SFINAE_EXPR)  || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     //! Customization point for @c convert_to_or_fallback.
     //!
     //! @tparam Target target type of the conversion.
@@ -103,46 +102,7 @@
         }
       }
     };
-#else
-    //! @tparam Target target type of the conversion.
-    //! @tparam Source source type of the conversion.
-    //! @tparam Fallback type of the fallback value which must be explicitly convertible to @c Target.
-    //! @tparam Enable A dummy template parameter that can be used for SFINAE.
-    template < typename Target, typename Source, typename Fallback=Target, class Enable = void>
-    struct converter_or_fallbacker_cp {};
 
-    //! Default @c converter_or_fallbacker.
-    //! @tparam Target target type of the conversion.
-    //! @tparam Source source type of the conversion.
-    //! @tparam Fallback type of the fallback value which must be explicitly convertible to @c Target.
-    //! @tparam Enable A dummy template parameter that can be used for SFINAE.
-    template < typename Target, typename Source, typename Fallback=Target, class Enable = void>
-    struct converter_or_fallbacker : converter_or_fallbacker_cp<Target,Source,Fallback,Enable> {};
-
-    //! @tparam Target target type of the conversion.
-    //! @tparam Source source type of the conversion.
-    //! @tparam Fallback type of the fallback value which must be explicitly convertible to @c Target.
-    //! @tparam Enable A dummy template parameter that can be used for SFINAE.
-    template < typename Target, typename Source, typename Fallback>
-    struct converter_or_fallbacker<Target, Source, Fallback>
-    {
-      //!
-      //! @Requires @c Fallback must be convertible to @c Target and @c ::boost::conversion::convert_to<Target>(from) must be well formed.
-      //! @Returns The converted value if the conversion succeeds or the fallback.
-      //! @Throws  Whatever the conversion from @c Fallback to @c Target can throws when the conversion fails.
-      Target operator()(const Source& val, Fallback const& fallback)
-      {
-        try
-        {
-          return boost::conversion::convert_to<Target>(val);
-        }
-        catch (...)
-        {
-          return boost::conversion::convert_to<Target>(fallback);
-        }
-      }
-    };
-#endif
 
 #if defined(BOOST_CONVERSION_DOUBLE_CP)
 #if !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
@@ -186,13 +146,9 @@
     //! int t=boost::conversion::convert_to_or_fallback<int>(s,-1);
     //! @endcode
     template <typename Target, typename Source, typename Fallback>
-#if defined(BOOST_CONVERSION_ENABLE_CND) || !defined(BOOST_NO_SFINAE_EXPR)  || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     typename enable_if_c<
          ! is_same<Target,Fallback>::value
     , Target>::type
-#else
-    Target
-#endif
     convert_to_or_fallback(Source const& from, Fallback const& fallback) {
 #if defined(BOOST_CONVERSION_DOUBLE_CP)
       return conversion::impl::convert_to_or_fallback_impl<Target>(from, fallback);
@@ -200,7 +156,6 @@
       return conversion::converter_or_fallbacker<Target,Source,Fallback>()(from, fallback);
 #endif
     }
-#if defined(BOOST_CONVERSION_ENABLE_CND) || !defined(BOOST_NO_SFINAE_EXPR)  || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     //! @brief Extrinsic conversion function with fallback.
     //! Converts the @c from parameter to a @c Target type. If the conversion fails the fallback value is used to construct a Target @c instance.
     //! @tparam Target target type of the conversion.
@@ -221,7 +176,6 @@
       return conversion::converter_or_fallbacker<Target,Source>()(from, fallback);
 #endif
     }
-#endif
   }
 }
 
Modified: sandbox/conversion/boost/conversion/convertible_from.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/convertible_from.hpp	(original)
+++ sandbox/conversion/boost/conversion/convertible_from.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -75,11 +75,7 @@
     //!   }
     //! };
     //! @endcode
-    //~ template <typename Source>
-    //~ convertible_from<Source> implicitly(Source s)
-    //~ {
-      //~ return convertible_from<Source>(s);
-    //~ }
+
     template <typename Source>
     convertible_from<Source> implicitly(Source s)
     {
Modified: sandbox/conversion/boost/conversion/convertible_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/convertible_to.hpp	(original)
+++ sandbox/conversion/boost/conversion/convertible_to.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -38,15 +38,11 @@
       //! @Remark This constructor doesn't participates on overload resolution if @c Source is not extrinsic convertible to @c Target.
       template  <typename Source>
       convertible_to(Source const& source
-#if defined(BOOST_CONVERSION_ENABLE_CND)
           , typename enable_if<is_extrinsically_convertible<Source,Target> >::type* dummy = 0
-#endif
           )
         : val_(boost::conversion::implicit_convert_to<Target>(source))
       {
-#if defined(BOOST_CONVERSION_ENABLE_CND)
         (void)dummy; // remove warning dummy not used
-#endif
       }
 
       //! Implicit conversion to @c Target.
Modified: sandbox/conversion/boost/conversion/explicit_convert_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/explicit_convert_to.hpp	(original)
+++ sandbox/conversion/boost/conversion/explicit_convert_to.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -47,7 +47,6 @@
     explicit_convert_to(Source const& from);
 
 
-#if defined(BOOST_CONVERSION_ENABLE_CND) || !defined(BOOST_NO_SFINAE_EXPR) || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     //! Customization point for @c explicit_convert_to.
     //!
     //! @tparam Target target type of the conversion.
@@ -155,56 +154,6 @@
         }
       }
     };
-#else
-    //! Customization point for @c explicit_convert_to.
-    //! @tparam Target target type of the conversion.
-    //! @tparam Source source type of the conversion.
-    //! @tparam Enable A dummy template parameter that can be used for SFINAE.
-    template < typename Target, typename Source, class Enable = void >
-    struct explicit_converter_cp : false_type
-    {
-      //! @Effects Converts the @c from parameter to an instance of the @c Target type, using the conversion operator or copy constructor.
-      //! @Throws  Whatever the underlying conversion @c Target operator of the @c Source class throws.
-      Target operator()(const Source& val)
-      {
-        return Target((val));
-      }
-    };
-
-    namespace detail {
-    template < typename Target, typename Source, bool TargetIsOptional, bool SourceIsOptional>
-    struct explicit_converter_aux : explicit_converter_cp<Target, Source>
-    {};
-    //! @brief @c explicit converter specialization to try to convert the source to @c Target::value_type when @c Target is optional.
-    //!
-    //! We can see this specialization as a try_convert_to function.
-    template < class Target, class Source>
-    struct explicit_converter_aux< optional<Target>, Source, true, false> : true_type
-
-    {
-      //! @Returns If the source is convertible to the target @c value_type
-      //! @c Target initialized to the result of the conversion.
-      //! Uninitialized  @c Target otherwise.
-      optional<Target> operator()(Source const & from)
-      {
-        try
-        {
-          return optional<Target>(explicit_convert_to<Target>(from));
-        }
-        catch (...)
-        {
-          return optional<Target>();
-        }
-      }
-    };
-    }
-    //! Default @c explicit_converter.
-    template < typename Target, typename Source, class Enable = void >
-    struct explicit_converter : detail::explicit_converter_aux<Target,Source,detail::is_optional<Target>::value, detail::is_optional<Source>::value> {};
-
-
-
-#endif
 
 
 #if defined(BOOST_CONVERSION_DOUBLE_CP)
Modified: sandbox/conversion/boost/conversion/implicit_convert_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/implicit_convert_to.hpp	(original)
+++ sandbox/conversion/boost/conversion/implicit_convert_to.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -118,7 +118,7 @@
 
     namespace impl {
       template <typename Target, typename Source>
-      Target convert_to_impl(Source const& from)
+      Target implicit_convert_to_impl(Source const& from)
       {
         using namespace boost::conversion::impl_2;
         //use boost::conversion::impl_2::implicit_convert_to if ADL fails
@@ -151,7 +151,7 @@
     implicit_convert_to(Source const& from)
     {
 #if defined(BOOST_CONVERSION_DOUBLE_CP)
-      return boost::conversion::impl::convert_to_impl<Target>(from);
+      return boost::conversion::impl::implicit_convert_to_impl<Target>(from);
 #else
       return conversion::implicit_converter<Target,Source>()(from);
 #endif
Modified: sandbox/conversion/boost/conversion/std/pair.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/pair.hpp	(original)
+++ sandbox/conversion/boost/conversion/std/pair.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -44,7 +44,7 @@
           ExtrinsicallyConvertible<S1,T1>
           && ExtrinsicallyConvertible<S2,T2>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
           is_extrinsically_convertible<S1,T1>::value
           && is_extrinsically_convertible<S2,T2>::value
@@ -58,16 +58,22 @@
         }
     };
 
-#if !defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     /**
      * Partial specialization of @c assigner_cp for @c std::pair of extrinsic convertibles.
      */
     template < class T1, class T2, class S1, class S2>
     struct assigner_cp< std::pair<T1,T2>, std::pair<S1,S2>
-      BOOST_CONVERSION_REQUIRES((
-           is_extrinsically_convertible<S1,T1>::value
-        && is_extrinsically_convertible<S2,T2>::value
-      ))
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+        , requires(
+          ExtrinsicallyConvertible<S1,T1>
+          && ExtrinsicallyConvertible<S2,T2>
+        )
+#else
+        , typename enable_if_c<
+          is_extrinsically_convertible<S1,T1>::value
+          && is_extrinsically_convertible<S2,T2>::value
+        >::type
+#endif
     > : true_type
     {
         std::pair<T1,T2>& operator()(std::pair<T1,T2>& to, const std::pair<S1,S2>& from)
@@ -77,7 +83,6 @@
             return to;
         }
     };
-#endif
   }
 }
 
Modified: sandbox/conversion/boost/conversion/std/string.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/string.hpp	(original)
+++ sandbox/conversion/boost/conversion/std/string.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -72,36 +72,6 @@
       }
     };
 
-#if !defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
-    /**
-     * Partial specialization of @c assigner_cp for convertibles to std::string.
-     */
-    template<typename T, typename CharT, typename Traits, typename Alloc>
-    struct assigner_cp< std::basic_string<CharT,Traits,Alloc>, T
-    > : true_type
-    {
-      std::basic_string<CharT,Traits,Alloc>&
-      operator()(std::basic_string<CharT,Traits,Alloc>& to, const T& from)
-      {
-        to = boost::conversion::convert_to<std::basic_string<CharT,Traits,Alloc> >(from);
-        return to;
-      }
-    };
-    /**
-     * Partial specialization of @c assigner_cp for convertibles from std::string.
-     */
-    template<typename T, typename CharT, typename Traits, typename Alloc>
-    struct assigner_cp< T, std::basic_string<CharT,Traits,Alloc>
-    > : true_type
-    {
-      T& operator()(T& to, const std::basic_string<CharT,Traits,Alloc>& from)
-      {
-        to = boost::conversion::convert_to<T>(from);
-        return to;
-      }
-    };
-#endif
-
   }
 }
 
Modified: sandbox/conversion/boost/conversion/std/vector.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/vector.hpp	(original)
+++ sandbox/conversion/boost/conversion/std/vector.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -46,7 +46,7 @@
         , requires
         ExtrinsicallyAssignable<T1,T2>
         )
-#elif defined(BOOST_CONVERSION_ENABLE_CND)
+#else
         , typename enable_if_c<
         is_extrinsically_assignable<T1,T2>::value
         >::type
@@ -65,15 +65,20 @@
         }
     };
 
-#if !defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
     /**
      * Partial specialization of @c assigner_cp for @c std::vector of extrinsic convertibles.
      */
     template < class T1, class A1, class T2, class A2>
     struct assigner_cp< std::vector<T1,A1>, std::vector<T2,A2>
-    BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+        , requires
+        ExtrinsicallyAssignable<T1,T2>
+        )
+#else
+        , typename enable_if_c<
         is_extrinsically_assignable<T1,T2>::value
-    ))
+        >::type
+#endif
     > : true_type
     {
         std::vector<T1,A1>& operator()(
@@ -87,7 +92,6 @@
             return to;
         }
     };
-#endif
 
   }
 }
Modified: sandbox/conversion/boost/conversion/type_traits/is_assignable.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/type_traits/is_assignable.hpp	(original)
+++ sandbox/conversion/boost/conversion/type_traits/is_assignable.hpp	2011-07-18 19:57:48 EDT (Mon, 18 Jul 2011)
@@ -18,11 +18,6 @@
 #include <boost/config.hpp>
 #include <boost/utility/enable_if.hpp>
 
-#if ! defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
-#define BOOST_CONVERSION_REQUIRES(CND) \
-                , typename enable_if_c< CND >::type
-#endif
-
 #if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
   //! Macro stating if the compiler don't support the features needed to define the @c is_assignable type trait.
   #define BOOST_CONVERSION_NO_IS_ASSIGNABLE