Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r86245 - in trunk/boost: . detail function_types functional/hash graph iostreams iostreams/detail math mpl mpl/aux_ mpl/list/aux_ mpl/map/aux_ mpl/set/aux_ mpl/vector/aux_ multi_index python python/converter python/detail python/object range/detail serialization signals/detail spirit/home/classic/core/non_terminal/impl spirit/home/classic/iterator/impl tuple type_traits variant variant/detail
From: steveire_at_[hidden]
Date: 2013-10-11 19:17:48


Author: skelly
Date: 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013)
New Revision: 86245
URL: http://svn.boost.org/trac/boost/changeset/86245

Log:
Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION

Process #ifndef...#else...#endif blocks.

Text files modified:
   trunk/boost/detail/indirect_traits.hpp | 279 ----------------------------------------
   trunk/boost/detail/iterator.hpp | 45 ------
   trunk/boost/detail/reference_content.hpp | 19 --
   trunk/boost/function_types/components.hpp | 4
   trunk/boost/functional.hpp | 26 ---
   trunk/boost/functional/hash/extensions.hpp | 34 ----
   trunk/boost/functional/hash/hash.hpp | 43 ------
   trunk/boost/graph/named_graph.hpp | 35 -----
   trunk/boost/graph/stanford_graph.hpp | 44 ------
   trunk/boost/iostreams/detail/codecvt_helper.hpp | 23 ---
   trunk/boost/iostreams/traits.hpp | 20 --
   trunk/boost/math/common_factor_ct.hpp | 83 -----------
   trunk/boost/math/common_factor_rt.hpp | 70 ----------
   trunk/boost/mpl/apply.hpp | 22 ---
   trunk/boost/mpl/apply_fwd.hpp | 6
   trunk/boost/mpl/aux_/filter_iter.hpp | 53 -------
   trunk/boost/mpl/aux_/fold_impl_body.hpp | 144 --------------------
   trunk/boost/mpl/aux_/inserter_algorithm.hpp | 66 ---------
   trunk/boost/mpl/aux_/joint_iter.hpp | 44 ------
   trunk/boost/mpl/aux_/logical_op.hpp | 35 -----
   trunk/boost/mpl/aux_/na.hpp | 23 ---
   trunk/boost/mpl/aux_/numeric_op.hpp | 63 ---------
   trunk/boost/mpl/aux_/sequence_wrapper.hpp | 35 -----
   trunk/boost/mpl/aux_/single_element_iter.hpp | 44 ------
   trunk/boost/mpl/aux_/transform_iter.hpp | 59 --------
   trunk/boost/mpl/aux_/type_wrapper.hpp | 7 -
   trunk/boost/mpl/bind.hpp | 148 ---------------------
   trunk/boost/mpl/if.hpp | 56 --------
   trunk/boost/mpl/inherit.hpp | 61 --------
   trunk/boost/mpl/is_placeholder.hpp | 24 ---
   trunk/boost/mpl/list/aux_/iterator.hpp | 13 -
   trunk/boost/mpl/map/aux_/at_impl.hpp | 17 --
   trunk/boost/mpl/map/aux_/item.hpp | 18 --
   trunk/boost/mpl/map/aux_/iterator.hpp | 80 -----------
   trunk/boost/mpl/map/aux_/numbered.hpp | 23 ---
   trunk/boost/mpl/multiplies.hpp | 4
   trunk/boost/mpl/quote.hpp | 20 --
   trunk/boost/mpl/set/aux_/iterator.hpp | 20 --
   trunk/boost/mpl/unpack_args.hpp | 27 ---
   trunk/boost/mpl/vector/aux_/iterator.hpp | 26 ---
   trunk/boost/multi_index/composite_key.hpp | 29 ----
   trunk/boost/multi_index_container.hpp | 12 -
   trunk/boost/operators.hpp | 23 ---
   trunk/boost/python/args.hpp | 26 ---
   trunk/boost/python/back_reference.hpp | 31 ----
   trunk/boost/python/bases.hpp | 18 --
   trunk/boost/python/converter/object_manager.hpp | 74 ----------
   trunk/boost/python/converter/registered_pointee.hpp | 32 ----
   trunk/boost/python/detail/borrowed_ptr.hpp | 30 ----
   trunk/boost/python/detail/referent_storage.hpp | 10 -
   trunk/boost/python/detail/string_literal.hpp | 38 -----
   trunk/boost/python/handle.hpp | 23 ---
   trunk/boost/python/object/forward.hpp | 83 -----------
   trunk/boost/python/other.hpp | 58 --------
   trunk/boost/python/ptr.hpp | 59 --------
   trunk/boost/range/detail/collection_traits_detail.hpp | 120 -----------------
   trunk/boost/ref.hpp | 61 --------
   trunk/boost/serialization/shared_ptr.hpp | 14 --
   trunk/boost/signals/detail/signals_common.hpp | 18 --
   trunk/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp | 6
   trunk/boost/spirit/home/classic/iterator/impl/file_iterator.ipp | 4
   trunk/boost/tuple/tuple_io.hpp | 7 -
   trunk/boost/type_traits/function_traits.hpp | 62 --------
   trunk/boost/type_traits/is_class.hpp | 11 -
   trunk/boost/type_traits/is_const.hpp | 7 -
   trunk/boost/type_traits/is_empty.hpp | 87 ------------
   trunk/boost/type_traits/is_object.hpp | 8 -
   trunk/boost/type_traits/is_pod.hpp | 66 ---------
   trunk/boost/type_traits/is_same.hpp | 53 -------
   trunk/boost/type_traits/is_volatile.hpp | 7 -
   trunk/boost/type_traits/remove_const.hpp | 6
   trunk/boost/type_traits/remove_cv.hpp | 16 --
   trunk/boost/type_traits/remove_reference.hpp | 6
   trunk/boost/type_traits/remove_volatile.hpp | 6
   trunk/boost/variant/detail/enable_recursive.hpp | 29 ----
   trunk/boost/variant/detail/enable_recursive_fwd.hpp | 29 ----
   trunk/boost/variant/detail/over_sequence.hpp | 31 ----
   trunk/boost/variant/detail/visitation_impl.hpp | 24 ---
   trunk/boost/variant/recursive_wrapper_fwd.hpp | 38 -----
   79 files changed, 0 insertions(+), 3125 deletions(-)

Modified: trunk/boost/detail/indirect_traits.hpp
==============================================================================
--- trunk/boost/detail/indirect_traits.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/detail/indirect_traits.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -31,7 +31,6 @@
 
 namespace indirect_traits {
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct is_reference_to_const : mpl::false_
 {
@@ -196,284 +195,6 @@
     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T))
 };
 
-# else
-
-using namespace boost::detail::is_function_ref_tester_;
-
-typedef char (&inner_yes_type)[3];
-typedef char (&inner_no_type)[2];
-typedef char (&outer_no_type)[1];
-
-template <typename V>
-struct is_const_help
-{
- typedef typename mpl::if_<
- is_const<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <typename V>
-struct is_volatile_help
-{
- typedef typename mpl::if_<
- is_volatile<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <typename V>
-struct is_pointer_help
-{
- typedef typename mpl::if_<
- is_pointer<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <typename V>
-struct is_class_help
-{
- typedef typename mpl::if_<
- is_class<V>
- , inner_yes_type
- , inner_no_type
- >::type type;
-};
-
-template <class T>
-struct is_reference_to_function_aux
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::boost::type_traits::yes_type));
- typedef mpl::bool_<value> type;
- };
-
-template <class T>
-struct is_reference_to_function
- : mpl::if_<is_reference<T>, is_reference_to_function_aux<T>, mpl::bool_<false> >::type
-{
-};
-
-template <class T>
-struct is_pointer_to_function_aux
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(::boost::type_traits::is_function_ptr_tester(t)) == sizeof(::boost::type_traits::yes_type));
- typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_pointer_to_function
- : mpl::if_<is_pointer<T>, is_pointer_to_function_aux<T>, mpl::bool_<false> >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T))
-};
-
-struct false_helper1
-{
- template <class T>
- struct apply : mpl::false_
- {
- };
-};
-
-template <typename V>
-typename is_const_help<V>::type reference_to_const_helper(V&);
-outer_no_type
-reference_to_const_helper(...);
-
-struct true_helper1
-{
- template <class T>
- struct apply
- {
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type));
- typedef mpl::bool_<value> type;
- };
-};
-
-template <bool ref = true>
-struct is_reference_to_const_helper1 : true_helper1
-{
-};
-
-template <>
-struct is_reference_to_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_const
- : is_reference_to_const_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-
-template <bool ref = true>
-struct is_reference_to_non_const_helper1
-{
- template <class T>
- struct apply
- {
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type));
-
- typedef mpl::bool_<value> type;
- };
-};
-
-template <>
-struct is_reference_to_non_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_non_const
- : is_reference_to_non_const_helper1<is_reference<T>::value>::template apply<T>
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T))
-};
-
-
-template <typename V>
-typename is_volatile_help<V>::type reference_to_volatile_helper(V&);
-outer_no_type
-reference_to_volatile_helper(...);
-
-template <bool ref = true>
-struct is_reference_to_volatile_helper1
-{
- template <class T>
- struct apply
- {
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type));
- typedef mpl::bool_<value> type;
- };
-};
-
-template <>
-struct is_reference_to_volatile_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_volatile
- : is_reference_to_volatile_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-template <typename V>
-typename is_pointer_help<V>::type reference_to_pointer_helper(V&);
-outer_no_type reference_to_pointer_helper(...);
-
-template <class T>
-struct reference_to_pointer_impl
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type))
- );
-
- typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_reference_to_pointer
- : mpl::eval_if<is_reference<T>, reference_to_pointer_impl<T>, mpl::false_>::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T))
-};
-
-template <class T>
-struct is_reference_to_function_pointer
- : mpl::eval_if<is_reference<T>, is_pointer_to_function_aux<T>, mpl::false_>::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T))
-};
-
-
-template <class T>
-struct is_member_function_pointer_help
- : mpl::if_<is_member_function_pointer<T>, inner_yes_type, inner_no_type>
-{};
-
-template <typename V>
-typename is_member_function_pointer_help<V>::type member_function_pointer_helper(V&);
-outer_no_type member_function_pointer_helper(...);
-
-template <class T>
-struct is_pointer_to_member_function_aux
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type));
- typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer
- : mpl::if_<
- is_reference<T>
- , is_pointer_to_member_function_aux<T>
- , mpl::bool_<false>
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type reference_to_class_helper(V const volatile&);
-outer_no_type reference_to_class_helper(...);
-
-template <class T>
-struct is_reference_to_class
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (is_reference<T>::value
- & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type)))
- );
- typedef mpl::bool_<value> type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type pointer_to_class_helper(V const volatile*);
-outer_no_type pointer_to_class_helper(...);
-
-template <class T>
-struct is_pointer_to_class
-{
- static T t;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (is_pointer<T>::value
- && sizeof(pointer_to_class_helper(t)) == sizeof(inner_yes_type))
- );
- typedef mpl::bool_<value> type;
-};
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }
 

Modified: trunk/boost/detail/iterator.hpp
==============================================================================
--- trunk/boost/detail/iterator.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/detail/iterator.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -258,7 +258,6 @@
 
 template <class T> struct pointer_iterator_traits;
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct pointer_iterator_traits<T*>
 {
@@ -268,50 +267,6 @@
     typedef std::random_access_iterator_tag iterator_category;
     typedef std::ptrdiff_t difference_type;
 };
-# else
-
-// In case of no template partial specialization, and if T is a
-// pointer, iterator_traits<T>::value_type can still be computed. For
-// some basic types, remove_pointer is manually defined in
-// type_traits/broken_compiler_spec.hpp. For others, do it yourself.
-
-template<class P> class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee;
-
-template<class P>
-struct pointer_value_type
- : mpl::if_<
- is_same<P, typename remove_pointer<P>::type>
- , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
- , typename remove_const<
- typename remove_pointer<P>::type
- >::type
- >
-{
-};
-
-
-template<class P>
-struct pointer_reference
- : mpl::if_<
- is_same<P, typename remove_pointer<P>::type>
- , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
- , typename remove_pointer<P>::type&
- >
-{
-};
-
-template <class T>
-struct pointer_iterator_traits
-{
- typedef T pointer;
- typedef std::random_access_iterator_tag iterator_category;
- typedef std::ptrdiff_t difference_type;
-
- typedef typename pointer_value_type<T>::type value_type;
- typedef typename pointer_reference<T>::type reference;
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // We'll sort iterator types into one of these classifications, from which we
 // can determine the difference_type, pointer, reference, and value_type

Modified: trunk/boost/detail/reference_content.hpp
==============================================================================
--- trunk/boost/detail/reference_content.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/detail/reference_content.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -15,13 +15,8 @@
 
 #include "boost/config.hpp"
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 # include "boost/mpl/bool.hpp"
 # include "boost/type_traits/has_nothrow_copy.hpp"
-#else
-# include "boost/mpl/if.hpp"
-# include "boost/type_traits/is_reference.hpp"
-#endif
 
 #include "boost/mpl/void.hpp"
 
@@ -78,7 +73,6 @@
 
 template <typename T = mpl::void_> struct make_reference_content;
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct make_reference_content
@@ -92,19 +86,6 @@
     typedef reference_content<T&> type;
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
- : mpl::if_<
- is_reference<T>
- , reference_content<T>
- , T
- >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 template <>
 struct make_reference_content< mpl::void_ >

Modified: trunk/boost/function_types/components.hpp
==============================================================================
--- trunk/boost/function_types/components.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/function_types/components.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -47,7 +47,6 @@
 
 #include <boost/function_types/config/config.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 # if BOOST_FT_MAX_ARITY < 10
 # include <boost/mpl/vector/vector10.hpp>
 # elif BOOST_FT_MAX_ARITY < 20
@@ -59,9 +58,6 @@
 # elif BOOST_FT_MAX_ARITY < 50
 # include <boost/mpl/vector/vector50.hpp>
 # endif
-#else
-# include <boost/function_types/detail/classifier.hpp>
-#endif
 
 #include <boost/function_types/detail/class_transform.hpp>
 #include <boost/function_types/property_tags.hpp>

Modified: trunk/boost/functional.hpp
==============================================================================
--- trunk/boost/functional.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/functional.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -18,7 +18,6 @@
 
 namespace boost
 {
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     // --------------------------------------------------------------------------
     // The following traits classes allow us to avoid the need for ptr_fun
     // because the types of arguments and the result of a function can be
@@ -116,31 +115,6 @@
         typedef A1 first_argument_type;
         typedef A2 second_argument_type;
     };
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // --------------------------------------------------------------------------
- // If we have no partial specialisation available, decay to a situation
- // that is no worse than in the Standard, i.e., ptr_fun will be required.
- // --------------------------------------------------------------------------
-
- template <class Operation>
- struct unary_traits
- {
- typedef Operation function_type;
- typedef const Operation& param_type;
- typedef typename Operation::result_type result_type;
- typedef typename Operation::argument_type argument_type;
- };
-
- template <class Operation>
- struct binary_traits
- {
- typedef Operation function_type;
- typedef const Operation & param_type;
- typedef typename Operation::result_type result_type;
- typedef typename Operation::first_argument_type first_argument_type;
- typedef typename Operation::second_argument_type second_argument_type;
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     
     // --------------------------------------------------------------------------
     // unary_negate, not1

Modified: trunk/boost/functional/hash/extensions.hpp
==============================================================================
--- trunk/boost/functional/hash/extensions.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/functional/hash/extensions.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -250,7 +250,6 @@
     //
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
     template <class T> struct hash
         : std::unary_function<T, std::size_t>
@@ -279,39 +278,6 @@
     };
 #endif
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // On compilers without partial specialization, boost::hash<T>
- // has already been declared to deal with pointers, so just
- // need to supply the non-pointer version of hash_impl.
-
- namespace hash_detail
- {
- template <bool IsPointer>
- struct hash_impl;
-
- template <>
- struct hash_impl<false>
- {
- template <class T>
- struct inner
- : std::unary_function<T, std::size_t>
- {
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
- std::size_t operator()(T const& val) const
- {
- return hash_value(val);
- }
-#else
- std::size_t operator()(T const& val) const
- {
- return hash_detail::call_hash<T>::call(val);
- }
-#endif
- };
- };
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 }
 
 #endif

Modified: trunk/boost/functional/hash/hash.hpp
==============================================================================
--- trunk/boost/functional/hash/hash.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/functional/hash/hash.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -405,7 +405,6 @@
 
 // Specializing boost::hash for pointers.
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
     template <class T>
     struct hash<T*>
@@ -424,48 +423,6 @@
         }
     };
 
-#else
-
- // For compilers without partial specialization, we define a
- // boost::hash for all remaining types. But hash_impl is only defined
- // for pointers in 'extensions.hpp' - so when BOOST_HASH_NO_EXTENSIONS
- // is defined there will still be a compile error for types not supported
- // in the standard.
-
- namespace hash_detail
- {
- template <bool IsPointer>
- struct hash_impl;
-
- template <>
- struct hash_impl<true>
- {
- template <class T>
- struct inner
- : public std::unary_function<T, std::size_t>
- {
- std::size_t operator()(T val) const
- {
-#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 590)
- return boost::hash_value(val);
-#else
- std::size_t x = static_cast<std::size_t>(
- reinterpret_cast<std::ptrdiff_t>(val));
-
- return x + (x >> 3);
-#endif
- }
- };
- };
- }
-
- template <class T> struct hash
- : public boost::hash_detail::hash_impl<boost::is_pointer<T>::value>
- ::BOOST_NESTED_TEMPLATE inner<T>
- {
- };
-
-#endif
 }
 
 #if defined(BOOST_MSVC)

Modified: trunk/boost/graph/named_graph.hpp
==============================================================================
--- trunk/boost/graph/named_graph.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/graph/named_graph.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -455,7 +455,6 @@
  * Maybe named graph mixin *
  *******************************************************************/
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 /**
  * A graph mixin that can provide a mapping from names to vertices,
  * and use that mapping to simplify creation and manipulation of
@@ -503,40 +502,6 @@
     return optional<Vertex>();
   }
 };
-#else
-template<typename Graph, typename Vertex, typename VertexProperty,
- typename ExtractName
- = typename internal_vertex_name<VertexProperty>::type>
-struct maybe_named_graph
-{
- /// The type of the "bundled" property, from which the name can be
- /// extracted.
- typedef typename detail::extract_bundled_vertex<VertexProperty>::type
- bundled_vertex_property_type;
-
- /// Notify the named_graph that we have added the given vertex. This
- /// is a no-op.
- void added_vertex(Vertex) { }
-
- /// Notify the named_graph that we are removing the given
- /// vertex. This is a no-op.
- template <typename VertexIterStability>
- void removing_vertex(Vertex, VertexIterStability) { }
-
- /// Notify the named_graph that we are clearing the graph. This is a
- /// no-op.
- void clearing_graph() { }
-
- /// Search for a vertex that has the given property (based on its
- /// name). This always returns an empty optional<>
- template<typename Property>
- optional<Vertex>
- vertex_by_property(const bundled_vertex_property_type&)
- {
- return optional<Vertex>();
- }
-};
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } } // end namespace boost::graph
 

Modified: trunk/boost/graph/stanford_graph.hpp
==============================================================================
--- trunk/boost/graph/stanford_graph.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/graph/stanford_graph.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -442,7 +442,6 @@
     typedef sgb_vertex_name_map const_type;
   };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
   namespace detail {
     template <class Kind, class PropertyTag>
@@ -508,49 +507,6 @@
     sgb_##KIND##_util_map< X##_property<T>, T&>()[key] = value; \
   }
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#define SGB_UTIL_ACCESSOR_TYPE(KIND,TAG,TYPE) \
- inline sgb_##KIND##_util_map< TAG<TYPE>, TYPE& > \
- get(TAG<TYPE>, sgb_graph_ptr&) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, TYPE& >(); \
- } \
- inline sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& > \
- get(TAG<TYPE>, const sgb_graph_ptr&) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >(); \
- } \
- inline sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& > \
- get(TAG<TYPE>, const sgb_const_graph_ptr&) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >(); \
- } \
- template <class Key> \
- inline typename sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >::value_type \
- get(TAG<TYPE>, const sgb_graph_ptr&, const Key& key) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >()[key]; \
- } \
- template <class Key> \
- inline typename sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >::value_type \
- get(TAG<TYPE>, const sgb_const_graph_ptr&, const Key& key) { \
- return sgb_##KIND##_util_map< TAG<TYPE>, const TYPE& >()[key]; \
- } \
- template <class Key, class Value> \
- inline void \
- put(TAG<TYPE>, sgb_graph_ptr&, const Key& key, const Value& value) { \
- sgb_##KIND##_util_map< TAG<TYPE>, TYPE& >()[key] = value; \
- } \
- template <> struct property_map<sgb_graph_ptr, TAG<TYPE> > { \
- typedef sgb_##KIND##_util_map< TAG<TYPE>, TYPE&> type; \
- typedef sgb_##KIND##_util_map< TAG<TYPE>, const TYPE&> const_type; \
- }
-
-#define SGB_UTIL_ACCESSOR(KIND,TAG) \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, Vertex*); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, Arc*); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, sgb_graph_ptr); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, long); \
- SGB_UTIL_ACCESSOR_TYPE(KIND, TAG##_property, char*);
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
   SGB_UTIL_ACCESSOR(vertex, u)
   SGB_UTIL_ACCESSOR(vertex, v)

Modified: trunk/boost/iostreams/detail/codecvt_helper.hpp
==============================================================================
--- trunk/boost/iostreams/detail/codecvt_helper.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/iostreams/detail/codecvt_helper.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -162,7 +162,6 @@
 #if defined(BOOST_IOSTREAMS_NO_PRIMARY_CODECVT_DEFINITION) || \
     defined(BOOST_IOSTREAMS_EMPTY_PRIMARY_CODECVT_DEFINITION) \
     /**/
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 # define BOOST_IOSTREAMS_CODECVT_SPEC(state) \
     namespace std { \
         template<typename Intern, typename Extern> \
@@ -183,28 +182,6 @@
         std::locale::id codecvt<Intern, Extern, state>::id; \
     } \
     /**/
-# else
-# define BOOST_IOSTREAMS_CODECVT_SPEC(state) \
- namespace std { \
- template<> \
- class codecvt<wchar_t, char, state> \
- : public ::boost::iostreams::detail::codecvt_impl< \
- wchar_t, char, state \
- > \
- { \
- public: \
- codecvt(std::size_t refs = 0) \
- : ::boost::iostreams::detail::codecvt_impl< \
- wchar_t, char, state \
- >(refs) \
- { } \
- static std::locale::id id; \
- }; \
- template<> \
- std::locale::id codecvt<wchar_t, char, state>::id; \
- } \
- /**/
-# endif
 #else
 # define BOOST_IOSTREAMS_CODECVT_SPEC(state)
 #endif // no primary codecvt definition, or empty definition.

Modified: trunk/boost/iostreams/traits.hpp
==============================================================================
--- trunk/boost/iostreams/traits.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/iostreams/traits.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -180,7 +180,6 @@
 
 } // End namespace detail.
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //---------------------------//
 # ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-------------------------------//
 
 template<typename T>
@@ -210,25 +209,6 @@
     typedef typename iterator_value<Iter>::type type;
 };
 
-#else // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //------------------//
-
-template<typename T>
-struct char_type_of {
- template<typename U>
- struct get_value_type {
- typedef typename range_value<U>::type type;
- };
- typedef typename
- mpl::eval_if<
- is_iterator_range<T>,
- get_value_type<T>,
- detail::member_char_type<
- BOOST_DEDUCED_TYPENAME detail::unwrapped_type<T>::type
- >
- >::type type;
-};
-
-#endif // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //-----------------//
 
 //------------------Definitions of category_of--------------------------------//
 

Modified: trunk/boost/math/common_factor_ct.hpp
==============================================================================
--- trunk/boost/math/common_factor_ct.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/math/common_factor_ct.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -23,7 +23,6 @@
 
 namespace detail
 {
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     // Build GCD with Euclid's recursive algorithm
     template < static_gcd_type Value1, static_gcd_type Value2 >
     struct static_gcd_helper_t
@@ -54,48 +53,7 @@
     {
         BOOST_STATIC_CONSTANT( static_gcd_type, value = Value1 );
     };
-#else
- // Use inner class template workaround from Peter Dimov
- template < static_gcd_type Value1 >
- struct static_gcd_helper2_t
- {
- template < static_gcd_type Value2 >
- struct helper
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value
- = static_gcd_helper2_t<Value2>::BOOST_NESTED_TEMPLATE
- helper<Value1 % Value2>::value );
- };
-
- template < >
- struct helper< 0UL >
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value = Value1 );
- };
- };
-
- // Special case
- template < >
- struct static_gcd_helper2_t< 0UL >
- {
- template < static_gcd_type Value2 >
- struct helper
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value = Value2 );
- };
- };
-
- // Build the GCD from the above template(s)
- template < static_gcd_type Value1, static_gcd_type Value2 >
- struct static_gcd_helper_t
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value
- = static_gcd_helper2_t<Value1>::BOOST_NESTED_TEMPLATE
- helper<Value2>::value );
- };
-#endif
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     // Build the LCM from the GCD
     template < static_gcd_type Value1, static_gcd_type Value2 >
     struct static_lcm_helper_t
@@ -112,47 +70,6 @@
     {
         BOOST_STATIC_CONSTANT( static_gcd_type, value = 0UL );
     };
-#else
- // Adapt GCD's inner class template workaround for LCM
- template < static_gcd_type Value1 >
- struct static_lcm_helper2_t
- {
- template < static_gcd_type Value2 >
- struct helper
- {
- typedef static_gcd_helper_t<Value1, Value2> gcd_type;
-
- BOOST_STATIC_CONSTANT( static_gcd_type, value = Value1
- / gcd_type::value * Value2 );
- };
-
- template < >
- struct helper< 0UL >
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value = 0UL );
- };
- };
-
- // Special case
- template < >
- struct static_lcm_helper2_t< 0UL >
- {
- template < static_gcd_type Value2 >
- struct helper
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value = 0UL );
- };
- };
-
- // Build the LCM from the above template(s)
- template < static_gcd_type Value1, static_gcd_type Value2 >
- struct static_lcm_helper_t
- {
- BOOST_STATIC_CONSTANT( static_gcd_type, value
- = static_lcm_helper2_t<Value1>::BOOST_NESTED_TEMPLATE
- helper<Value2>::value );
- };
-#endif
 
 } // namespace detail
 

Modified: trunk/boost/math/common_factor_rt.hpp
==============================================================================
--- trunk/boost/math/common_factor_rt.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/math/common_factor_rt.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -222,7 +222,6 @@
 
     // Function objects to find the best way of computing GCD or LCM
 #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     template < typename T, bool IsSpecialized, bool IsSigned >
     struct gcd_optimal_evaluator_helper_t
     {
@@ -240,40 +239,6 @@
             return gcd_integer( a, b );
         }
     };
-#else
- template < bool IsSpecialized, bool IsSigned >
- struct gcd_optimal_evaluator_helper2_t
- {
- template < typename T >
- struct helper
- {
- T operator ()( T const &a, T const &b )
- {
- return gcd_euclidean( a, b );
- }
- };
- };
-
- template < >
- struct gcd_optimal_evaluator_helper2_t< true, true >
- {
- template < typename T >
- struct helper
- {
- T operator ()( T const &a, T const &b )
- {
- return gcd_integer( a, b );
- }
- };
- };
-
- template < typename T, bool IsSpecialized, bool IsSigned >
- struct gcd_optimal_evaluator_helper_t
- : gcd_optimal_evaluator_helper2_t<IsSpecialized, IsSigned>
- ::BOOST_NESTED_TEMPLATE helper<T>
- {
- };
-#endif
 
     template < typename T >
     struct gcd_optimal_evaluator
@@ -348,7 +313,6 @@
 #undef BOOST_PRIVATE_GCD_SF
 
 #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     template < typename T, bool IsSpecialized, bool IsSigned >
     struct lcm_optimal_evaluator_helper_t
     {
@@ -366,40 +330,6 @@
             return lcm_integer( a, b );
         }
     };
-#else
- template < bool IsSpecialized, bool IsSigned >
- struct lcm_optimal_evaluator_helper2_t
- {
- template < typename T >
- struct helper
- {
- T operator ()( T const &a, T const &b )
- {
- return lcm_euclidean( a, b );
- }
- };
- };
-
- template < >
- struct lcm_optimal_evaluator_helper2_t< true, true >
- {
- template < typename T >
- struct helper
- {
- T operator ()( T const &a, T const &b )
- {
- return lcm_integer( a, b );
- }
- };
- };
-
- template < typename T, bool IsSpecialized, bool IsSigned >
- struct lcm_optimal_evaluator_helper_t
- : lcm_optimal_evaluator_helper2_t<IsSpecialized, IsSigned>
- ::BOOST_NESTED_TEMPLATE helper<T>
- {
- };
-#endif
 
     template < typename T >
     struct lcm_optimal_evaluator

Modified: trunk/boost/mpl/apply.hpp
==============================================================================
--- trunk/boost/mpl/apply.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/apply.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -134,7 +134,6 @@
 
 
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 #if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
 /// primary template (not a specialization!)
@@ -155,27 +154,6 @@
 };
 #endif
 
-# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace aux {
-
-template<>
-struct apply_chooser<i_>
-{
- template<
- typename F, AUX778076_APPLY_PARAMS(typename T)
- >
- struct result_
- {
- typedef BOOST_PP_CAT(apply,i_)<
- F AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
- > type;
- };
-};
-
-} // namespace aux
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 # undef i_
 

Modified: trunk/boost/mpl/apply_fwd.hpp
==============================================================================
--- trunk/boost/mpl/apply_fwd.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/apply_fwd.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -57,17 +57,11 @@
     BOOST_MPL_PP_PARAMS(n, param) \
     /**/
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // forward declaration
 template<
       typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
>
 struct apply;
-#else
-namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-#endif
 
 #define BOOST_PP_ITERATION_PARAMS_1 \
     (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply_fwd.hpp>))

Modified: trunk/boost/mpl/aux_/filter_iter.hpp
==============================================================================
--- trunk/boost/mpl/aux_/filter_iter.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/filter_iter.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -48,7 +48,6 @@
     typedef filter_iter<base_iter_,LastIterator,Predicate> type;
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename Iterator
@@ -78,58 +77,6 @@
     typedef forward_iterator_tag category;
 };
 
-#else
-
-template< bool >
-struct filter_iter_impl
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- typedef typename next_filter_iter<
- typename mpl::next<Iterator>::type
- , LastIterator
- , Predicate
- >::type next;
-
- typedef typename deref<base>::type type;
- };
-};
-
-template<>
-struct filter_iter_impl< true >
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- };
-};
-
-template<
- typename Iterator
- , typename LastIterator
- , typename Predicate
- >
-struct filter_iter
- : filter_iter_impl<
- ::boost::is_same<Iterator,LastIterator>::value
- >::template result_< Iterator,LastIterator,Predicate >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 

Modified: trunk/boost/mpl/aux_/fold_impl_body.hpp
==============================================================================
--- trunk/boost/mpl/aux_/fold_impl_body.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/fold_impl_body.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -56,7 +56,6 @@
>
 struct AUX778076_FOLD_IMPL_NAME;
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 # if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
 
@@ -164,124 +163,6 @@
 
 # endif // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
  
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< int N >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-# define BOOST_PP_ITERATION_PARAMS_1 \
- (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
-# include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< int N >
-struct AUX778076_FOLD_CHUNK_NAME
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef AUX778076_FOLD_IMPL_NAME<
- BOOST_MPL_LIMIT_UNROLLING
- , First
- , Last
- , State
- , ForwardOp
- > chunk_;
-
- typedef AUX778076_FOLD_IMPL_NAME<
- ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
- , typename chunk_::iterator
- , Last
- , typename chunk_::state
- , ForwardOp
- > res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-};
-
-// fallback implementation for sequences of unknown size
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
- typename Last
- , typename State
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
- typedef Last iterator;
- typedef State state;
-};
-
-template<>
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef typename if_<
- typename is_same<First,Last>::type
- , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
- , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,ForwardOp>
- >::type res_;
-
- typedef typename res_::state state;
- typedef typename res_::iterator iterator;
- };
-
-};
-
-template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
-{
- // can't inherit here - it breaks MSVC 7.0
- typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
- typename mpl::next<First>::type
- , Last
- , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
- , ForwardOp
- > chunk_;
-
- typedef typename chunk_::state state;
- typedef typename chunk_::iterator iterator;
-};
-
-template<
- int N
- , typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
-struct AUX778076_FOLD_IMPL_NAME
- : AUX778076_FOLD_CHUNK_NAME<N>
- ::template result_<First,Last,State,ForwardOp>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}}
 
@@ -298,7 +179,6 @@
 
 # define n_ BOOST_PP_FRAME_ITERATION(1)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename First
@@ -317,30 +197,6 @@
     typedef BOOST_PP_CAT(iter,n_) iterator;
 };
 
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
- template<
- typename First
- , typename Last
- , typename State
- , typename ForwardOp
- >
- struct result_
- {
- typedef First iter0;
- typedef State state0;
-
- BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
- typedef BOOST_PP_CAT(state,n_) state;
- typedef BOOST_PP_CAT(iter,n_) iterator;
- };
-
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 # undef n_
 

Modified: trunk/boost/mpl/aux_/inserter_algorithm.hpp
==============================================================================
--- trunk/boost/mpl/aux_/inserter_algorithm.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/inserter_algorithm.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -33,7 +33,6 @@
 
 #include <boost/preprocessor/arithmetic/dec.hpp>
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 # define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
 BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
@@ -90,70 +89,5 @@
 BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
 /**/
 
-#else
-
-# define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
- > \
-struct def_##name##_impl \
- : if_< has_push_back<P1> \
- , aux::name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , back_inserter< typename clear<P1>::type > \
- > \
- , aux::reverse_##name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , front_inserter< typename clear<P1>::type > \
- > \
- >::type \
-{ \
-}; \
-\
-template< \
- BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
- > \
-struct name \
-{ \
- typedef typename eval_if< \
- is_na<BOOST_PP_CAT(P, arity)> \
- , def_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
- , aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
- >::type type; \
-}; \
-\
-template< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
- > \
-struct def_reverse_##name##_impl \
- : if_< has_push_back<P1> \
- , aux::reverse_##name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , back_inserter< typename clear<P1>::type > \
- > \
- , aux::name##_impl< \
- BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
- , front_inserter< typename clear<P1>::type > \
- > \
- >::type \
-{ \
-}; \
-template< \
- BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
- > \
-struct reverse_##name \
-{ \
- typedef typename eval_if< \
- is_na<BOOST_PP_CAT(P, arity)> \
- , def_reverse_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
- , aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
- >::type type; \
-}; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #endif // BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED

Modified: trunk/boost/mpl/aux_/joint_iter.hpp
==============================================================================
--- trunk/boost/mpl/aux_/joint_iter.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/joint_iter.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -23,7 +23,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename Iterator1
@@ -66,49 +65,6 @@
     typedef joint_iter< L1,L1,typename mpl::next<I2>::type > type;
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<
- typename Iterator1
- , typename LastIterator1
- , typename Iterator2
- >
-struct joint_iter;
-
-template< bool > struct joint_iter_impl
-{
- template< typename I1, typename L1, typename I2 > struct result_
- {
- typedef I1 base;
- typedef forward_iterator_tag category;
- typedef joint_iter< typename mpl::next<I1>::type,L1,I2 > next;
- typedef typename deref<I1>::type type;
- };
-};
-
-template<> struct joint_iter_impl<true>
-{
- template< typename I1, typename L1, typename I2 > struct result_
- {
- typedef I2 base;
- typedef forward_iterator_tag category;
- typedef joint_iter< L1,L1,typename mpl::next<I2>::type > next;
- typedef typename deref<I2>::type type;
- };
-};
-
-template<
- typename Iterator1
- , typename LastIterator1
- , typename Iterator2
- >
-struct joint_iter
- : joint_iter_impl< is_same<Iterator1,LastIterator1>::value >
- ::template result_<Iterator1,LastIterator1,Iterator2>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, joint_iter)
 

Modified: trunk/boost/mpl/aux_/logical_op.hpp
==============================================================================
--- trunk/boost/mpl/aux_/logical_op.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/logical_op.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -58,7 +58,6 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< bool C_, AUX778076_PARAMS(typename T, 1) >
 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
@@ -85,34 +84,6 @@
 {
 };
 
-#else
-
-template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
-{
- template< AUX778076_PARAMS(typename T, 1) > struct result_
- : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
- {
- };
-};
-
-template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
-{
- template< AUX778076_PARAMS(typename T, 1) > struct result_
- : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
- {
- };
-};
-
-template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
- ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
- : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 
@@ -122,16 +93,10 @@
     BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
>
 struct AUX778076_OP_NAME
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
           BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
         , AUX778076_SHIFTED_PARAMS(T,0)
>
-#else
- : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
- BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
- >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
-#endif
 {
     BOOST_MPL_AUX_LAMBDA_SUPPORT(
           BOOST_MPL_LIMIT_METAFUNCTION_ARITY

Modified: trunk/boost/mpl/aux_/na.hpp
==============================================================================
--- trunk/boost/mpl/aux_/na.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/na.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -45,7 +45,6 @@
 {
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template< typename T, typename U > struct if_na
 {
     typedef T type;
@@ -55,28 +54,6 @@
 {
     typedef U type;
 };
-#else
-template< typename T > struct if_na_impl
-{
- template< typename U > struct apply
- {
- typedef T type;
- };
-};
-
-template<> struct if_na_impl<na>
-{
- template< typename U > struct apply
- {
- typedef U type;
- };
-};
-
-template< typename T, typename U > struct if_na
- : if_na_impl<T>::template apply<U>
-{
-};
-#endif
 
 }}
 

Modified: trunk/boost/mpl/aux_/numeric_op.hpp
==============================================================================
--- trunk/boost/mpl/aux_/numeric_op.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/numeric_op.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -92,7 +92,6 @@
     };
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template< typename Tag > struct AUX778076_OP_IMPL_NAME<na,Tag>
 {
     template< typename U1, typename U2 > struct apply
@@ -110,25 +109,6 @@
         BOOST_STATIC_CONSTANT(int, value = 0);
     };
 };
-#else
-template<> struct AUX778076_OP_IMPL_NAME<na,integral_c_tag>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-
-template<> struct AUX778076_OP_IMPL_NAME<integral_c_tag,na>
-{
- template< typename U1, typename U2 > struct apply
- {
- typedef apply type;
- BOOST_STATIC_CONSTANT(int, value = 0);
- };
-};
-#endif
 
 
 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
@@ -147,7 +127,6 @@
 
 #if AUX778076_OP_ARITY != 2
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 # define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))>
 # define AUX778076_OP_N_CALLS(i, N) \
@@ -177,44 +156,6 @@
 # undef AUX778076_OP_N_CALLS
 # undef AUX778076_OP_RIGHT_OPERAND
 
-# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-/// forward declaration
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2);
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(N1)
- , typename BOOST_MPL_AUX_NA_PARAM(N2)
- BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
- >
-struct AUX778076_OP_NAME
- : if_<
- is_na<N3>
- , BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
- , AUX778076_OP_NAME<
- BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
- , BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N)
- >
- >::type
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(
- AUX778076_OP_ARITY
- , AUX778076_OP_NAME
- , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
- )
-};
-
-template<
- typename N1
- , typename N2
- >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2)
-
-#endif
 
 #else // AUX778076_OP_ARITY == 2
 
@@ -233,15 +174,11 @@
 {
 #if AUX778076_OP_ARITY != 2
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
           AUX778076_OP_ARITY
         , AUX778076_OP_NAME
         , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) )
         )
-# else
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, BOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2))
-# endif
 
 #else
     BOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2))

Modified: trunk/boost/mpl/aux_/sequence_wrapper.hpp
==============================================================================
--- trunk/boost/mpl/aux_/sequence_wrapper.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/sequence_wrapper.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -145,18 +145,11 @@
 #endif // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // forward declaration
 template<
       AUX778076_SEQUENCE_DEFAULT_PARAMS()
>
 struct AUX778076_SEQUENCE_NAME;
-#else
-namespace aux {
-template< int N >
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser);
-}
-#endif
 
 #define BOOST_PP_ITERATION_PARAMS_1 \
     (3,(0, AUX778076_SEQUENCE_LIMIT, <boost/mpl/aux_/sequence_wrapper.hpp>))
@@ -187,7 +180,6 @@
 #else
 #define i_ BOOST_PP_FRAME_ITERATION(1)
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 #if i_ == AUX778076_SEQUENCE_LIMIT
 
@@ -218,33 +210,6 @@
 
 #endif // i_ == AUX778076_SEQUENCE_LIMIT
 
-# else
-
-namespace aux {
-
-template<>
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)<i_>
-{
- template<
- AUX778076_SEQUENCE_PARAMS()
- >
- struct result_
- {
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
- typedef typename AUX778076_SEQUENCE_NAME_N(i_)<
- AUX778076_SEQUENCE_N_ARGS(i_)
- >::type type;
-#else
- typedef AUX778076_SEQUENCE_NAME_N(i_)<
- AUX778076_SEQUENCE_N_ARGS(i_)
- >::type type;
-#endif
- };
-};
-
-} // namespace aux
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #undef i_
 #endif // BOOST_PP_IS_ITERATING

Modified: trunk/boost/mpl/aux_/single_element_iter.hpp
==============================================================================
--- trunk/boost/mpl/aux_/single_element_iter.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/single_element_iter.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -25,7 +25,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 namespace aux {
 
@@ -68,49 +67,6 @@
 {
 };
 
-#else
-
-namespace aux {
-
-struct sel_iter_tag;
-
-template< typename T, int is_last_ >
-struct sel_iter
-{
- enum { pos_ = is_last_ };
- typedef aux::sel_iter_tag tag;
- typedef random_access_iterator_tag category;
-
- typedef sel_iter<T,(is_last_ + 1)> next;
- typedef sel_iter<T,(is_last_ - 1)> prior;
- typedef T type;
-};
-
-} // namespace aux
-
-template<> struct advance_impl<aux::sel_iter_tag>
-{
- template< typename Iterator, typename N > struct apply
- {
- enum { pos_ = Iterator::pos_, n_ = N::value };
- typedef aux::sel_iter<
- typename Iterator::type
- , (pos_ + n_)
- > type;
- };
-};
-
-template<> struct distance_impl<aux::sel_iter_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
- typedef int_<( pos2_ - pos1_ )> type;
- BOOST_STATIC_CONSTANT(int, value = ( pos2_ - pos1_ ));
- };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}
 

Modified: trunk/boost/mpl/aux_/transform_iter.hpp
==============================================================================
--- trunk/boost/mpl/aux_/transform_iter.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/transform_iter.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -26,7 +26,6 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename Iterator
@@ -55,64 +54,6 @@
     typedef forward_iterator_tag category;
 };
 
-#else
-
-template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
-struct transform_iter;
-
-template< bool >
-struct transform_iter_impl
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- typedef transform_iter< typename mpl::next<Iterator>::type,LastIterator,F > next;
-
- typedef typename apply1<
- F
- , typename deref<Iterator>::type
- >::type type;
- };
-};
-
-template<>
-struct transform_iter_impl<true>
-{
- template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
- struct result_
- {
- typedef Iterator base;
- typedef forward_iterator_tag category;
- };
-};
-
-template<
- typename Iterator
- , typename LastIterator
- , typename F
- >
-struct transform_iter
- : transform_iter_impl<
- ::boost::is_same<Iterator,LastIterator>::value
- >::template result_< Iterator,LastIterator,F >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 

Modified: trunk/boost/mpl/aux_/type_wrapper.hpp
==============================================================================
--- trunk/boost/mpl/aux_/type_wrapper.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/aux_/type_wrapper.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
     typedef T type;
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 // agurt 08/may/03: a complicated way to extract the wrapped type; need it
 // mostly for the sake of GCC (3.2.x), which ICEs if you try to extract the
 // nested 'type' from 'type_wrapper<T>' when the latter was the result of a
@@ -35,12 +34,6 @@
 {
     typedef T type;
 };
-#else
-template< typename W > struct wrapped_type
-{
- typedef typename W::type type;
-};
-#endif
 
 }}}
 

Modified: trunk/boost/mpl/bind.hpp
==============================================================================
--- trunk/boost/mpl/bind.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/bind.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -115,7 +115,6 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename T, AUX778076_BIND_PARAMS(typename U)
@@ -167,123 +166,6 @@
 };
 #endif
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// agurt, 15/jan/02: it's not a intended to be used as a function class, and
-// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't
-// work), so I went with the 'result_' here, and in all other similar cases
-template< bool >
-struct resolve_arg_impl
-{
- template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
- {
- typedef T type;
- };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
- template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
- {
- typedef typename AUX778076_APPLY<
- T
- , AUX778076_BIND_PARAMS(U)
- >::type type;
- };
-};
-
-// for 'resolve_bind_arg'
-template< typename T > struct is_bind_template;
-
-template<
- typename T, AUX778076_BIND_PARAMS(typename U)
- >
-struct resolve_bind_arg
- : resolve_arg_impl< is_bind_template<T>::value >
- ::template result_< T,AUX778076_BIND_PARAMS(U) >
-{
-};
-
-# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
- template< typename Arg > struct result_
- {
- typedef Arg next;
- typedef T type;
- };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg<-1> >
-{
- template< typename Arg > struct result_
- {
- typedef typename next<Arg>::type next;
- typedef Arg type;
- };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
- : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-// agurt, 10/mar/02: the forward declaration has to appear before any of
-// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-// overload for "main" form
-// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload
-// in case if we use 'aux::type_wrapper< bind<...> >' here, and all
-// 'bind' instantiations form a complete type anyway
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
- typename F, AUX778076_BIND_PARAMS(typename T)
- >
-aux::yes_tag is_bind_helper(bind<F,AUX778076_BIND_PARAMS(T)>*);
-#endif
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
- template< typename T > struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_bind_helper(static_cast<T*>(0)))
- == sizeof(aux::yes_tag)
- );
- };
-};
-
-template< typename T > struct is_bind_template
- : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
- ::template result_<T>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 
@@ -450,7 +332,6 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U)
@@ -463,15 +344,6 @@
     typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
 };
 
-#else
-
-template<
- typename F AUX778076_BIND_N_PARAMS(i_, typename T)
- >
-aux::yes_tag
-is_bind_helper(BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>*);
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace aux
 
@@ -479,7 +351,6 @@
 BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
 
 # if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     
 #if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
 /// primary template (not a specialization!)
@@ -500,25 +371,6 @@
 };
 #endif
 
-# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace aux {
-
-template<>
-struct bind_chooser<i_>
-{
- template<
- typename F, AUX778076_BIND_PARAMS(typename T)
- >
- struct result_
- {
- typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type;
- };
-};
-
-} // namespace aux
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 # endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE
 
 #endif // AUX778076_SPEC_NAME

Modified: trunk/boost/mpl/if.hpp
==============================================================================
--- trunk/boost/mpl/if.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/if.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       bool C
@@ -72,61 +71,6 @@
     BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
 };
 
-#else
-
-// no partial class template specialization
-
-namespace aux {
-
-template< bool C >
-struct if_impl
-{
- template< typename T1, typename T2 > struct result_
- {
- typedef T1 type;
- };
-};
-
-template<>
-struct if_impl<false>
-{
- template< typename T1, typename T2 > struct result_
- {
- typedef T2 type;
- };
-};
-
-} // namespace aux
-
-template<
- bool C_
- , typename T1
- , typename T2
- >
-struct if_c
-{
- typedef typename aux::if_impl< C_ >
- ::template result_<T1,T2>::type type;
-};
-
-// (almost) copy & paste in order to save one more
-// recursively nested template instantiation to user
-template<
- typename BOOST_MPL_AUX_NA_PARAM(C_)
- , typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct if_
-{
- enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
-
- typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
- ::template result_<T1,T2>::type type;
-
- BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 BOOST_MPL_AUX_NA_SPEC(3, if_)
 

Modified: trunk/boost/mpl/inherit.hpp
==============================================================================
--- trunk/boost/mpl/inherit.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/inherit.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -60,7 +60,6 @@
 // inherit<her,empty_base,my>::type == struct unspecified : her, my {};
 // inherit<empty_base,empty_base>::type == empty_base
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename BOOST_MPL_AUX_NA_PARAM(T1)
@@ -96,66 +95,6 @@
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base,empty_base))
 };
 
-#else
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1, T2
- {
- typedef Derived type_;
- };
-};
-
-template<>
-struct inherit2_impl<false,true>
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T1
- {
- typedef T1 type_;
- };
-};
-
-template<>
-struct inherit2_impl<true,false>
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- : T2
- {
- typedef T2 type_;
- };
-};
-
-template<>
-struct inherit2_impl<true,true>
-{
- template< typename Derived, typename T1, typename T2 > struct result_
- {
- typedef T1 type_;
- };
-};
-
-} // namespace aux
-
-template<
- typename BOOST_MPL_AUX_NA_PARAM(T1)
- , typename BOOST_MPL_AUX_NA_PARAM(T2)
- >
-struct inherit2
- : aux::inherit2_impl<
- is_empty_base<T1>::value
- , is_empty_base<T2>::value
- >::template result_< inherit2<T1,T2>,T1,T2 >
-{
- typedef typename inherit2::type_ type;
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1,T2))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 BOOST_MPL_AUX_NA_SPEC(2, inherit2)
 

Modified: trunk/boost/mpl/is_placeholder.hpp
==============================================================================
--- trunk/boost/mpl/is_placeholder.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/is_placeholder.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -23,7 +23,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename T >
 struct is_placeholder
@@ -37,29 +36,6 @@
 {
 };
 
-#else
-
-namespace aux {
-
-aux::no_tag is_placeholder_helper(...);
-
-template< int N >
-aux::yes_tag is_placeholder_helper(aux::type_wrapper< arg<N> >*);
-
-} // namespace aux
-
-template< typename T >
-struct is_placeholder
-{
- static aux::type_wrapper<T>* get();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(aux::is_placeholder_helper(get())) == sizeof(aux::yes_tag)
- );
-
- typedef bool_<value> type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}
 

Modified: trunk/boost/mpl/list/aux_/iterator.hpp
==============================================================================
--- trunk/boost/mpl/list/aux_/iterator.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/list/aux_/iterator.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename Node >
 struct l_iter
@@ -45,18 +44,6 @@
     typedef l_iter< typename Node::next > type;
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< typename Node >
-struct l_iter
-{
- typedef aux::l_iter_tag tag;
- typedef forward_iterator_tag category;
- typedef typename Node::item type;
- typedef l_iter< typename mpl::next<Node>::type > next;
-};
-
-#endif
 
 
 template<> struct l_iter<l_end>

Modified: trunk/boost/mpl/map/aux_/at_impl.hpp
==============================================================================
--- trunk/boost/mpl/map/aux_/at_impl.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/map/aux_/at_impl.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -79,29 +79,12 @@
 
 #else // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename Map, long n > struct m_at
 {
     typedef void_ type;
 };
 
-# else
-
-template< long n > struct m_at_impl
-{
- template< typename Map > struct result_
- {
- typedef void_ type;
- };
-};
-
-template< typename Map, long n > struct m_at
-{
- typedef typename m_at_impl<n>::result_<Map>::type type;
-};
-
-# endif
 
 
 template<>

Modified: trunk/boost/mpl/map/aux_/item.hpp
==============================================================================
--- trunk/boost/mpl/map/aux_/item.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/map/aux_/item.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -73,28 +73,10 @@
 #else // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
 
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< long n, typename Key, typename T, typename Base >
 struct m_item;
 
-# else
-
-template< long n >
-struct m_item_impl
-{
- template< typename Key, typename T, typename Base >
- struct result_;
-};
-
-template< long n, typename Key, typename T, typename Base >
-struct m_item
- : m_item_impl<n>::result_<Key,T,Base>
-{
-};
-
-
-# endif
 
 
 template< typename Key, typename T, typename Base >

Modified: trunk/boost/mpl/map/aux_/iterator.hpp
==============================================================================
--- trunk/boost/mpl/map/aux_/iterator.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/map/aux_/iterator.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -28,7 +28,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename Map
@@ -83,85 +82,6 @@
 {
 };
 
-#else
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct next_order;
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct next_order_impl
- : if_<
- is_void_< typename item_by_order<Map,order>::type >
- , next_order<Map,(order+1),max_order>
- , long_<order>
- >::type
- {
- };
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct next_order
- : if_c<
- (order != max_order)
- , next_order_impl<Map,order,max_order>
- , long_<order>
- >::type
-{
-};
-
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct m_iter;
-
-struct m_iter_empty_base {};
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct m_iter_base
-{
- typedef typename item_by_order<Map,order>::type type;
-
- typedef m_iter<
- Map
- , next_order<Map,order+1,max_order>::value
- , max_order
- > next;
-};
-
-template<
- typename Map
- , long order
- , long max_order
- >
-struct m_iter
- : if_c<
- (order == max_order)
- , m_iter_empty_base
- , m_iter_base<Map,order,max_order>
- >::type
-{
- typedef forward_iterator_tag category;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}
 

Modified: trunk/boost/mpl/map/aux_/numbered.hpp
==============================================================================
--- trunk/boost/mpl/map/aux_/numbered.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/map/aux_/numbered.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -49,7 +49,6 @@
 
 #else // "brute force" implementation
 
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename Map>
 struct m_at<Map,BOOST_PP_DEC(i_)>
@@ -64,28 +63,6 @@
     typedef pair<Key,T> BOOST_PP_CAT(item,BOOST_PP_DEC(i_));
 };
 
-# else
-
-template<>
-struct m_at_impl<BOOST_PP_DEC(i_)>
-{
- template< typename Map > struct result_
- {
- typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type;
- };
-};
-
-template<>
-struct m_item_impl<i_>
-{
- template< typename Key, typename T, typename Base > struct result_
- : m_item_<Key,T,Base>
- {
- typedef pair<Key,T> BOOST_PP_CAT(item,BOOST_PP_DEC(i_));
- };
-};
-
-# endif
 
 template<
       BOOST_PP_ENUM_PARAMS(i_, typename P)

Modified: trunk/boost/mpl/multiplies.hpp
==============================================================================
--- trunk/boost/mpl/multiplies.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/multiplies.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -25,11 +25,7 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 # define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#else
-# define AUX778076_OP_ARITY 2
-#endif
 
 template<
       BOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na)

Modified: trunk/boost/mpl/quote.hpp
==============================================================================
--- trunk/boost/mpl/quote.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/quote.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -58,7 +58,6 @@
 
 namespace boost { namespace mpl {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename T, bool has_type_ >
 struct quote_impl
@@ -82,25 +81,6 @@
     typedef T type;
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< bool > struct quote_impl
-{
- template< typename T > struct result_
- : T
- {
- };
-};
-
-template<> struct quote_impl<false>
-{
- template< typename T > struct result_
- {
- typedef T type;
- };
-};
-
-#endif
 
 #define BOOST_PP_ITERATION_PARAMS_1 \
     (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/quote.hpp>))

Modified: trunk/boost/mpl/set/aux_/iterator.hpp
==============================================================================
--- trunk/boost/mpl/set/aux_/iterator.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/set/aux_/iterator.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -46,7 +46,6 @@
 
 };
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename Set, typename Tail >
 struct next< s_iter<Set,Tail> >
@@ -70,25 +69,6 @@
     typedef forward_iterator_tag category;
 };
 
-#else
-
-template< typename Set >
-struct s_end_iter
-{
- typedef forward_iterator_tag category;
- typedef s_iter<Set,set0<> > next;
-};
-
-template< typename Set, typename Tail > struct s_iter
- : if_<
- is_same< Tail,set0<> >
- , s_end_iter<Set>
- , s_iter_impl<Set,Tail>
- >::type
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }}
 

Modified: trunk/boost/mpl/unpack_args.hpp
==============================================================================
--- trunk/boost/mpl/unpack_args.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/unpack_args.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -57,15 +57,8 @@
 
 namespace aux {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template< int size, typename F, typename Args >
 struct unpack_args_impl;
-#else
-template< int size > struct unpack_args_impl
-{
- template< typename F, typename Args > struct apply;
-};
-#endif
 
 #define BOOST_PP_ITERATION_PARAMS_1 \
     (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/unpack_args.hpp>))
@@ -80,12 +73,7 @@
 {
     template< typename Args > struct apply
 #if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
         : aux::unpack_args_impl< size<Args>::value,F,Args >
-# else
- : aux::unpack_args_impl< size<Args>::value >
- ::template apply< F,Args >
-# endif
     {
 #else // BOOST_MPL_CFG_NO_NESTED_FORWARDING
     {
@@ -117,7 +105,6 @@
 
 # define i_ BOOST_PP_FRAME_ITERATION(1)
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template< typename F, typename Args >
 struct unpack_args_impl<i_,F,Args>
@@ -128,20 +115,6 @@
 {
 };
 
-#else
-
-template<> struct unpack_args_impl<i_>
-{
- template< typename F, typename Args > struct apply
- : BOOST_PP_CAT(apply,i_)<
- F
- AUX778076_UNPACKED_ARGS(i_, Args)
- >
- {
- };
-};
-
-#endif
 
 # undef i_
 

Modified: trunk/boost/mpl/vector/aux_/iterator.hpp
==============================================================================
--- trunk/boost/mpl/vector/aux_/iterator.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/mpl/vector/aux_/iterator.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -45,7 +45,6 @@
 };
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template<
       typename Vector
@@ -88,31 +87,6 @@
 {
 };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<> struct advance_impl<aux::v_iter_tag>
-{
- template< typename Iterator, typename N > struct apply
- {
- enum { pos_ = Iterator::pos_, n_ = N::value };
- typedef v_iter<
- typename Iterator::vector_
- , (pos_ + n_)
- > type;
- };
-};
-
-template<> struct distance_impl<aux::v_iter_tag>
-{
- template< typename Iter1, typename Iter2 > struct apply
- {
- enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
- typedef long_<( pos2_ - pos1_ )> type;
- BOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ ));
- };
-};
-
-#endif
 
 }}
 

Modified: trunk/boost/multi_index/composite_key.hpp
==============================================================================
--- trunk/boost/multi_index/composite_key.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/multi_index/composite_key.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -1230,7 +1230,6 @@
  * for composite_key_results enabling interoperation with tuples of values.
  */
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 namespace std{
 
 template<typename CompositeKey>
@@ -1270,34 +1269,6 @@
 };
 
 } /* namespace boost */
-#else
-/* Lacking template partial specialization, std::equal_to, std::less and
- * std::greater will still work for composite_key_results although without
- * tuple interoperability. To achieve the same graceful degrading with
- * boost::hash, we define the appropriate hash_value overload.
- */
-
-namespace boost{
-
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-namespace multi_index{
-#endif
-
-template<typename CompositeKey>
-inline std::size_t hash_value(
- const boost::multi_index::composite_key_result<CompositeKey>& x)
-{
- boost::multi_index::composite_key_result_hash<
- boost::multi_index::composite_key_result<CompositeKey> > h;
- return h(x);
-}
-
-#if !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-} /* namespace multi_index */
-#endif
-
-} /* namespace boost */
-#endif
 
 #undef BOOST_MULTI_INDEX_CK_RESULT_HASH_SUPER
 #undef BOOST_MULTI_INDEX_CK_RESULT_GREATER_SUPER

Modified: trunk/boost/multi_index_container.hpp
==============================================================================
--- trunk/boost/multi_index_container.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/multi_index_container.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -894,16 +894,10 @@
   void save(Archive& ar,const unsigned int version)const
   {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     const serialization::collection_size_type s(size_());
     const detail::serialization_version<value_type> value_version;
     ar<<serialization::make_nvp("count",s);
     ar<<serialization::make_nvp("value_version",value_version);
-#else
- const std::size_t s=size_();
- const unsigned int value_version=0;
- ar<<serialization::make_nvp("count",s);
-#endif
 
     index_saver_type sm(bfm_allocator::member,s);
 
@@ -924,7 +918,6 @@
 
     clear_();
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     serialization::collection_size_type s;
     detail::serialization_version<value_type> value_version;
     if(version<1){
@@ -941,11 +934,6 @@
     else{
       ar>>serialization::make_nvp("value_version",value_version);
     }
-#else
- std::size_t s;
- unsigned int value_version=0;
- ar>>serialization::make_nvp("count",s);
-#endif
 
     index_loader_type lm(bfm_allocator::member,s);
 

Modified: trunk/boost/operators.hpp
==============================================================================
--- trunk/boost/operators.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/operators.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -704,7 +704,6 @@
 // the xxxx, xxxx1, and xxxx2 templates, importing them into boost:: as
 // necessary.
 //
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // is_chained_base<> - a traits class used to distinguish whether an operator
 // template argument is being used for base class chaining, or is specifying a
@@ -802,24 +801,6 @@
 BOOST_OPERATOR_TEMPLATE1(template_name##1)
 
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-# define BOOST_OPERATOR_TEMPLATE4(template_name4) \
- BOOST_IMPORT_TEMPLATE4(template_name4)
-# define BOOST_OPERATOR_TEMPLATE3(template_name3) \
- BOOST_IMPORT_TEMPLATE3(template_name3)
-# define BOOST_OPERATOR_TEMPLATE2(template_name2) \
- BOOST_IMPORT_TEMPLATE2(template_name2)
-# define BOOST_OPERATOR_TEMPLATE1(template_name1) \
- BOOST_IMPORT_TEMPLATE1(template_name1)
-
- // In this case we can only assume that template_name<> is equivalent to the
- // more commonly needed template_name1<> form.
-# define BOOST_OPERATOR_TEMPLATE(template_name) \
- template <class T, class B = ::boost::detail::empty_base<T> > \
- struct template_name : template_name##1<T, B> {};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace boost {
     
@@ -890,14 +871,10 @@
     , bitwise2<T,U
> > > {};
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T, class U = T>
 struct operators : operators2<T, U> {};
 
 template <class T> struct operators<T, T>
-#else
-template <class T> struct operators
-#endif
     : totally_ordered<T
     , integer_arithmetic<T
     , bitwise<T

Modified: trunk/boost/python/args.hpp
==============================================================================
--- trunk/boost/python/args.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/args.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -102,7 +102,6 @@
       return this->operator,(python::arg(name));
   }
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
   template<typename T>
   struct is_keywords
   {
@@ -126,31 +125,6 @@
       typedef mpl::bool_<value> type;
       BOOST_PYTHON_MPL_LAMBDA_SUPPORT(1,is_reference_to_keywords,(T))
   };
-# else
- typedef char (&yes_keywords_t)[1];
- typedef char (&no_keywords_t)[2];
-
- no_keywords_t is_keywords_test(...);
-
- template<std::size_t nkeywords>
- yes_keywords_t is_keywords_test(void (*)(keywords<nkeywords>&));
-
- template<std::size_t nkeywords>
- yes_keywords_t is_keywords_test(void (*)(keywords<nkeywords> const&));
-
- template<typename T>
- class is_reference_to_keywords
- {
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_keywords_test( (void (*)(T))0 ))
- == sizeof(detail::yes_keywords_t)));
-
- typedef mpl::bool_<value> type;
- BOOST_PYTHON_MPL_LAMBDA_SUPPORT(1,is_reference_to_keywords,(T))
- };
-# endif
 }
 
 inline detail::keywords<1> args(char const* name)

Modified: trunk/boost/python/back_reference.hpp
==============================================================================
--- trunk/boost/python/back_reference.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/back_reference.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -29,7 +29,6 @@
     T m_value;
 };
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<typename T>
 class is_back_reference
 {
@@ -44,36 +43,6 @@
     BOOST_STATIC_CONSTANT(bool, value = true);
 };
 
-# else // no partial specialization
-
-}} // namespace boost::python
-
-#include <boost/type.hpp>
-
-namespace boost { namespace python {
-
-namespace detail
-{
- typedef char (&yes_back_reference_t)[1];
- typedef char (&no_back_reference_t)[2];
-
- no_back_reference_t is_back_reference_test(...);
-
- template<typename T>
- yes_back_reference_t is_back_reference_test(boost::type< back_reference<T> >);
-}
-
-template<typename T>
-class is_back_reference
-{
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_back_reference_test(boost::type<T>()))
- == sizeof(detail::yes_back_reference_t)));
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 //
 // implementations

Modified: trunk/boost/python/bases.hpp
==============================================================================
--- trunk/boost/python/bases.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/bases.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
 
   namespace detail
   {
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     template <class T> struct specifies_bases
         : mpl::false_
     {
@@ -35,23 +34,6 @@
         : mpl::true_
     {
     };
-# else
- template < BOOST_PP_ENUM_PARAMS(BOOST_PYTHON_MAX_BASES, class Base) >
- static char is_bases_helper(bases< BOOST_PYTHON_BASE_PARAMS > const&);
-
- static char (& is_bases_helper(...) )[256];
-
- template <class T>
- struct specifies_bases
- {
- private:
- static typename add_reference<T>::type make();
- BOOST_STATIC_CONSTANT(bool, non_ref = !is_reference<T>::value);
- public:
- BOOST_STATIC_CONSTANT(bool, value = non_ref & (sizeof(is_bases_helper(make())) == 1));
- typedef mpl::bool_<value> type;
- };
-# endif
     template <class T, class Prev = bases<> >
     struct select_bases
         : mpl::if_<

Modified: trunk/boost/python/converter/object_manager.hpp
==============================================================================
--- trunk/boost/python/converter/object_manager.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/converter/object_manager.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -121,7 +121,6 @@
 {
 };
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct is_reference_to_object_manager
     : mpl::false_
@@ -151,79 +150,6 @@
     : is_object_manager<T>
 {
 };
-# else
-
-namespace detail
-{
- typedef char (&yes_reference_to_object_manager)[1];
- typedef char (&no_reference_to_object_manager)[2];
-
- // A number of nastinesses go on here in order to work around MSVC6
- // bugs.
- template <class T>
- struct is_object_manager_help
- {
- typedef typename mpl::if_<
- is_object_manager<T>
- , yes_reference_to_object_manager
- , no_reference_to_object_manager
- >::type type;
-
- // If we just use the type instead of the result of calling this
- // function, VC6 will ICE.
- static type call();
- };
-
- // A set of overloads for each cv-qualification. The same argument
- // is passed twice: the first one is used to unwind the cv*, and the
- // second one is used to avoid relying on partial ordering for
- // overload resolution.
- template <class U>
- typename is_object_manager_help<U>
- is_object_manager_helper(U*, void*);
-
- template <class U>
- typename is_object_manager_help<U>
- is_object_manager_helper(U const*, void const*);
-
- template <class U>
- typename is_object_manager_help<U>
- is_object_manager_helper(U volatile*, void volatile*);
-
- template <class U>
- typename is_object_manager_help<U>
- is_object_manager_helper(U const volatile*, void const volatile*);
-
- template <class T>
- struct is_reference_to_object_manager_nonref
- : mpl::false_
- {
- };
-
- template <class T>
- struct is_reference_to_object_manager_ref
- {
- static T sample_object;
- BOOST_STATIC_CONSTANT(
- bool, value
- = (sizeof(is_object_manager_helper(&sample_object, &sample_object).call())
- == sizeof(detail::yes_reference_to_object_manager)
- )
- );
- typedef mpl::bool_<value> type;
- };
-}
-
-template <class T>
-struct is_reference_to_object_manager
- : mpl::if_<
- is_reference<T>
- , detail::is_reference_to_object_manager_ref<T>
- , detail::is_reference_to_object_manager_nonref<T>
- >::type
-{
-};
-# endif
 
 }}} // namespace boost::python::converter
 

Modified: trunk/boost/python/converter/registered_pointee.hpp
==============================================================================
--- trunk/boost/python/converter/registered_pointee.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/converter/registered_pointee.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -14,7 +14,6 @@
 
 struct registration;
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct registered_pointee
     : registered<
@@ -26,37 +25,6 @@
>
 {
 };
-# else
-namespace detail
-{
- template <class T>
- struct registered_pointee_base
- {
- static registration const& converters;
- };
-}
-
-template <class T>
-struct registered_pointee
- : detail::registered_pointee_base<
- typename add_reference<
- typename add_cv<T>::type
- >::type
- >
-{
-};
-
-//
-// implementations
-//
-namespace detail
-{
- template <class T>
- registration const& registered_pointee_base<T>::converters
- = registry::lookup(pointer_type_id<T>());
-}
-
-# endif
 }}} // namespace boost::python::converter
 
 #endif // REGISTERED_POINTEE_DWA2002710_HPP

Modified: trunk/boost/python/detail/borrowed_ptr.hpp
==============================================================================
--- trunk/boost/python/detail/borrowed_ptr.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/detail/borrowed_ptr.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -19,7 +19,6 @@
     typedef T type;
 };
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<typename T>
 struct is_borrowed_ptr
 {
@@ -68,35 +67,6 @@
 };
 # endif
 
-# else // no partial specialization
-
-typedef char (&yes_borrowed_ptr_t)[1];
-typedef char (&no_borrowed_ptr_t)[2];
-
-no_borrowed_ptr_t is_borrowed_ptr_test(...);
-
-template <class T>
-typename mpl::if_c<
- is_pointer<T>::value
- , T
- , int
- >::type
-is_borrowed_ptr_test1(boost::type<T>);
-
-template<typename T>
-yes_borrowed_ptr_t is_borrowed_ptr_test(borrowed<T> const volatile*);
-
-template<typename T>
-class is_borrowed_ptr
-{
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_borrowed_ptr_test(is_borrowed_ptr_test1(boost::type<T>())))
- == sizeof(detail::yes_borrowed_ptr_t)));
-};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }
 

Modified: trunk/boost/python/detail/referent_storage.hpp
==============================================================================
--- trunk/boost/python/detail/referent_storage.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/detail/referent_storage.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -42,7 +42,6 @@
   // but sizeof() is broken in CodeWarriors <= 8.0
   template <class T> struct referent_size;
   
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
   
   template <class T>
   struct referent_size<T&>
@@ -51,15 +50,6 @@
           std::size_t, value = sizeof(T));
   };
 
-# else
-
- template <class T> struct referent_size
- {
- static T f();
- BOOST_STATIC_CONSTANT(std::size_t, value = sizeof(f()));
- };
-
-# endif
 
 // A metafunction returning a POD type which can store U, where T ==
 // U&. If T is not a reference type, returns a POD which can store T.

Modified: trunk/boost/python/detail/string_literal.hpp
==============================================================================
--- trunk/boost/python/detail/string_literal.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/detail/string_literal.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -14,7 +14,6 @@
 
 namespace boost { namespace python { namespace detail {
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template <class T>
 struct is_string_literal : mpl::false_
 {
@@ -45,43 +44,6 @@
 {
 };
 # endif
-# else
-template <bool is_array = true>
-struct string_literal_helper
-{
- typedef char (&yes_string_literal)[1];
- typedef char (&no_string_literal)[2];
-
- template <class T>
- struct apply
- {
- typedef apply<T> self;
- static T x;
- static yes_string_literal check(char const*);
- static no_string_literal check(char*);
- static no_string_literal check(void const volatile*);
-
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(self::check(x)) == sizeof(yes_string_literal));
- typedef mpl::bool_<value> type;
- };
-};
-
-template <>
-struct string_literal_helper<false>
-{
- template <class T>
- struct apply : mpl::false_
- {
- };
-};
-
-template <class T>
-struct is_string_literal
- : string_literal_helper<is_array<T>::value>::apply<T>
-{
-};
-# endif
 
 }}} // namespace boost::python::detail
 

Modified: trunk/boost/python/handle.hpp
==============================================================================
--- trunk/boost/python/handle.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/handle.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -155,7 +155,6 @@
 //
 // Compile-time introspection
 //
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<typename T>
 class is_handle
 {
@@ -169,28 +168,6 @@
  public:
     BOOST_STATIC_CONSTANT(bool, value = true);
 };
-# else
-namespace detail
-{
- typedef char (&yes_handle_t)[1];
- typedef char (&no_handle_t)[2];
-
- no_handle_t is_handle_test(...);
-
- template<typename T>
- yes_handle_t is_handle_test(boost::type< handle<T> >);
-}
-
-template<typename T>
-class is_handle
-{
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_handle_test(boost::type<T>()))
- == sizeof(detail::yes_handle_t)));
-};
-# endif
 
 //
 // implementations

Modified: trunk/boost/python/object/forward.hpp
==============================================================================
--- trunk/boost/python/object/forward.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/object/forward.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -43,7 +43,6 @@
 {
 };
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<typename T>
 struct unforward
 {
@@ -70,88 +69,6 @@
 {
 };
 
-# else // no partial specialization
-
-namespace detail
-{
- typedef char (&yes_reference_to_value_t)[1];
- typedef char (&no_reference_to_value_t)[2];
-
- no_reference_to_value_t is_reference_to_value_test(...);
-
- template<typename T>
- yes_reference_to_value_t is_reference_to_value_test(boost::type< reference_to_value<T> >);
-
- template<bool wrapped>
- struct unforwarder
- {
- template <class T>
- struct apply
- {
- typedef typename unwrap_reference<T>::type& type;
- };
- };
-
- template<>
- struct unforwarder<true>
- {
- template <class T>
- struct apply
- {
- typedef typename T::reference type;
- };
- };
-
- template<bool wrapped = false>
- struct cref_unforwarder
- {
- template <class T>
- struct apply
- : python::detail::value_arg<
- typename unwrap_reference<T>::type
- >
- {
- };
- };
-
- template<>
- struct cref_unforwarder<true>
- {
- template <class T>
- struct apply
- : python::detail::value_arg<
- typename T::reference
- >
- {
- };
- };
-
- template<typename T>
- struct is_reference_to_value
- {
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(is_reference_to_value_test(boost::type<T>()))
- == sizeof(yes_reference_to_value_t)));
- typedef mpl::bool_<value> type;
- };
-}
-
-template <typename T>
-struct unforward
- : public detail::unforwarder<
- detail::is_reference_to_value<T>::value
- >::template apply<T>
-{};
-
-template <typename T>
-struct unforward_cref
- : public detail::cref_unforwarder<
- detail::is_reference_to_value<T>::value
- >::template apply<T>
-{};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template <class T>
 typename reference_to_value<T>::reference

Modified: trunk/boost/python/other.hpp
==============================================================================
--- trunk/boost/python/other.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/other.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -18,7 +18,6 @@
     typedef T type;
 };
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 namespace detail
 {
   template<typename T>
@@ -49,63 +48,6 @@
       typedef T type;
   };
 }
-# else // no partial specialization
-
-}} // namespace boost::python
-
-#include <boost/type.hpp>
-
-namespace boost { namespace python {
-
-namespace detail
-{
- typedef char (&yes_other_t)[1];
- typedef char (&no_other_t)[2];
-
- no_other_t is_other_test(...);
-
- template<typename T>
- yes_other_t is_other_test(type< other<T> >);
-
- template<bool wrapped>
- struct other_unwrapper
- {
- template <class T>
- struct apply
- {
- typedef T type;
- };
- };
-
- template<>
- struct other_unwrapper<true>
- {
- template <class T>
- struct apply
- {
- typedef typename T::type type;
- };
- };
-
- template<typename T>
- class is_other
- {
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_other_test(type<T>()))
- == sizeof(detail::yes_other_t)));
- };
-
- template <typename T>
- class unwrap_other
- : public detail::other_unwrapper<
- is_other<T>::value
- >::template apply<T>
- {};
-}
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }} // namespace boost::python
 

Modified: trunk/boost/python/ptr.hpp
==============================================================================
--- trunk/boost/python/ptr.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/python/ptr.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -36,7 +36,6 @@
     return pointer_wrapper<T>(t);
 }
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 template<typename T>
 class is_pointer_wrapper
     : public mpl::false_
@@ -62,64 +61,6 @@
  public:
     typedef T type;
 };
-# else // no partial specialization
-
-}} // namespace boost::python
-
-#include <boost/type.hpp>
-
-namespace boost { namespace python {
-
-namespace detail
-{
- typedef char (&yes_pointer_wrapper_t)[1];
- typedef char (&no_pointer_wrapper_t)[2];
-
- no_pointer_wrapper_t is_pointer_wrapper_test(...);
-
- template<typename T>
- yes_pointer_wrapper_t is_pointer_wrapper_test(boost::type< pointer_wrapper<T> >);
-
- template<bool wrapped>
- struct pointer_unwrapper
- {
- template <class T>
- struct apply
- {
- typedef T type;
- };
- };
-
- template<>
- struct pointer_unwrapper<true>
- {
- template <class T>
- struct apply
- {
- typedef typename T::type type;
- };
- };
-}
-
-template<typename T>
-class is_pointer_wrapper
-{
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_pointer_wrapper_test(boost::type<T>()))
- == sizeof(detail::yes_pointer_wrapper_t)));
- typedef mpl::bool_<value> type;
-};
-
-template <typename T>
-class unwrap_pointer
- : public detail::pointer_unwrapper<
- is_pointer_wrapper<T>::value
- >::template apply<T>
-{};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 }} // namespace boost::python
 

Modified: trunk/boost/range/detail/collection_traits_detail.hpp
==============================================================================
--- trunk/boost/range/detail/collection_traits_detail.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/range/detail/collection_traits_detail.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -185,7 +185,6 @@
 
 // Array container traits ---------------------------------------------------------------
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
             // array traits ( partial specialization )
             template< typename T >
             struct array_traits;
@@ -204,125 +203,6 @@
                 BOOST_STATIC_CONSTANT( size_type, array_size = sz );
             };
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // array traits ( no partial specialization )
- /*
- without partial specialization we are able to
- provide support only for a limited number of
- types. Currently the primitive numeric types
- are supported
- */
- template< typename T, typename BaseT >
- struct array_traits_impl
- {
- typedef BaseT value_type;
- typedef BaseT* iterator;
- typedef const BaseT* const_iterator;
- typedef std::size_t size_type;
- typedef std::ptrdiff_t difference_type;
-
- // size of the array
- BOOST_STATIC_CONSTANT( size_type, array_size = sizeof(T)/sizeof(BaseT) );
- };
-
- template< typename T, typename BaseT >
- struct array_traits_impl_selector
- {
- typedef array_traits_impl<T,BaseT> type;
- };
-
- struct array_traits_void
- {
- typedef void type;
- };
-
- template< typename T, typename BaseT >
- struct array_traits_cv_selector
- {
- typedef BOOST_STRING_TYPENAME
- ::boost::mpl::eval_if<
- ::boost::is_convertible<T,BaseT*>,
- array_traits_impl_selector<T,BaseT>,
- ::boost::mpl::eval_if<
- ::boost::is_convertible<T,const BaseT*>,
- array_traits_impl_selector<T, const BaseT>,
- ::boost::mpl::eval_if<
- ::boost::is_convertible<T, volatile BaseT*>,
- array_traits_impl_selector<T, volatile BaseT>,
- array_traits_impl_selector<T, const volatile BaseT>
- >
- >
- >::type type;
- };
-
- template< typename T >
- struct array_traits_select
- {
- template< typename T1, typename T2 >
- struct apply
- {
- typedef BOOST_STRING_TYPENAME
- ::boost::mpl::eval_if<
- ::boost::is_convertible<T,const volatile T2*>,
- array_traits_cv_selector<T,T2>,
- ::boost::mpl::identity<T1> >::type type;
- };
- };
-
- template< typename T >
- struct array_traits_selector
- {
- private:
- // supported array base types
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
- typedef BOOST_STRING_TYPENAME
- ::boost::mpl::vector10<
- wchar_t,
-#else // BOOST_NO_INTRINSIC_WCHAR_T
- typedef BOOST_STRING_TYPENAME
- ::boost::mpl::vector9<
-#endif // BOOST_NO_INTRINSIC_WCHAR_T
- char,
- signed char,
- unsigned char,
- signed short,
- unsigned short,
- signed int,
- unsigned int,
- signed long,
- unsigned long
- >::type array_base_types;
-
- public:
- typedef BOOST_STRING_TYPENAME
- ::boost::mpl::fold<
- array_base_types,
- ::boost::algorithm::detail::array_traits_void,
- ::boost::algorithm::detail::array_traits_select<T> >::type type;
- };
-
- template< typename T >
- struct array_traits
- {
- typedef BOOST_STRING_TYPENAME
- array_traits_selector<T>::type traits_type;
-
- typedef BOOST_STRING_TYPENAME
- traits_type::value_type value_type;
- typedef BOOST_STRING_TYPENAME
- traits_type::iterator iterator;
- typedef BOOST_STRING_TYPENAME
- traits_type::const_iterator const_iterator;
- typedef BOOST_STRING_TYPENAME
- traits_type::size_type size_type;
- typedef BOOST_STRING_TYPENAME
- traits_type::difference_type difference_type;
-
- BOOST_STATIC_CONSTANT( size_type, array_size = traits_type::array_size );
- };
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
             
             // array length resolving
             /*

Modified: trunk/boost/ref.hpp
==============================================================================
--- trunk/boost/ref.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/ref.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -65,7 +65,6 @@
 
 # undef BOOST_REF_CONST
 
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template<typename T>
 class is_reference_wrapper
@@ -104,66 +103,6 @@
 
 # undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF
 
-# else // no partial specialization
-
-} // namespace boost
-
-#include <boost/type.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
- typedef char (&yes_reference_wrapper_t)[1];
- typedef char (&no_reference_wrapper_t)[2];
-
- no_reference_wrapper_t is_reference_wrapper_test(...);
-
- template<typename T>
- yes_reference_wrapper_t is_reference_wrapper_test(type< reference_wrapper<T> >);
-
- template<bool wrapped>
- struct reference_unwrapper
- {
- template <class T>
- struct apply
- {
- typedef T type;
- };
- };
-
- template<>
- struct reference_unwrapper<true>
- {
- template <class T>
- struct apply
- {
- typedef typename T::type type;
- };
- };
-}
-
-template<typename T>
-class is_reference_wrapper
-{
- public:
- BOOST_STATIC_CONSTANT(
- bool, value = (
- sizeof(detail::is_reference_wrapper_test(type<T>()))
- == sizeof(detail::yes_reference_wrapper_t)));
-
- typedef ::boost::mpl::bool_<value> type;
-};
-
-template <typename T>
-class unwrap_reference
- : public detail::reference_unwrapper<
- is_reference_wrapper<T>::value
- >::template apply<T>
-{};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template <class T> BOOST_FORCEINLINE typename unwrap_reference<T>::type&
 unwrap_ref(T& t)

Modified: trunk/boost/serialization/shared_ptr.hpp
==============================================================================
--- trunk/boost/serialization/shared_ptr.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/serialization/shared_ptr.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -35,7 +35,6 @@
 // version 1 to distinguish from boost 1.32 version. Note: we can only do this
 // for a template when the compiler supports partial template specialization
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     namespace boost {
     namespace serialization{
         template<class T>
@@ -69,19 +68,6 @@
         };
     }}
     #define BOOST_SERIALIZATION_SHARED_PTR(T)
-#else
- // define macro to let users of these compilers do this
- #define BOOST_SERIALIZATION_SHARED_PTR(T) \
- BOOST_CLASS_VERSION( \
- ::boost::shared_ptr< T >, \
- 1 \
- ) \
- BOOST_CLASS_TRACKING( \
- ::boost::shared_ptr< T >, \
- ::boost::serialization::track_never \
- ) \
- /**/
-#endif
 
 namespace boost {
 namespace serialization{

Modified: trunk/boost/signals/detail/signals_common.hpp
==============================================================================
--- trunk/boost/signals/detail/signals_common.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/signals/detail/signals_common.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -97,7 +97,6 @@
       };
 
       // Determine if the incoming argument is a reference_wrapper
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
       template<typename T>
       struct is_ref
       {
@@ -109,23 +108,6 @@
       {
         BOOST_STATIC_CONSTANT(bool, value = true);
       };
-#else // no partial specialization
- typedef char yes_type;
- typedef double no_type;
-
- no_type is_ref_tester(...);
-
- template<typename T>
- yes_type is_ref_tester(reference_wrapper<T>*);
-
- template<typename T>
- struct is_ref
- {
- static T* t;
- BOOST_STATIC_CONSTANT(bool,
- value = (sizeof(is_ref_tester(t)) == sizeof(yes_type)));
- };
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
       // A slot can be a signal, a reference to a function object, or a
       // function object.

Modified: trunk/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
==============================================================================
--- trunk/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -233,7 +233,6 @@
 #endif
     }
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
     template <int N>
     struct call_helper {
 
@@ -244,11 +243,6 @@
             result = def.template get_start_parser<N>()->parse(scan);
         }
     };
-#else
- // The grammar_def stuff isn't supported for compilers, which do not
- // support partial template specialization
- template <int N> struct call_helper;
-#endif
 
     template <>
     struct call_helper<0> {

Modified: trunk/boost/spirit/home/classic/iterator/impl/file_iterator.ipp
==============================================================================
--- trunk/boost/spirit/home/classic/iterator/impl/file_iterator.ipp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/spirit/home/classic/iterator/impl/file_iterator.ipp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -285,11 +285,7 @@
     }
 
 private:
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     typedef boost::remove_pointer<HANDLE>::type handle_t;
-#else
- typedef void handle_t;
-#endif
 
     boost::shared_ptr<CharT> m_mem;
     std::size_t m_filesize;

Modified: trunk/boost/tuple/tuple_io.hpp
==============================================================================
--- trunk/boost/tuple/tuple_io.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/tuple/tuple_io.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -286,7 +286,6 @@
 }
 
    
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template<class CharType, class CharTrait, class T1>
 inline std::basic_istream<CharType, CharTrait> &
 read (std::basic_istream<CharType, CharTrait> &is, cons<T1, null_type>& t1) {
@@ -295,12 +294,6 @@
    
   return is >> t1.head;
 }
-#else
-template<class CharType, class CharTrait>
-inline std::basic_istream<CharType, CharTrait>&
-read(std::basic_istream<CharType, CharTrait>& i, const null_type&) { return i; }
-
-#endif // !BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template<class CharType, class CharTrait, class T1, class T2>
 inline std::basic_istream<CharType, CharTrait>&

Modified: trunk/boost/type_traits/function_traits.hpp
==============================================================================
--- trunk/boost/type_traits/function_traits.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/function_traits.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -15,7 +15,6 @@
 
 namespace boost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 namespace detail {
 
 template<typename Function> struct function_traits_helper;
@@ -170,67 +169,6 @@
 {
 };
 
-#else
-
-namespace detail {
-
-template<unsigned N>
-struct type_of_size
-{
- char elements[N];
-};
-
-template<typename R>
-type_of_size<1> function_arity_helper(R (*f)());
-
-template<typename R, typename T1>
-type_of_size<2> function_arity_helper(R (*f)(T1));
-
-template<typename R, typename T1, typename T2>
-type_of_size<3> function_arity_helper(R (*f)(T1, T2));
-
-template<typename R, typename T1, typename T2, typename T3>
-type_of_size<4> function_arity_helper(R (*f)(T1, T2, T3));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-type_of_size<5> function_arity_helper(R (*f)(T1, T2, T3, T4));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5>
-type_of_size<6> function_arity_helper(R (*f)(T1, T2, T3, T4, T5));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6>
-type_of_size<7> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7>
-type_of_size<8> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8>
-type_of_size<9> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9>
-type_of_size<10> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8,
- T9));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9,
- typename T10>
-type_of_size<11> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8,
- T9, T10));
-} // end namespace detail
-
-// Won't work with references
-template<typename Function>
-struct function_traits
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = (sizeof(boost::detail::function_arity_helper((Function*)0))-1));
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 }
 
 #endif // BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED

Modified: trunk/boost/type_traits/is_class.hpp
==============================================================================
--- trunk/boost/type_traits/is_class.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_class.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -93,7 +93,6 @@
 template <typename T>
 struct is_class_impl
 {
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
     BOOST_STATIC_CONSTANT(bool, value =
     (::boost::type_traits::ice_and<
         ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
@@ -103,16 +102,6 @@
         ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
         ::boost::type_traits::ice_not< ::boost::is_function<T>::value >::value
>::value));
-# else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value
- >::value));
-# endif
 };
 
 # endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION

Modified: trunk/boost/type_traits/is_const.hpp
==============================================================================
--- trunk/boost/type_traits/is_const.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_const.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 # include <boost/type_traits/detail/cv_traits_impl.hpp>
 # ifdef __GNUC__
 # include <boost/type_traits/is_reference.hpp>
@@ -32,12 +31,6 @@
 # if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
 # include <boost/type_traits/remove_bounds.hpp>
 # endif
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-#endif
 
 // should be the last #include
 #include <boost/type_traits/detail/bool_trait_def.hpp>

Modified: trunk/boost/type_traits/is_empty.hpp
==============================================================================
--- trunk/boost/type_traits/is_empty.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_empty.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -14,19 +14,9 @@
 #include <boost/type_traits/config.hpp>
 #include <boost/type_traits/intrinsics.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 # include <boost/type_traits/remove_cv.hpp>
 # include <boost/type_traits/is_class.hpp>
 # include <boost/type_traits/add_reference.hpp>
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-# include <boost/type_traits/is_member_pointer.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/is_void.hpp>
-# include <boost/type_traits/detail/ice_and.hpp>
-# include <boost/type_traits/detail/ice_not.hpp>
-#endif
 
 // should be always the last #include directive
 #include <boost/type_traits/detail/bool_trait_def.hpp>
@@ -41,7 +31,6 @@
 
 namespace detail {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
@@ -130,82 +119,6 @@
 
 #endif // __BORLANDC__
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
- empty_helper_t1();
- int i[256];
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-template <typename T>
-struct empty_helper_base
-{
- enum { value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)) };
-};
-
-template <typename T>
-struct empty_helper_nonbase
-{
- enum { value = false };
-};
-
-template <bool base>
-struct empty_helper_chooser
-{
- template <typename T> struct result_
- {
- typedef empty_helper_nonbase<T> type;
- };
-};
-
-template <>
-struct empty_helper_chooser<true>
-{
- template <typename T> struct result_
- {
- typedef empty_helper_base<T> type;
- };
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef ::boost::detail::empty_helper_chooser<
- ::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_convertible<T,double>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_pointer<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
- ::boost::type_traits::ice_not<
- ::boost::is_convertible<T,void const volatile*>::value
- >::value
- >::value > chooser;
-
- typedef typename chooser::template result_<T> result;
- typedef typename result::type eh_type;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<eh_type::value, BOOST_INTERNAL_IS_EMPTY(T)>::value));
-};
-
-#else
-
-template <typename T> struct is_empty_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_INTERNAL_IS_EMPTY(T));
-};
-
-#endif // BOOST_MSVC6_MEMBER_TEMPLATES
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // these help when the compiler has no partial specialization support:
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false)

Modified: trunk/boost/type_traits/is_object.hpp
==============================================================================
--- trunk/boost/type_traits/is_object.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_object.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -26,20 +26,12 @@
 template <typename T>
 struct is_object_impl
 {
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
    BOOST_STATIC_CONSTANT(bool, value =
       (::boost::type_traits::ice_and<
          ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
          ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value,
          ::boost::type_traits::ice_not< ::boost::is_function<T>::value>::value
>::value));
-#else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value
- >::value));
-#endif
 };
 
 } // namespace detail

Modified: trunk/boost/type_traits/is_pod.hpp
==============================================================================
--- trunk/boost/type_traits/is_pod.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_pod.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -33,7 +33,6 @@
 
 namespace detail {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 template <typename T> struct is_pod_impl
 {
@@ -54,71 +53,6 @@
 };
 #endif
 
-#else
-
-template <bool is_array = false>
-struct is_pod_helper
-{
- template <typename T> struct result_
- {
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_scalar<T>::value,
- ::boost::is_void<T>::value,
- BOOST_INTERNAL_IS_POD(T)
- >::value));
- };
-};
-
-template <bool b>
-struct bool_to_yes_no_type
-{
- typedef ::boost::type_traits::no_type type;
-};
-
-template <>
-struct bool_to_yes_no_type<true>
-{
- typedef ::boost::type_traits::yes_type type;
-};
-
-template <typename ArrayType>
-struct is_pod_array_helper
-{
- enum { is_pod = ::boost::is_POD<ArrayType>::value }; // MSVC workaround
- typedef typename bool_to_yes_no_type<is_pod>::type type;
- type instance() const;
-};
-
-template <typename T>
-is_pod_array_helper<T> is_POD_array(T*);
-
-template <>
-struct is_pod_helper<true>
-{
- template <typename T> struct result_
- {
- static T& help();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(is_POD_array(help()).instance()) == sizeof(::boost::type_traits::yes_type)
- );
- };
-};
-
-
-template <typename T> struct is_pod_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::detail::is_pod_helper<
- ::boost::is_array<T>::value
- >::template result_<T>::value
- )
- );
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 // the following help compilers without partial specialization support:
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true)

Modified: trunk/boost/type_traits/is_same.hpp
==============================================================================
--- trunk/boost/type_traits/is_same.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_same.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -27,7 +27,6 @@
 
 namespace boost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
 BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
@@ -37,58 +36,6 @@
 BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
 #endif
 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-#ifdef BOOST_MSVC
-// the following VC6 specific implementation is *NOT* legal
-// C++, but has the advantage that it works for incomplete
-// types.
-
-template< typename T1 >
-struct is_same_part_1
-{
- template<typename T2> struct part_2 { enum { value = false }; };
- template<> struct part_2<T1> { enum { value = true }; };
-};
-
-template< typename T1, typename T2 >
-struct is_same_impl
-{
- enum { value = boost::detail::is_same_part_1<T1>::template part_2<T2>::value };
-};
-
-#else // generic "no-partial-specialization" version
-
-template <typename T>
-::boost::type_traits::yes_type
-BOOST_TT_DECL is_same_tester(T*, T*);
-
-::boost::type_traits::no_type
-BOOST_TT_DECL is_same_tester(...);
-
-template <typename T, typename U>
-struct is_same_impl
-{
- static T t;
- static U u;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- (sizeof(type_traits::yes_type) == sizeof(boost::detail::is_same_tester(&t,&u))),
- (::boost::is_reference<T>::value == ::boost::is_reference<U>::value),
- (sizeof(T) == sizeof(U))
- >::value));
-};
-
-#endif // BOOST_MSVC
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::boost::detail::is_same_impl<T,U>::value))
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace boost
 

Modified: trunk/boost/type_traits/is_volatile.hpp
==============================================================================
--- trunk/boost/type_traits/is_volatile.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/is_volatile.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,17 +24,10 @@
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 # include <boost/type_traits/detail/cv_traits_impl.hpp>
 # if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
 # include <boost/type_traits/remove_bounds.hpp>
 # endif
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-#endif
 
 // should be the last #include
 #include <boost/type_traits/detail/bool_trait_def.hpp>

Modified: trunk/boost/type_traits/remove_const.hpp
==============================================================================
--- trunk/boost/type_traits/remove_const.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/remove_const.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
 
 namespace boost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail {
 
@@ -73,11 +72,6 @@
 BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N])
 #endif
 
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace boost
 

Modified: trunk/boost/type_traits/remove_cv.hpp
==============================================================================
--- trunk/boost/type_traits/remove_cv.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/remove_cv.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -23,7 +23,6 @@
 
 namespace boost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail{
 
@@ -57,21 +56,6 @@
 BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N])
 #endif
 
-#else
-
-namespace detail {
-template <typename T>
-struct remove_cv_impl
-{
- typedef typename remove_volatile_impl<
- typename remove_const_impl<T>::type
- >::type type;
-};
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::remove_cv_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace boost
 

Modified: trunk/boost/type_traits/remove_reference.hpp
==============================================================================
--- trunk/boost/type_traits/remove_reference.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/remove_reference.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -18,7 +18,6 @@
 
 namespace boost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail{
 //
@@ -53,11 +52,6 @@
 BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T)
 #endif
 
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename boost::detail::remove_reference_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace boost
 

Modified: trunk/boost/type_traits/remove_volatile.hpp
==============================================================================
--- trunk/boost/type_traits/remove_volatile.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/type_traits/remove_volatile.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -24,7 +24,6 @@
 
 namespace boost {
 
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 namespace detail {
 
@@ -71,11 +70,6 @@
 BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N])
 #endif
 
-#else
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename boost::detail::remove_volatile_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
 } // namespace boost
 

Modified: trunk/boost/variant/detail/enable_recursive.hpp
==============================================================================
--- trunk/boost/variant/detail/enable_recursive.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/variant/detail/enable_recursive.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -78,7 +78,6 @@
 // See boost/variant/detail/enable_recursive_fwd.hpp for more information.
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T, typename RecursiveVariant, typename NoWrapper>
 struct enable_recursive
@@ -112,34 +111,6 @@
 
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T, typename RecursiveVariant, typename NoWrapper>
-struct enable_recursive
-{
-private: // helpers, for metafunction result (below)
-
- typedef typename BOOST_VARIANT_AUX_ENABLE_RECURSIVE_IMPL(
- T, RecursiveVariant, ::boost::recursive_variant_
- )::type t_;
-
-public: // metafunction result
-
- // [Wrap with recursive_wrapper only if rebind really changed something:]
- typedef typename mpl::if_<
- mpl::or_<
- NoWrapper
- , is_same< t_,T >
- , is_reference<t_>
- , is_pointer<t_>
- >
- , t_
- , boost::recursive_wrapper<t_>
- >::type type;
-
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 ///////////////////////////////////////////////////////////////////////////////
 // (detail) metafunction class quoted_enable_recursive

Modified: trunk/boost/variant/detail/enable_recursive_fwd.hpp
==============================================================================
--- trunk/boost/variant/detail/enable_recursive_fwd.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/variant/detail/enable_recursive_fwd.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -17,11 +17,7 @@
 
 #include "boost/mpl/bool_fwd.hpp"
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 # include "boost/mpl/bool.hpp"
-#else
-# include "boost/type_traits/is_base_and_derived.hpp"
-#endif
 
 namespace boost {
 namespace detail { namespace variant {
@@ -32,7 +28,6 @@
 // Signifies that the variant should perform recursive substituion.
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct recursive_flag
@@ -40,20 +35,6 @@
     typedef T type;
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-struct recursive_flag_tag
-{
-};
-
-template <typename T>
-struct recursive_flag
- : recursive_flag_tag
-{
- typedef T type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 ///////////////////////////////////////////////////////////////////////////////
 // (detail) metafunction is_recursive_flag
@@ -61,7 +42,6 @@
 // Signifies that the variant should perform recursive substituion.
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct is_recursive_flag
@@ -75,15 +55,6 @@
 {
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct is_recursive_flag
- : is_base_and_derived< recursive_flag_tag,T >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 ///////////////////////////////////////////////////////////////////////////////
 // (detail) metafunction enable_recursive

Modified: trunk/boost/variant/detail/over_sequence.hpp
==============================================================================
--- trunk/boost/variant/detail/over_sequence.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/variant/detail/over_sequence.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -38,7 +38,6 @@
 // Indicates whether the specified type is of form over_sequence<...> or not.
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct is_over_sequence
@@ -52,36 +51,6 @@
 {
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-typedef char (&yes_over_sequence_t)[1];
-typedef char (&no_over_sequence_t)[2];
-
-no_over_sequence_t is_over_sequence_test(...);
-
-template<typename T>
-yes_over_sequence_t is_over_sequence_test(
- type< ::boost::detail::variant::over_sequence<T> >
- );
-
-template<typename T>
-struct is_over_sequence_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(is_over_sequence_test(type<T>()))
- == sizeof(yes_over_sequence_t)
- ));
-};
-
-template <typename T>
-struct is_over_sequence
- : mpl::bool_<
- ::boost::detail::variant::is_over_sequence_impl<T>::value
- >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 }} // namespace detail::variant
 } // namespace boost

Modified: trunk/boost/variant/detail/visitation_impl.hpp
==============================================================================
--- trunk/boost/variant/detail/visitation_impl.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/variant/detail/visitation_impl.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -67,7 +67,6 @@
 // "Never ending" iterator range facilitates visitation_impl unrolling.
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename Iter, typename LastIter>
 struct visitation_impl_step
@@ -87,29 +86,6 @@
     typedef visitation_impl_step next;
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename Iter, typename LastIter>
-struct visitation_impl_step
-{
- typedef typename mpl::eval_if<
- is_same<Iter, LastIter>
- , mpl::identity<apply_visitor_unrolled>
- , Iter
- >::type type;
-
- typedef typename mpl::eval_if<
- is_same<type, apply_visitor_unrolled> //is_same<Iter, LastIter>
- , mpl::identity<LastIter>
- , mpl::next<Iter>
- >::type next_iter;
-
- typedef visitation_impl_step<
- next_iter, LastIter
- > next;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 ///////////////////////////////////////////////////////////////////////////////
 // (detail) function template visitation_impl_invoke

Modified: trunk/boost/variant/recursive_wrapper_fwd.hpp
==============================================================================
--- trunk/boost/variant/recursive_wrapper_fwd.hpp Fri Oct 11 19:15:00 2013 (r86244)
+++ trunk/boost/variant/recursive_wrapper_fwd.hpp 2013-10-11 19:17:48 EDT (Fri, 11 Oct 2013) (r86245)
@@ -50,7 +50,6 @@
 
 namespace detail {
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct is_recursive_wrapper_impl
@@ -64,28 +63,6 @@
 {
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-typedef char (&yes_recursive_wrapper_t)[1];
-typedef char (&no_recursive_wrapper_t)[2];
-
-no_recursive_wrapper_t is_recursive_wrapper_test(...);
-
-template<typename T>
-yes_recursive_wrapper_t is_recursive_wrapper_test(
- type< ::boost::recursive_wrapper<T> >
- );
-
-template<typename T>
-struct is_recursive_wrapper_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(is_recursive_wrapper_test(type<T>()))
- == sizeof(yes_recursive_wrapper_t)
- ));
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 } // namespace detail
 
@@ -101,7 +78,6 @@
 // If specified type T matches recursive_wrapper<U>, then U; else T.
 //
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 
 template <typename T>
 struct unwrap_recursive
@@ -119,20 +95,6 @@
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,unwrap_recursive,(T))
 };
 
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct unwrap_recursive
- : mpl::eval_if<
- is_recursive_wrapper<T>
- , T
- , mpl::identity< T >
- >
-{
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,unwrap_recursive,(T))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
 
 } // namespace boost
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk