$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r81139 - in trunk/boost/test: data data/monomorphic data/monomorphic/generators utils
From: gennadiy.rozental_at_[hidden]
Date: 2012-11-01 18:30:53
Author: rogeeff
Date: 2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
New Revision: 81139
URL: http://svn.boost.org/trac/boost/changeset/81139
Log:
gcc 4.7 version of data test case subsystem
Removed:
   trunk/boost/test/utils/pp_variadic.hpp
Text files modified: 
   trunk/boost/test/data/monomorphic/array.hpp             |     3 +                                       
   trunk/boost/test/data/monomorphic/collection.hpp        |     3 +                                       
   trunk/boost/test/data/monomorphic/dataset.hpp           |    68 ++++----------------------------------- 
   trunk/boost/test/data/monomorphic/generate.hpp          |     1                                         
   trunk/boost/test/data/monomorphic/generators/random.hpp |     4 +                                       
   trunk/boost/test/data/monomorphic/generators/xrange.hpp |     2                                         
   trunk/boost/test/data/monomorphic/grid.hpp              |    36 ++++++++++++--------                    
   trunk/boost/test/data/monomorphic/join.hpp              |    36 ++++++++++++--------                    
   trunk/boost/test/data/monomorphic/singleton.hpp         |     8 ++-                                     
   trunk/boost/test/data/monomorphic/zip.hpp               |    44 +++++++++++++++----------               
   trunk/boost/test/data/test_case.hpp                     |    20 +++++------                             
   trunk/boost/test/utils/named_params.hpp                 |     9 +---                                    
   12 files changed, 102 insertions(+), 132 deletions(-)
Modified: trunk/boost/test/data/monomorphic/array.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/array.hpp	(original)
+++ trunk/boost/test/data/monomorphic/array.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -36,6 +36,7 @@
 template<typename T>
 class array : public monomorphic::dataset<T> {
     typedef monomorphic::dataset<T> base;
+    typedef typename base::iter_ptr iter_ptr;
 
     struct iterator : public base::iterator {
         // Constructor
@@ -50,7 +51,7 @@
 
     private:
         // Data members
-        typename T const*   m_it;
+        T const*            m_it;
         bool                m_singleton;
     };
 
Modified: trunk/boost/test/data/monomorphic/collection.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/collection.hpp	(original)
+++ trunk/boost/test/data/monomorphic/collection.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -37,6 +37,7 @@
     typedef typename std::decay<C>::type col_type;
     typedef typename col_type::value_type T;
     typedef monomorphic::dataset<T> base;
+    typedef typename base::iter_ptr iter_ptr;
 
     struct iterator : public base::iterator {
         // Constructor
@@ -52,7 +53,7 @@
     private:
         // Data members
         typename col_type::const_iterator m_iter;
-        bool            m_singleton;
+        bool                m_singleton;
     };
 
 public:
Modified: trunk/boost/test/data/monomorphic/dataset.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/dataset.hpp	(original)
+++ trunk/boost/test/data/monomorphic/dataset.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -18,11 +18,12 @@
 // Boost.Test
 #include <boost/test/data/config.hpp>
 #include <boost/test/data/size.hpp>
+#include <boost/test/data/monomorphic/fwd.hpp>
 
 // STL
-#include <vector>
-#include <list>
 #include <tuple>
+#include <memory>
+#include <stdexcept>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
@@ -62,7 +63,7 @@
     static void
     invoke_action( ref_type arg, Action const& action )
     {
-        action( get<0>(arg), get<1>(arg) );
+        action( std::get<0>(arg), std::get<1>(arg) );
     }
 };
 
@@ -77,7 +78,7 @@
     static void
     invoke_action( ref_type arg, Action const& action )
     {
-        action( get<0>(arg), get<1>(arg), get<2>(arg) );
+        action( std::get<0>(arg), std::get<1>(arg), std::get<2>(arg) );
     }
 };
 
@@ -113,41 +114,9 @@
     virtual iter_ptr        begin() const = 0;
 };
 
-// ************************************************************************** //
-// **************            monomorphic::is_dataset           ************** //
-// ************************************************************************** //
-
-template<typename DS>
-struct is_dataset : std::false_type {};
-
-//____________________________________________________________________________//
-
-template<typename DS>
-struct is_dataset<DS&> : is_dataset<DS> {};
-
-//____________________________________________________________________________//
-
-template<typename DS>
-struct is_dataset<DS const> : is_dataset<DS> {};
-
-//____________________________________________________________________________//
-
 } // namespace monomorphic
 
 // ************************************************************************** //
-// **************                  data::make                  ************** //
-// ************************************************************************** //
-
-template<typename DS>
-inline typename std::enable_if<monomorphic::is_dataset<DS>::value,DS>::type
-make(DS&& ds)
-{
-    return std::move( ds );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
 // **************                for_each_sample               ************** //
 // ************************************************************************** //
 
@@ -172,8 +141,8 @@
 
 template<typename SampleType, typename Action>
 inline typename std::enable_if<!monomorphic::is_dataset<SampleType>::value,void>::type
-for_each_sample( SampleType const&  samples, 
-                 Action const&      act, 
+for_each_sample( SampleType const&  samples,
+                 Action const&      act,
                  data::size_t       number_of_samples = BOOST_TEST_DS_INFINITE_SIZE )
 {
     data::for_each_sample( data::make( samples ), act, number_of_samples );
@@ -181,29 +150,6 @@
 
 //____________________________________________________________________________//
 
-namespace ds_detail {
-
-// ************************************************************************** //
-// **************              is_std_collection               ************** //
-// ************************************************************************** //
-
-template<typename T>
-struct is_std_collection : std::false_type {};
-
-template<typename T>
-struct is_std_collection<T const> : is_std_collection<T> {};
-
-template<typename T>
-struct is_std_collection<T&> : is_std_collection<T> {};
-
-template<typename T>
-struct is_std_collection<std::vector<T>> : std::true_type {};
-
-template<typename T>
-struct is_std_collection<std::list<T>> : std::true_type {};
-
-} // namespace ds_detail
-
 } // namespace data
 } // namespace unit_test
 } // namespace boost
Modified: trunk/boost/test/data/monomorphic/generate.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/generate.hpp	(original)
+++ trunk/boost/test/data/monomorphic/generate.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -37,6 +37,7 @@
 class generated_by : public monomorphic::dataset<typename Generator::data_type> {
     typedef typename Generator::data_type T;
     typedef monomorphic::dataset<T> base;
+    typedef typename base::iter_ptr iter_ptr;
 
     struct iterator : public base::iterator {
         // Constructor
Modified: trunk/boost/test/data/monomorphic/generators/random.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/generators/random.hpp	(original)
+++ trunk/boost/test/data/monomorphic/generators/random.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -134,7 +134,9 @@
     typedef typename Gen::distr_type distr_type;
     typedef typename Gen::engine_type engine_type;
 
-    engine_type E((std::random_device()()));
+    std::random_device rd;
+    engine_type E;
+//    engine_type E( rd );
     if( params.has(engine) )
         E = params[engine];
 
Modified: trunk/boost/test/data/monomorphic/generators/xrange.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/generators/xrange.hpp	(original)
+++ trunk/boost/test/data/monomorphic/generators/xrange.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -101,7 +101,7 @@
             BOOST_TEST_DS_ASSERT( (step_val < 0) ^ (begin_val < *end_val), "Invalid step direction" );
 
             SampleType  abs_distance    = step_val < 0 ? begin_val - *end_val : *end_val-begin_val;
-            StepType    abs_step        = make_xrange::abs(step_val, (boost::is_unsigned<StepType>::type*)0 );
+            StepType    abs_step        = make_xrange::abs(step_val, (typename boost::is_unsigned<StepType>::type*)0 );
             std::size_t s = static_cast<std::size_t>(abs_distance/abs_step);
 
             if( static_cast<SampleType>(s*abs_step) < abs_distance )
Modified: trunk/boost/test/data/monomorphic/grid.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/grid.hpp	(original)
+++ trunk/boost/test/data/monomorphic/grid.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -95,6 +95,7 @@
 
     typedef typename ds_detail::grid_traits<T1,T2>::type T;
     typedef monomorphic::dataset<T> base;
+    typedef typename base::iter_ptr iter_ptr;
 
     struct iterator : public base::iterator {
         typedef typename monomorphic::traits<T>::ref_type ref_type;
@@ -161,19 +162,22 @@
 
 //____________________________________________________________________________//
 
-namespace ds_detail {
+namespace result_of {
 
-template<typename DS1, typename DS2>
-struct explicit_grid_type
+template<typename DS1Gen, typename DS2Gen>
+struct grid
 {
-    typedef grid<DS1,DS2> type;
+    typedef monomorphic::grid<typename DS1Gen::type,typename DS2Gen::type> type;
 };
 
-} // ds_detail
+} // namespace result_of
+
+//____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline typename boost::lazy_enable_if<mpl::and_<is_dataset<DS1>,is_dataset<DS2>>, 
-                                      ds_detail::explicit_grid_type<DS1,DS2>>::type
+inline typename boost::lazy_enable_if_c<is_dataset<DS1>::value && is_dataset<DS2>::value, 
+                                        result_of::grid<mpl::identity<DS1>,mpl::identity<DS2>>
+>::type
 operator*( DS1&& ds1, DS2&& ds2 )
 {
     BOOST_TEST_DS_ASSERT( !ds1.size().is_inf() && !ds2.size().is_inf(), "Grid dimension can't have infinite size" );
@@ -184,21 +188,23 @@
 //____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline auto 
-operator*( DS1&& ds1, DS2&& ds2 ) ->
-typename std::enable_if<is_dataset<DS1>::value && !is_dataset<DS2>::value, decltype(ds1 * data::make(ds2))>::type
+inline typename boost::lazy_enable_if_c<is_dataset<DS1>::value && !is_dataset<DS2>::value, 
+                                        result_of::grid<mpl::identity<DS1>,data::result_of::make<DS2>>
+>::type
+operator*( DS1&& ds1, DS2&& ds2 )
 {
-    return ds1 * data::make(ds2);
+    return std::forward<DS1>(ds1) * data::make(std::forward<DS2>(ds2));
 }
 
 //____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline auto 
-operator*( DS1&& ds1, DS2&& ds2 ) ->
-typename std::enable_if<!is_dataset<DS1>::value && is_dataset<DS2>::value, decltype(data::make(ds1) * ds2)>::type
+inline typename boost::lazy_enable_if_c<!is_dataset<DS1>::value && is_dataset<DS2>::value, 
+                                        result_of::grid<data::result_of::make<DS1>,mpl::identity<DS2>>
+>::type
+operator*( DS1&& ds1, DS2&& ds2 )
 {
-    return data::make(ds1) * ds2;
+    return data::make(std::forward<DS1>(ds1)) * std::forward<DS2>(ds2);
 }
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/data/monomorphic/join.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/join.hpp	(original)
+++ trunk/boost/test/data/monomorphic/join.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -40,6 +40,7 @@
 class join : public monomorphic::dataset<typename std::decay<DS1>::type::data_type> {
     typedef typename std::decay<DS1>::type::data_type T;
     typedef monomorphic::dataset<T> base;
+    typedef typename base::iter_ptr iter_ptr;
 
     struct iterator : public base::iterator {
         // Constructor
@@ -94,19 +95,22 @@
 
 //____________________________________________________________________________//
 
-namespace ds_detail {
+namespace result_of {
 
-template<typename DS1, typename DS2>
-struct explicit_join_type
+template<typename DS1Gen, typename DS2Gen>
+struct join
 {
-    typedef join<DS1,DS2> type;
+    typedef monomorphic::join<typename DS1Gen::type,typename DS2Gen::type> type;
 };
 
-} // ds_detail
+} // namespace result_of
+
+//____________________________________________________________________________//    
 
 template<typename DS1, typename DS2>
-inline typename boost::lazy_enable_if<mpl::and_<is_dataset<DS1>,is_dataset<DS2>>, 
-                                      ds_detail::explicit_join_type<DS1,DS2>>::type
+inline typename boost::lazy_enable_if_c<is_dataset<DS1>::value && is_dataset<DS2>::value, 
+                                        result_of::join<mpl::identity<DS1>,mpl::identity<DS2>>
+>::type
 operator+( DS1&& ds1, DS2&& ds2 )
 {
     return join<DS1,DS2>( std::forward<DS1>( ds1 ),  std::forward<DS2>( ds2 ) );
@@ -115,21 +119,23 @@
 //____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline auto 
-operator+( DS1&& ds1, DS2&& ds2 ) ->
-typename std::enable_if<is_dataset<DS1>::value && !is_dataset<DS2>::value, decltype(ds1 + data::make(ds2))>::type
+inline typename boost::lazy_enable_if_c<is_dataset<DS1>::value && !is_dataset<DS2>::value, 
+                                        result_of::join<mpl::identity<DS1>,data::result_of::make<DS2>>
+>::type
+operator+( DS1&& ds1, DS2&& ds2 )
 {
-    return ds1 + data::make(ds2);
+    return std::forward<DS1>(ds1) + data::make(std::forward<DS2>(ds2));
 }
 
 //____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline auto 
-operator+( DS1&& ds1, DS2&& ds2 ) ->
-typename std::enable_if<!is_dataset<DS1>::value && is_dataset<DS2>::value, decltype(data::make(ds1) + ds2)>::type
+inline typename boost::lazy_enable_if_c<!is_dataset<DS1>::value && is_dataset<DS2>::value, 
+                                        result_of::join<data::result_of::make<DS1>,mpl::identity<DS2>>
+>::type
+operator+( DS1&& ds1, DS2&& ds2 )
 {
-    return data::make(ds1) + ds2;
+    return data::make(std::forward<DS1>(ds1)) + std::forward<DS2>(ds2);
 }
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/data/monomorphic/singleton.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/singleton.hpp	(original)
+++ trunk/boost/test/data/monomorphic/singleton.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -35,15 +35,17 @@
 // Models single element data set
 
 template<typename T>
-class singleton : public monomorphic::dataset<T> {
-    typedef monomorphic::dataset<T> base;
+class singleton : public monomorphic::dataset<typename std::decay<T>::type> {
+    typedef monomorphic::dataset<typename std::decay<T>::type> base;
+    typedef typename base::iter_ptr  iter_ptr;
 
     struct iterator : public base::iterator {
         // Constructor
         explicit            iterator( singleton<T> const& owner ) : m_owner( owner ) {}
 
         // forward iterator interface 
-        virtual T const&    operator*()     { return m_owner.value(); }
+        virtual typename base::data_type const&
+                            operator*()     { return m_owner.value(); }
         virtual void        operator++()    {}
 
     private:
Modified: trunk/boost/test/data/monomorphic/zip.hpp
==============================================================================
--- trunk/boost/test/data/monomorphic/zip.hpp	(original)
+++ trunk/boost/test/data/monomorphic/zip.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -52,11 +52,11 @@
 struct zip_traits<T1,std::tuple<T2,T3>> {
     typedef std::tuple<T1,T2,T3> type;
     typedef typename monomorphic::traits<type>::ref_type ref_type;
-    
+
     static ref_type
     tuple_merge(T1 const& a1, std::tuple<T2 const&,T3 const&> const& a2)
     {
-        return ref_type(a1,get<0>(a2),get<1>(a2));
+        return ref_type(a1,std::get<0>(a2),std::get<1>(a2));
     }
 };
 
@@ -70,7 +70,7 @@
     static ref_type
     tuple_merge(std::tuple<T1 const&,T2 const&> const& a1, T3 const& a2)
     {
-        return ref_type(get<0>(a1),get<1>(a1),a2);
+        return ref_type(std::get<0>(a1),std::get<1>(a1),a2);
     }
 };
 
@@ -93,6 +93,7 @@
 
     typedef typename ds_detail::zip_traits<T1,T2>::type T;
     typedef monomorphic::dataset<T> base;
+    typedef typename base::iter_ptr iter_ptr;
 
     struct iterator : public base::iterator {
         typedef typename monomorphic::traits<T>::ref_type ref_type;
@@ -169,19 +170,26 @@
     BOOST_TEST_DS_ERROR( "Can't zip datasets of different sizes" );
 }
 
+} // namespace ds_detail
+
 //____________________________________________________________________________//
 
-template<typename DS1, typename DS2>
-struct explicit_zip_type
+namespace result_of {
+
+template<typename DS1Gen, typename DS2Gen>
+struct zip
 {
-    typedef zip<DS1,DS2> type;
+    typedef monomorphic::zip<typename DS1Gen::type,typename DS2Gen::type> type;
 };
 
-} // ds_detail
+} // namespace result_of
+
+//____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline typename boost::lazy_enable_if<mpl::and_<is_dataset<DS1>,is_dataset<DS2>>, 
-                                      ds_detail::explicit_zip_type<DS1,DS2>>::type
+inline typename boost::lazy_enable_if_c<is_dataset<DS1>::value && is_dataset<DS2>::value, 
+                                        result_of::zip<mpl::identity<DS1>,mpl::identity<DS2>>
+>::type
 operator^( DS1&& ds1, DS2&& ds2 )
 {
     return zip<DS1,DS2>( std::forward<DS1>( ds1 ),  std::forward<DS2>( ds2 ), ds_detail::zip_size( ds1, ds2 ) );
@@ -190,21 +198,23 @@
 //____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline auto 
-operator^( DS1&& ds1, DS2&& ds2 ) ->
-typename std::enable_if<is_dataset<DS1>::value && !is_dataset<DS2>::value, decltype(ds1 ^ data::make(ds2))>::type
+inline typename boost::lazy_enable_if_c<is_dataset<DS1>::value && !is_dataset<DS2>::value, 
+                                        result_of::zip<mpl::identity<DS1>,data::result_of::make<DS2>>
+>::type
+operator^( DS1&& ds1, DS2&& ds2 )
 {
-    return ds1 ^ data::make(ds2);
+    return std::forward<DS1>(ds1) ^ data::make(std::forward<DS2>(ds2));
 }
 
 //____________________________________________________________________________//
 
 template<typename DS1, typename DS2>
-inline auto 
-operator^( DS1&& ds1, DS2&& ds2 ) ->
-typename std::enable_if<!is_dataset<DS1>::value && is_dataset<DS2>::value, decltype(data::make(ds1) ^ ds2)>::type
+inline typename boost::lazy_enable_if_c<!is_dataset<DS1>::value && is_dataset<DS2>::value, 
+                                        result_of::zip<data::result_of::make<DS1>,mpl::identity<DS2>>
+>::type
+operator^( DS1&& ds1, DS2&& ds2 )
 {
-    return data::make(ds1) ^ ds2;
+    return data::make(std::forward<DS1>(ds1)) ^ std::forward<DS2>(ds2);
 }
 
 //____________________________________________________________________________//
Modified: trunk/boost/test/data/test_case.hpp
==============================================================================
--- trunk/boost/test/data/test_case.hpp	(original)
+++ trunk/boost/test/data/test_case.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -19,8 +19,6 @@
 #include <boost/test/data/config.hpp>
 #include <boost/test/data/dataset.hpp>
 
-#include <boost/test/utils/pp_variadic.hpp>
-
 // Boost
 #include <boost/preprocessor/repetition/enum_params.hpp>
 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
@@ -33,6 +31,7 @@
 #include <boost/preprocessor/seq/for_each.hpp>
 #include <boost/preprocessor/seq/enum.hpp>
 #include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
@@ -66,7 +65,7 @@
     {
         if( m_test_cases.empty() )
             return 0;
-    
+
         test_unit* res = m_test_cases.front();
         m_test_cases.pop_front();
 
@@ -79,8 +78,8 @@
     void    operator()( BOOST_PP_ENUM_BINARY_PARAMS(arity, Arg, const& arg) ) const \
     {                                                                               \
         m_test_cases.push_back( new test_case( m_tc_name,                           \
-            std::bind( &TestCase::test_method<BOOST_PP_ENUM_PARAMS(arity,Arg)>,     \
-            BOOST_PP_ENUM_PARAMS(arity, arg) ) ) );                                 \
+         std::bind( &TestCase::template test_method<BOOST_PP_ENUM_PARAMS(arity,Arg)>, \
+         BOOST_PP_ENUM_PARAMS(arity, arg) ) ) );                                    \
     }                                                                               \
 
     BOOST_PP_REPEAT_FROM_TO(1, 4, TC_MAKE, _)
@@ -144,15 +143,14 @@
                                test_name, dataset,                      \
                                BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__) )  \
 /**/
-#define BOOST_DATA_TEST_CASE_NO_PARAMS( test_name, dataset, ... )       \
+#define BOOST_DATA_TEST_CASE_NO_PARAMS( test_name, dataset )            \
     BOOST_DATA_TEST_CASE_WITH_PARAMS( test_name, dataset, sample )      \
 /**/
 
-#define BOOST_DATA_TEST_CASE( test_name, dataset, ... )                 \
-    BOOST_PP_IIF(BOOST_TEST_PP_NON_EMPTY(__VA_ARGS__),                  \
-                 BOOST_DATA_TEST_CASE_WITH_PARAMS,                      \
-                 BOOST_DATA_TEST_CASE_NO_PARAMS )                       \
-        (test_name, dataset, __VA_ARGS__)                               \
+#define BOOST_DATA_TEST_CASE( ... )                                     \
+    BOOST_PP_IIF(BOOST_PP_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),2), \
+                 BOOST_DATA_TEST_CASE_NO_PARAMS,                        \
+                 BOOST_DATA_TEST_CASE_WITH_PARAMS)(__VA_ARGS__)         \
 /**/
 
 } // namespace data
Modified: trunk/boost/test/utils/named_params.hpp
==============================================================================
--- trunk/boost/test/utils/named_params.hpp	(original)
+++ trunk/boost/test/utils/named_params.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
@@ -24,6 +24,7 @@
 #include <boost/test/utils/assign_op.hpp>
 
 #include <boost/type_traits/remove_reference.hpp>
+#include <boost/type_traits/remove_cv.hpp>
 
 #include <boost/test/detail/suppress_warnings.hpp>
 
@@ -344,22 +345,18 @@
 struct param_type<nfp_detail::named_parameter_combine<NP,Rest>,Keyword,DefaultType> : param_type<Rest,Keyword,DefaultType> {
 };
 
-#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
-
 template<typename T, typename unique_id, typename ReferenceType,bool required,typename DefaultType>
 struct param_type<named_parameter<T,unique_id,ReferenceType>,keyword<unique_id,required>,DefaultType> {
-    typedef typename std::remove_cv<T>::type type;
+    typedef typename boost::remove_cv<T>::type type;
 };
 
 template<typename T, typename unique_id, typename ReferenceType,typename Rest,bool required,typename DefaultType>
 struct param_type<nfp_detail::named_parameter_combine<named_parameter<T,unique_id,ReferenceType>,Rest>,
                   keyword<unique_id,required>,
                   DefaultType> {
-    typedef typename std::remove_cv<T>::type type;
+    typedef typename boost::remove_cv<T>::type type;
 };
 
-#endif
-
 } // namespace nfp
 } // namespace boost
 
Deleted: trunk/boost/test/utils/pp_variadic.hpp
==============================================================================
--- trunk/boost/test/utils/pp_variadic.hpp	2012-11-01 18:30:51 EDT (Thu, 01 Nov 2012)
+++ (empty file)
@@ -1,53 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2012.
-//  Distributed under the Boost Software License, Version 1.0.
-//  (See accompanying file LICENSE_1_0.txt or copy at 
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 81012 $
-//
-//  Description : simple helpers for creating cusom output manipulators
-// ***************************************************************************
-
-#ifndef BOOST_TEST_PP_VARIADIC_HPP_102412GER
-#define BOOST_TEST_PP_VARIADIC_HPP_102412GER
-
-// Boost
-#include <boost/config.hpp>
-#include <boost/preprocessor/arithmetic/mul.hpp>
-#include <boost/preprocessor/arithmetic/sub.hpp>
-#include <boost/preprocessor/punctuation/comma.hpp>
-#include <boost/preprocessor/variadic/size.hpp>
-#include <boost/preprocessor/logical/bool.hpp>
-
-#include <boost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace boost {
-namespace unit_test {
-
-// ************************************************************************** //
-// **************          BOOST_TEST_PP_VARIADIC_SIZE         ************** //
-// ************************************************************************** //
-
-#define BOOST_TEST_PP_VARIADIC_SIZE(...) BOOST_PP_SUB( BOOST_PP_MUL( BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), 2 ),      \
-                                                       BOOST_PP_VARIADIC_SIZE( BOOST_PP_COMMA __VA_ARGS__ () ) )    \
-/**/
-
-// ************************************************************************** //
-// **************            BOOST_TEST_PP_NON_EMPTY           ************** //
-// ************************************************************************** //
-
-#define BOOST_TEST_PP_NON_EMPTY(...) BOOST_PP_BOOL(BOOST_TEST_PP_VARIADIC_SIZE(__VA_ARGS__))
-
-} // namespace unit_test
-} // namespace boost
-
-
-#include <boost/test/detail/enable_warnings.hpp>
-
-#endif // BOOST_TEST_PP_VARIADIC_HPP_102412GER