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