$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86246 - in trunk/boost: algorithm/string algorithm/string/std detail iterator property_map python python/detail python/object random/detail range spirit/home/classic/core/composite/impl spirit/home/classic/core/non_terminal/impl spirit/home/classic/meta/impl spirit/home/support/iterators spirit/home/support/iterators/detail tuple type_traits
From: steveire_at_[hidden]
Date: 2013-10-11 19:19:17
Author: skelly
Date: 2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)
New Revision: 86246
URL: http://svn.boost.org/trac/boost/changeset/86246
Log:
Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifdef...#else...#endif blocks.
Text files modified: 
   trunk/boost/algorithm/string/sequence_traits.hpp                      |    32 -------                                 
   trunk/boost/algorithm/string/std/list_traits.hpp                      |    17 ----                                    
   trunk/boost/algorithm/string/std/rope_traits.hpp                      |    20 ----                                    
   trunk/boost/algorithm/string/std/slist_traits.hpp                     |    16 ---                                     
   trunk/boost/algorithm/string/std/string_traits.hpp                    |     8 -                                       
   trunk/boost/detail/is_xxx.hpp                                         |    34 --------                                
   trunk/boost/iterator/iterator_facade.hpp                              |    28 ------                                  
   trunk/boost/property_map/property_map.hpp                             |    55 -------------                           
   trunk/boost/python/detail/value_is_xxx.hpp                            |    30 -------                                 
   trunk/boost/python/init.hpp                                           |    22 -----                                   
   trunk/boost/python/object/iterator.hpp                                |    28 ------                                  
   trunk/boost/python/object_core.hpp                                    |    21 -----                                   
   trunk/boost/random/detail/ptr_helper.hpp                              |    25 ------                                  
   trunk/boost/range/size_type.hpp                                       |     4                                         
   trunk/boost/spirit/home/classic/core/composite/impl/directives.ipp    |   164 ----------------------------------------
   trunk/boost/spirit/home/classic/core/non_terminal/impl/subrule.ipp    |    71 -----------------                       
   trunk/boost/spirit/home/classic/meta/impl/parser_traits.ipp           |    75 ------------------                      
   trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp |    38 ---------                               
   trunk/boost/spirit/home/support/iterators/multi_pass.hpp              |     4                                         
   trunk/boost/tuple/tuple_io.hpp                                        |     7 -                                       
   trunk/boost/type_traits/type_with_alignment.hpp                       |    30 -------                                 
   21 files changed, 0 insertions(+), 729 deletions(-)
Modified: trunk/boost/algorithm/string/sequence_traits.hpp
==============================================================================
--- trunk/boost/algorithm/string/sequence_traits.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/algorithm/string/sequence_traits.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -45,20 +45,12 @@
         class has_native_replace
         {
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            BOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_native_replace_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
 #    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
             BOOST_STATIC_CONSTANT(bool, value=false);
 #    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 
             typedef mpl::bool_<has_native_replace<T>::value> type;
@@ -73,20 +65,12 @@
         template< typename T >
         class has_stable_iterators
         {
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            BOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_stable_iterators_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
 #    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
             BOOST_STATIC_CONSTANT(bool, value=false);
 #    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
             typedef mpl::bool_<has_stable_iterators<T>::value> type;
         };
@@ -100,20 +84,12 @@
         template< typename T >
         class has_const_time_insert
         {
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            BOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_const_time_insert_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
 #    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
             BOOST_STATIC_CONSTANT(bool, value=false);
 #    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
             typedef mpl::bool_<has_const_time_insert<T>::value> type;
         };
@@ -127,20 +103,12 @@
         template< typename T >
         class has_const_time_erase
         {
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            BOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_const_time_erase_tester(t))==sizeof(yes_type) ) );
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
         public:
 #    if BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             enum { value = false };
 #    else
             BOOST_STATIC_CONSTANT(bool, value=false);
 #    endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
             typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
Modified: trunk/boost/algorithm/string/std/list_traits.hpp
==============================================================================
--- trunk/boost/algorithm/string/std/list_traits.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/algorithm/string/std/list_traits.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -20,22 +20,6 @@
 
 //  std::list<> traits  -----------------------------------------------//
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-        // stable iterators tester
-        template<typename T, typename AllocT>
-        yes_type has_stable_iterators_tester( const ::std::list<T,AllocT>* );
-
-        // const time insert tester
-        template<typename T, typename AllocT>
-        yes_type has_const_time_insert_tester( const ::std::list<T,AllocT>* );
-
-        // const time erase tester
-        template<typename T, typename AllocT>
-        yes_type has_const_time_erase_tester( const ::std::list<T,AllocT>* );
-
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
         // stable iterators trait
         template<typename T, typename AllocT>
@@ -75,7 +59,6 @@
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
-#endif
 
 
     } // namespace algorithm
Modified: trunk/boost/algorithm/string/std/rope_traits.hpp
==============================================================================
--- trunk/boost/algorithm/string/std/rope_traits.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/algorithm/string/std/rope_traits.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -20,25 +20,6 @@
 
 //  SGI's std::rope<> traits  -----------------------------------------------//
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-        // native replace tester
-        template<typename T, typename TraitsT, typename AllocT>
-        yes_type has_native_replace_tester( const std::rope<T, TraitsT, AllocT>* );
-
-        // stable iterators tester
-        template<typename T, typename TraitsT, typename AllocT>
-        yes_type has_stable_iterators_tester( const std::rope<T, TraitsT, AllocT>* );
-
-        // const time insert tester
-        template<typename T, typename TraitsT, typename AllocT>
-        yes_type has_const_time_insert_tester( const std::rope<T, TraitsT, AllocT>* );
-
-        // const time erase tester
-        template<typename T, typename TraitsT, typename AllocT>
-        yes_type has_const_time_erase_tester( const std::rope<T, TraitsT, AllocT>* );
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     
     // native replace trait
         template<typename T, typename TraitsT, typename AllocT>
@@ -91,7 +72,6 @@
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             typedef mpl::bool_<value> type;     
         };
-#endif
 
 
     } // namespace algorithm
Modified: trunk/boost/algorithm/string/std/slist_traits.hpp
==============================================================================
--- trunk/boost/algorithm/string/std/slist_traits.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/algorithm/string/std/slist_traits.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -21,21 +21,6 @@
 
 //  SGI's std::slist<> traits  -----------------------------------------------//
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-        // stable iterators tester
-        template<typename T, typename AllocT>
-        yes_type has_stable_iterators_tester( const BOOST_STD_EXTENSION_NAMESPACE::slist<T,AllocT>* );
-
-        // const time insert tester
-        template<typename T, typename AllocT>
-        yes_type has_const_time_insert_tester( const BOOST_STD_EXTENSION_NAMESPACE::slist<T,AllocT>* );
-
-        // const time erase tester
-        template<typename T, typename AllocT>
-        yes_type has_const_time_erase_tester( const BOOST_STD_EXTENSION_NAMESPACE::slist<T,AllocT>* );
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
     // stable iterators trait
         template<typename T, typename AllocT>
@@ -75,7 +60,6 @@
 #endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 )
             typedef mpl::bool_<has_const_time_erase<T>::value> type;
         };
-#endif
 
 
     } // namespace algorithm
Modified: trunk/boost/algorithm/string/std/string_traits.hpp
==============================================================================
--- trunk/boost/algorithm/string/std/string_traits.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/algorithm/string/std/string_traits.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -20,13 +20,6 @@
 
 //  std::basic_string<> traits  -----------------------------------------------//
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-        // native replace tester
-        template<typename T, typename TraitsT, typename AllocT>
-        yes_type has_native_replace_tester( const std::basic_string<T, TraitsT, AllocT>* );
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
     // native replace trait
         template<typename T, typename TraitsT, typename AllocT>
@@ -43,7 +36,6 @@
         };
 
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
     } // namespace algorithm
 } // namespace boost
Modified: trunk/boost/detail/is_xxx.hpp
==============================================================================
--- trunk/boost/detail/is_xxx.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/detail/is_xxx.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -8,39 +8,6 @@
 # include <boost/mpl/bool.hpp>
 # include <boost/preprocessor/enum_params.hpp>
 
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/add_reference.hpp>
-
-#  define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs)          \
-template <class X_>                                                     \
-struct is_##name                                                        \
-{                                                                       \
-    typedef char yes;                                                   \
-    typedef char (&no)[2];                                              \
-                                                                        \
-    static typename add_reference<X_>::type dummy;                      \
-                                                                        \
-    struct helpers                                                      \
-    {                                                                   \
-        template < BOOST_PP_ENUM_PARAMS_Z(1, nargs, class U) >          \
-        static yes test(                                                \
-           qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, U) >&, int  \
-        );                                                              \
-                                                                        \
-        template <class U>                                              \
-        static no test(U&, ...);                                        \
-    };                                                                  \
-                                                                        \
-    BOOST_STATIC_CONSTANT(                                              \
-        bool, value                                                     \
-        = !is_reference<X_>::value                                      \
-        & (sizeof(helpers::test(dummy, 0)) == sizeof(yes)));            \
-                                                                        \
-    typedef mpl::bool_<value> type;                                     \
-};
-
-# else
 
 #  define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs)  \
 template <class T>                                              \
@@ -56,6 +23,5 @@
 {                                                               \
 };
 
-# endif
 
 #endif // BOOST_DETAIL_IS_XXX_DWA20051011_HPP
Modified: trunk/boost/iterator/iterator_facade.hpp
==============================================================================
--- trunk/boost/iterator/iterator_facade.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/iterator/iterator_facade.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -204,33 +204,6 @@
         Iterator stored_iterator;
     };
 
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-    template <class Reference, class Value>
-    struct is_non_proxy_reference_impl
-    {
-        static Reference r;
-
-        template <class R>
-        static typename mpl::if_<
-            is_convertible<
-                R const volatile*
-              , Value const volatile*
-            >
-          , char[1]
-          , char[2]
-        >::type& helper(R const&);
-
-        BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1);
-    };
-
-    template <class Reference, class Value>
-    struct is_non_proxy_reference
-      : mpl::bool_<
-            is_non_proxy_reference_impl<Reference, Value>::value
-        >
-    {};
-# else
     template <class Reference, class Value>
     struct is_non_proxy_reference
       : is_convertible<
@@ -239,7 +212,6 @@
           , Value const volatile*
         >
     {};
-# endif
 
     // A metafunction to choose the result type of postfix ++
     //
Modified: trunk/boost/property_map/property_map.hpp
==============================================================================
--- trunk/boost/property_map/property_map.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/property_map/property_map.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -92,60 +92,6 @@
   //=========================================================================
   // property_traits specialization for pointers
 
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-  // The user will just have to create their own specializations for
-  // other pointers types if the compiler does not have partial
-  // specializations. Sorry!
-#define BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(TYPE) \
-  template <> \
-  struct property_traits<TYPE*> { \
-    typedef TYPE value_type; \
-    typedef value_type& reference; \
-    typedef std::ptrdiff_t key_type; \
-    typedef lvalue_property_map_tag   category; \
-  }; \
-  template <> \
-  struct property_traits<const TYPE*> { \
-    typedef TYPE value_type; \
-    typedef const value_type& reference; \
-    typedef std::ptrdiff_t key_type; \
-    typedef lvalue_property_map_tag   category; \
-  }
-
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(long);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned long);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(int);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned int);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(short);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned short);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(char);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(unsigned char);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(signed char);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(bool);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(float);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(double);
-  BOOST_SPECIALIZE_PROPERTY_TRAITS_PTR(long double);
-
-  // This may need to be turned off for some older compilers that don't have
-  // wchar_t intrinsically.
-# ifndef BOOST_NO_INTRINSIC_WCHAR_T
-  template <>
-  struct property_traits<wchar_t*> {
-    typedef wchar_t value_type;
-    typedef value_type& reference;
-    typedef std::ptrdiff_t key_type;
-    typedef lvalue_property_map_tag   category;
-  };
-  template <>
-  struct property_traits<const wchar_t*> {
-    typedef wchar_t value_type;
-    typedef const value_type& reference;
-    typedef std::ptrdiff_t key_type;
-    typedef lvalue_property_map_tag   category;
-  };
-# endif
-
-#else
   template <class T>
   struct property_traits<T*> {
     // BOOST_STATIC_ASSERT(boost::is_same<T, T*>::value && !"Using pointers as property maps is deprecated");
@@ -162,7 +108,6 @@
     typedef std::ptrdiff_t key_type;
     typedef lvalue_property_map_tag category;
   };
-#endif
 
 #if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
   // MSVC doesn't have Koenig lookup, so the user has to
Modified: trunk/boost/python/detail/value_is_xxx.hpp
==============================================================================
--- trunk/boost/python/detail/value_is_xxx.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/python/detail/value_is_xxx.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -9,35 +9,6 @@
 # include <boost/mpl/bool.hpp>
 # include <boost/preprocessor/enum_params.hpp>
 
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/add_reference.hpp>
-
-#  define BOOST_PYTHON_VALUE_IS_XXX_DEF(name, qualified_name, nargs)    \
-template <class X_>                                                     \
-struct value_is_##name                                                  \
-{                                                                       \
-    typedef char yes;                                                   \
-    typedef char (&no)[2];                                              \
-                                                                        \
-    static typename add_reference<X_>::type dummy;                      \
-                                                                        \
-    template < BOOST_PP_ENUM_PARAMS_Z(1, nargs, class U) >              \
-    static yes test(                                                    \
-       qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, U) > const&, int \
-    );                                                                  \
-                                                                        \
-    template <class U>                                                  \
-    static no test(U&, ...);                                            \
-                                                                        \
-    BOOST_STATIC_CONSTANT(                                              \
-        bool, value                                                     \
-        = (sizeof(test(dummy, 0)) == sizeof(yes)));                     \
-                                                                        \
-    typedef mpl::bool_<value> type;                                    \
-};
-
-# else
 
 #  include <boost/type_traits/remove_reference.hpp>
 #  include <boost/type_traits/remove_cv.hpp>
@@ -57,6 +28,5 @@
                                                                         \
 };                                                              
 
-# endif
 
 #endif // VALUE_IS_XXX_DWA2003224_HPP
Modified: trunk/boost/python/init.hpp
==============================================================================
--- trunk/boost/python/init.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/python/init.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -76,27 +76,6 @@
   //
   //      This metaprogram checks if T is an optional
   //
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-    template <class T>
-    struct is_optional {
-
-    private:
-
-        template <BOOST_PYTHON_OVERLOAD_TYPES>
-        static boost::type_traits::yes_type f(optional<BOOST_PYTHON_OVERLOAD_ARGS>);
-        static boost::type_traits::no_type f(...);
-        static T t();
-
-    public:
-
-        BOOST_STATIC_CONSTANT(
-            bool, value =
-                sizeof(f(t())) == sizeof(::boost::type_traits::yes_type));
-        typedef mpl::bool_<value> type;
-    };
-
-#else
 
     template <class T>
     struct is_optional
@@ -108,7 +87,6 @@
       : mpl::true_
     {};
   
-#endif
 
   template <int NDefaults>
   struct define_class_init_helper;
Modified: trunk/boost/python/object/iterator.hpp
==============================================================================
--- trunk/boost/python/object/iterator.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/python/object/iterator.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -71,35 +71,7 @@
 # endif 
     };
     
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-    // for compilers which can't deduce the value_type of pointers, we
-    // have a special implementation of next.  This takes advantage of
-    // the fact that T* results are treated like T& results by
-    // Boost.Python's function wrappers.
-    struct next_ptr
-    {
-        typedef Iterator result_type;
-        
-        result_type
-        operator()(iterator_range<NextPolicies,Iterator>& self)
-        {
-            if (self.m_start == self.m_finish)
-                stop_iteration_error();
-            return self.m_start++;
-        }
-    };
-    
-    typedef mpl::if_<
-        is_same<
-            boost::detail::please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<Iterator>
-          , typename traits_t::value_type
-        >
-      , next_ptr
-      , next
-    >::type next_fn;
-# else
     typedef next next_fn;
-# endif
     
     object m_sequence; // Keeps the sequence alive while iterating.
     Iterator m_start;
Modified: trunk/boost/python/object_core.hpp
==============================================================================
--- trunk/boost/python/object_core.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/python/object_core.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -206,26 +206,6 @@
       PyObject* m_ptr;
   };
 
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-  template <class T, class U>
-  struct is_derived_impl
-  {
-      static T x;
-      template <class X>
-      static X* to_pointer(X const&);
-      
-      static char test(U const*);
-      typedef char (&no)[2];
-      static no test(...);
-
-      BOOST_STATIC_CONSTANT(bool, value = sizeof(test(to_pointer(x))) == 1);
-  };
-  
-  template <class T, class U>
-  struct is_derived
-    : mpl::bool_<is_derived_impl<T,U>::value>
-  {};
-# else
   template <class T, class U>
   struct is_derived
     : is_convertible<
@@ -233,7 +213,6 @@
         , U const*
       >
   {};
-# endif 
 
   template <class T>
   typename objects::unforward_cref<T>::type do_unforward_cref(T const& x)
Modified: trunk/boost/random/detail/ptr_helper.hpp
==============================================================================
--- trunk/boost/random/detail/ptr_helper.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/random/detail/ptr_helper.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -62,31 +62,6 @@
 //  Helper macro for broken compilers defines specializations of
 //  ptr_helper.
 //
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define BOOST_RANDOM_PTR_HELPER_SPEC(T)                \
-namespace boost { namespace random { namespace detail { \
-template<>                                              \
-struct ptr_helper<T&>                                   \
-{                                                       \
-  typedef T value_type;                                 \
-  typedef T& reference_type;                            \
-  typedef T& rvalue_type;                               \
-  static reference_type ref(T& r) { return r; }         \
-  static const T& ref(const T& r) { return r; }         \
-};                                                      \
-                                                        \
-template<>                                              \
-struct ptr_helper<T*>                                   \
-{                                                       \
-  typedef T value_type;                                 \
-  typedef T& reference_type;                            \
-  typedef T* rvalue_type;                               \
-  static reference_type ref(T * p) { return *p; }       \
-  static const T& ref(const T * p) { return *p; }       \
-};                                                      \
-}}}
-#else
 # define BOOST_RANDOM_PTR_HELPER_SPEC(T)
-#endif 
 
 #endif // BOOST_RANDOM_DETAIL_PTR_HELPER_HPP
Modified: trunk/boost/range/size_type.hpp
==============================================================================
--- trunk/boost/range/size_type.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/range/size_type.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -18,9 +18,6 @@
 #include <boost/range/config.hpp>
 #include <boost/range/difference_type.hpp>
 #include <boost/range/concepts.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/range/detail/size_type.hpp>
-#else
 
 #include <boost/utility/enable_if.hpp>
 #include <boost/type_traits/make_unsigned.hpp>
@@ -96,7 +93,6 @@
 
 } // namespace boost
 
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 
 #endif
Modified: trunk/boost/spirit/home/classic/core/composite/impl/directives.ipp
==============================================================================
--- trunk/boost/spirit/home/classic/core/composite/impl/directives.ipp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/spirit/home/classic/core/composite/impl/directives.ipp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -151,169 +151,6 @@
             return s.parse(scan);
         }
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-        ///////////////////////////////////////////////////////////////////////
-        //
-        //  from spirit 1.1 (copyright (c) 2001 Bruce Florman)
-        //  various workarounds to support longest and shortest directives
-        //
-        ///////////////////////////////////////////////////////////////////////
-        template <typename T>
-        struct is_alternative
-        {
-        //  Determine at compile time (without partial specialization)
-        //  whether a given type is an instance of the alternative<A,B>
-
-            static T t();
-            template <typename A, typename B>
-            static char test_(alternative<A, B> const&);    // no implementation
-            static int  test_(...);                         // no implementation
-            enum { r = sizeof(char) == sizeof(test_(t())) };
-            typedef mpl::bool_<r> value;
-        };
-
-        template <typename T> struct select_to_longest;
-
-        template <typename T>
-        struct to_longest_alternative
-        {
-            typedef typename select_to_longest<T>::result_t result_t;
-            typedef typename select_to_longest<T>::plain_t  plain_t;
-            typedef typename select_to_longest<T>::choose_t choose_t;
-            static result_t convert(T const& a);
-        };
-
-        template <typename T>
-        struct to_longest_generic
-        {
-            typedef T const&        result_t;
-            typedef T               plain_t;
-            typedef mpl::false_    choose_t;
-        };
-
-        template <typename T>
-        inline T const&
-        to_longest_convert(T const& a, mpl::false_)
-        { return a; }
-
-        template <typename T>
-        struct to_longest_recursive
-        {
-            typedef typename to_longest_alternative<
-                typename T::left_t>::plain_t    a_t;
-            typedef typename to_longest_alternative<
-                typename T::right_t>::plain_t   b_t;
-
-            typedef longest_alternative<a_t, b_t>   result_t;
-
-            typedef result_t    plain_t;
-            typedef mpl::true_ choose_t;
-        };
-
-        template <typename A, typename B>
-        inline typename to_longest_alternative<alternative<A, B> >::result_t
-        to_longest_convert(alternative<A, B> const& alt, mpl::true_)
-        {
-            typedef typename to_longest_alternative<
-                alternative<A, B> >::result_t result_t;
-            return result_t(
-                to_longest_alternative<A>::convert(alt.left()),
-                to_longest_alternative<B>::convert(alt.right()));
-        }
-
-        template <typename T>
-        inline typename to_longest_alternative<T>::result_t
-        to_longest_alternative<T>::convert(T const& a)
-        {
-            return to_longest_convert(
-                a, to_longest_alternative<T>::choose_t());
-        }
-
-        template <typename T>
-        struct select_to_longest
-        {
-            typedef typename mpl::if_<
-                is_alternative<T>           //  IF
-                , to_longest_recursive<T>   //  THEN
-                , to_longest_generic<T>     //  ELSE
-            >::type type;
-
-            typedef typename select_to_longest::type::result_t result_t;
-            typedef typename select_to_longest::type::plain_t  plain_t;
-            typedef typename select_to_longest::type::choose_t choose_t;
-        };
-
-        template <typename T> struct select_to_shortest;
-
-        template <typename T>
-        struct to_shortest_alternative
-        {
-            typedef typename select_to_shortest<T>::result_t    result_t;
-            typedef typename select_to_shortest<T>::plain_t     plain_t;
-            typedef typename select_to_shortest<T>::choose_t    choose_t;
-            static result_t convert(T const& a);
-        };
-
-        template <typename T>
-        struct to_shortest_generic
-        {
-            typedef T const&        result_t;
-            typedef T               plain_t;
-            typedef mpl::false_    choose_t;
-        };
-
-        template <typename T>
-        inline T const&
-        to_shortest_convert(T const& a, mpl::false_) { return a; }
-
-        template <typename T>
-        struct to_shortest_recursive
-        {
-            typedef typename to_shortest_alternative<
-                typename T::left_t>::plain_t    a_t;
-            typedef typename to_shortest_alternative<
-                typename T::right_t>::plain_t   b_t;
-
-            typedef shortest_alternative<a_t, b_t>  result_t;
-
-            typedef result_t        plain_t;
-            typedef mpl::true_     choose_t;
-        };
-
-        template <typename A, typename B>
-        inline typename to_shortest_alternative<alternative<A, B> >::result_t
-        to_shortest_convert(alternative<A, B> const& alt, mpl::true_)
-        {
-            typedef typename to_shortest_alternative<
-                alternative<A, B> >::result_t result_t;
-            return result_t(
-                to_shortest_alternative<A>::convert(alt.left()),
-                to_shortest_alternative<B>::convert(alt.right()));
-        }
-
-        template <typename T>
-        inline typename to_shortest_alternative<T>::result_t
-        to_shortest_alternative<T>::convert(T const& a)
-        {
-            return to_shortest_convert(
-                a, to_shortest_alternative<T>::choose_t());
-        }
-
-        template <typename T>
-        struct select_to_shortest
-        {
-            typedef typename mpl::if_<
-                is_alternative<T>           //  IF
-                , to_shortest_recursive<T>  //  THEN
-                , to_shortest_generic<T>    //  ELSE
-            >::type type;
-
-            typedef typename select_to_shortest::type::result_t result_t;
-            typedef typename select_to_shortest::type::plain_t  plain_t;
-            typedef typename select_to_shortest::type::choose_t choose_t;
-        };
-#else
         template <typename T>
         struct to_longest_alternative
         {
@@ -363,7 +200,6 @@
                     to_shortest_alternative<B>::convert(alt.right()));
             }
         };
-#endif
     }
 
 BOOST_SPIRIT_CLASSIC_NAMESPACE_END
Modified: trunk/boost/spirit/home/classic/core/non_terminal/impl/subrule.ipp
==============================================================================
--- trunk/boost/spirit/home/classic/core/non_terminal/impl/subrule.ipp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/spirit/home/classic/core/non_terminal/impl/subrule.ipp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -22,76 +22,6 @@
 
     namespace impl {
 
-    #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-        template <int N, typename ListT>
-        struct get_subrule;
-
-        template <int N, typename ListT>
-        struct get_subrule_chooser
-        {
-                static ListT t();
-                static char test(nil_t);
-                static int  test(...);
-
-                //  Set value to
-                //      0: ListT is empty
-                //      1: ListT's first item has same ID
-                //      2: ListT's first item has a different ID
-
-                enum
-                {
-                id = ListT::first_t::id,
-                is_same_id = N == id,
-                    is_nil_t = sizeof(char) == sizeof(test(t())),
-                    value = is_nil_t ? 0 : (is_same_id ? 1 : 2)
-                };
-          };
-
-        template <int N>
-        struct subrule_chooser;
-
-        template <>
-        struct subrule_chooser<0>
-        {
-            //  First case. ListT is empty
-
-            template <int N, typename ListT>
-            struct result
-            { typedef nil_t type; };
-        };
-
-        template <>
-        struct subrule_chooser<1>
-        {
-            //  Second case. ListT is non-empty and the list's
-            //  first item has the ID we are looking for.
-
-            template <int N, typename ListT>
-            struct result
-            { typedef typename ListT::first_t::def_t type; };
-        };
-
-        template <>
-        struct subrule_chooser<2>
-        {
-            //  Third case. ListT is non-empty but the list's
-            //  first item does not have the ID we are looking for.
-
-            template <int N, typename ListT>
-            struct result
-            { typedef typename get_subrule<N, ListT::rest_t>::type type; };
-        };
-
-        template <int N, typename ListT>
-        struct get_subrule
-        {
-            enum { n = get_subrule_chooser<N, ListT>::value };
-            typedef typename subrule_chooser<n>::template
-                result<N, ListT>::type type;
-        };
-
-    #else
 
         template <int N, typename ListT>
         struct get_subrule
@@ -122,7 +52,6 @@
             typedef nil_t type;
         };
 
-    #endif
 
         template <typename T1, typename T2>
         struct get_result_t {
Modified: trunk/boost/spirit/home/classic/meta/impl/parser_traits.ipp
==============================================================================
--- trunk/boost/spirit/home/classic/meta/impl/parser_traits.ipp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/spirit/home/classic/meta/impl/parser_traits.ipp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -21,80 +21,6 @@
 namespace impl
 {
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-    ///////////////////////////////////////////////////////////////////////////
-    //
-    //  from spirit 1.1 (copyright (c) 2001 Bruce Florman)
-    //  various workarounds to support compile time decisions without partial
-    //  template specialization whether a given type is an instance of a
-    //  concrete parser type.
-    //
-    ///////////////////////////////////////////////////////////////////////////
-
-    ///////////////////////////////////////////////////////////////////////////
-    template <typename T>
-    struct parser_type_traits
-    {
-    //  Determine at compile time (without partial specialization)
-    //  whether a given type is an instance of the alternative<A,B>
-
-        static T t();
-
-        typedef struct { char dummy[1]; }   size1_t;
-        typedef struct { char dummy[2]; }   size2_t;
-        typedef struct { char dummy[3]; }   size3_t;
-        typedef struct { char dummy[4]; }   size4_t;
-        typedef struct { char dummy[5]; }   size5_t;
-        typedef struct { char dummy[6]; }   size6_t;
-        typedef struct { char dummy[7]; }   size7_t;
-        typedef struct { char dummy[8]; }   size8_t;
-        typedef struct { char dummy[9]; }   size9_t;
-        typedef struct { char dummy[10]; }  size10_t;
-
-    // the following functions need no implementation
-        template <typename A, typename B>
-        static size1_t test_(alternative<A, B> const&);
-        template <typename A, typename B>
-        static size2_t test_(sequence<A, B> const&);
-        template <typename A, typename B>
-        static size3_t test_(sequential_or<A, B> const&);
-        template <typename A, typename B>
-        static size4_t test_(intersection<A, B> const&);
-        template <typename A, typename B>
-        static size5_t test_(difference<A, B> const&);
-        template <typename A, typename B>
-        static size6_t test_(exclusive_or<A, B> const&);
-        template <typename S>
-        static size7_t test_(optional<S> const&);
-        template <typename S>
-        static size8_t test_(kleene_star<S> const&);
-        template <typename S>
-        static size9_t test_(positive<S> const&);
-
-        static size10_t test_(...);
-
-        BOOST_STATIC_CONSTANT(bool,
-            is_alternative = (sizeof(size1_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_sequence = (sizeof(size2_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_sequential_or = (sizeof(size3_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_intersection = (sizeof(size4_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_difference = (sizeof(size5_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_exclusive_or = (sizeof(size6_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_optional = (sizeof(size7_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_kleene_star = (sizeof(size8_t) == sizeof(test_(t()))) );
-        BOOST_STATIC_CONSTANT(bool,
-            is_positive = (sizeof(size9_t) == sizeof(test_(t()))) );
-    };
-
-#else
 
     ///////////////////////////////////////////////////////////////////////////
     struct parser_type_traits_base {
@@ -180,7 +106,6 @@
         BOOST_STATIC_CONSTANT(bool, is_positive = true);
     };
 
-#endif // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 }   // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
Modified: trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -21,43 +21,6 @@
     //  single multi_pass_policy as required by the multi_pass template
     ///////////////////////////////////////////////////////////////////////////
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    // without partial template specialization there is nothing much to do in
-    // terms of empty base optimization anyways...
-    template <typename T, typename Ownership, typename Checking,
-        typename Input, typename Storage>
-    struct multi_pass_unique
-      : Ownership, Checking, Input, Storage
-    {
-        multi_pass_unique() {}
-        multi_pass_unique(T& x) : Input(x) {}
-        multi_pass_unique(T const& x) : Input(x) {}
-
-        template <typename MultiPass>
-        static void destroy(MultiPass& mp)
-        {
-            Ownership::destroy(mp);
-            Checking::destroy(mp);
-            Input::destroy(mp);
-            Storage::destroy(mp);
-        }
-
-        void swap(multi_pass_unique& x)
-        {
-            this->Ownership::swap(x);
-            this->Checking::swap(x);
-            this->Input::swap(x);
-            this->Storage::swap(x);
-        }
-
-        template <typename MultiPass>
-        inline static void clear_queue(MultiPass& mp)
-        {
-            Checking::clear_queue(mp);
-            Storage::clear_queue(mp);
-        }
-    };
-#else
     ///////////////////////////////////////////////////////////////////////////
     // select the correct derived classes based on if a policy is empty
     template <typename T
@@ -470,7 +433,6 @@
         inline static bool is_unique(MultiPass const& mp)
             { return Ownership::is_unique(mp); }
     };
-#endif
 
     ///////////////////////////////////////////////////////////////////////////
     // the multi_pass_shared structure is used to combine the shared data items
Modified: trunk/boost/spirit/home/support/iterators/multi_pass.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iterators/multi_pass.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/spirit/home/support/iterators/multi_pass.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -38,11 +38,7 @@
 
         // define the types the standard embedded iterator typedefs are taken
         // from
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-        typedef typename iterator_base_creator<Input, T>::type iterator_type;
-#else
         typedef typename policies_base_type::input_policy iterator_type;
-#endif
 
     public:
         // standard iterator typedefs
Modified: trunk/boost/tuple/tuple_io.hpp
==============================================================================
--- trunk/boost/tuple/tuple_io.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/tuple/tuple_io.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -105,17 +105,10 @@
                              const char c = 0)
      : mt(m), f_c(c) {}
   
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-   template<class CharType2, class CharTrait>
-  void set(std::basic_ios<CharType2, CharTrait> &io) const {
-     detail::format_info::set_manipulator(io, mt, f_c);
-  }
-#else
    template<class CharTrait>
   void set(std::basic_ios<CharType, CharTrait> &io) const {
      detail::format_info::set_manipulator(io, mt, f_c);
   }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 };
 
 
Modified: trunk/boost/type_traits/type_with_alignment.hpp
==============================================================================
--- trunk/boost/type_traits/type_with_alignment.hpp	Fri Oct 11 19:17:48 2013	(r86245)
+++ trunk/boost/type_traits/type_with_alignment.hpp	2013-10-11 19:19:17 EDT (Fri, 11 Oct 2013)	(r86246)
@@ -69,35 +69,6 @@
 // This template gets instantiated a lot, so use partial
 // specialization when available to reduce the compiler burden.
 //
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <bool found = true>
-struct lower_alignment_helper_impl
-{
-    template <std::size_t, class>
-    struct apply
-    {
-        typedef char type;
-        enum { value = true };
-    };
-};
-
-template <>
-struct lower_alignment_helper_impl<false>
-{
-    template <std::size_t target, class TestType>
-    struct apply
-      : public mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
-    {
-        enum { value = (alignment_of<TestType>::value == target) };
-    };
-};
-
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-  : public lower_alignment_helper_impl<found>::template apply<target,TestType>
-{
-};
-#else
 template <bool found, std::size_t target, class TestType>
 struct lower_alignment_helper
 {
@@ -111,7 +82,6 @@
     enum { value = (alignment_of<TestType>::value == target) };
     typedef typename mpl::if_c<value, TestType, char>::type type;
 };
-#endif
 
 #define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T)                                  \
         typename lower_alignment_helper<                                        \