|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r69454 - in sandbox/assign_v2: boost/assign/v2/put/container/functor boost/assign/v2/put/frame boost/assign/v2/ref/list_tuple/cpp03 boost/assign/v2/ref/wrapper boost/assign/v2/utility boost/assign/v2/utility/chain boost/assign/v2/utility/convert boost/assign/v2/utility/csv libs/assign/v2/test libs/assign/v2/test/put libs/assign/v2/test/put/container libs/assign/v2/test/put/pipe libs/assign/v2/test/put/pipe/functor
From: erwann.rogard_at_[hidden]
Date: 2011-03-01 21:11:23
Author: e_r
Date: 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
New Revision: 69454
URL: http://svn.boost.org/trac/boost/changeset/69454
Log:
upd assign_v2
Text files modified:
sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp | 3 --
sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp | 22 ++++++++--------
sandbox/assign_v2/boost/assign/v2/put/frame/modifier.hpp | 20 +++++---------
sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp | 6 ++--
sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp | 2
sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp | 8 ++--
sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp | 16 +++++-----
sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp | 8 ++--
sandbox/assign_v2/boost/assign/v2/utility/chain/use_lvalue.hpp | 52 -------------------------------------
sandbox/assign_v2/boost/assign/v2/utility/convert.hpp | 3 ++
sandbox/assign_v2/boost/assign/v2/utility/convert/converter.hpp | 50 ++++++++++++++++++++++--------------
sandbox/assign_v2/boost/assign/v2/utility/convert/deduce.hpp | 54 ---------------------------------------
sandbox/assign_v2/boost/assign/v2/utility/convert/dispatch.hpp | 11 +++++--
sandbox/assign_v2/boost/assign/v2/utility/convert/tag.hpp | 29 --------------------
sandbox/assign_v2/boost/assign/v2/utility/csv/make.hpp | 5 ++
sandbox/assign_v2/libs/assign/v2/test/other.cpp | 24 +++++++++--------
sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp | 9 ++++++
sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp | 3 ++
sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp | 8 ++--
sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp | 12 +++++--
sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp | 2 +
sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp | 8 ++--
sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp | 16 +++++-----
sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp | 18 +++++++-----
sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/str_literal.cpp | 5 ++-
sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp | 3 -
sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp | 6 ++-
sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 15 ++++------
sandbox/assign_v2/libs/assign/v2/test/put/std.cpp | 3 -
29 files changed, 163 insertions(+), 258 deletions(-)
Modified: sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -22,9 +22,6 @@
template<typename C>
struct put
{
-// typedef v2::put_traits<C> traits_;
-// typedef typename traits_::functor_type f_;
-// typedef typename traits_::modifier_tag modifier_tag_;
typedef typename put_aux::deduce_fun<C>::type f_;
typedef typename put_aux::deduce_modifier_tag<C>::type modifier_tag_;
typedef put_aux::adapter<C, f_, modifier_tag_> type;
Modified: sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -101,19 +101,14 @@
explicit crtp( F const& f, modifier_ const& m )
: fun_holder_( f ), modifier_holder_( m ){}
- result_type operator()()const
- {
- return this->modify( this->fun() );
- }
-
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
- //[crtp_functor
+ //[frame_crtp_functor
template<typename...Args>
result_type operator()( Args&&...args )const
{
- return this->modify(
- this->fun( std::forward<Args>(args)... )
+ return this->modify(
+ /*<< Instance of F >>*/ this->fun( std::forward<Args>(args)... )
);
}
//]
@@ -128,6 +123,11 @@
public:
using super_t::operator();
+ result_type operator()()const
+ {
+ return this->modify( this->fun() );
+ }
+
#define BOOST_ASSIGN_V2_MACRO(z, N, data) \
template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
result_type \
@@ -199,13 +199,13 @@
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
- //[crtp_modify
+ //[frame_crtp_modify
template<typename T>
result_type modify(T&& t)const
{
check_modifier( t );
- this->modifier.impl(
- this->derived().container(),
+ /*<< Instance of put_aux::modifier<Tag> >>*/this->modifier.impl(
+ /*<< Reference to C >>*/this->derived().container(),
std::forward<T>( t )
);
return this->derived();
Modified: sandbox/assign_v2/boost/assign/v2/put/frame/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/frame/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/frame/modifier.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -14,23 +14,17 @@
namespace boost{
namespace assign{
namespace v2{
-namespace modifier_tag{
- // add as necessary
-}
+//[frame_modifier
+namespace /*<< Template arguments to put_aux::modifier<> are declared within >>*/modifier_tag{}
namespace put_aux{
template<typename Tag>
- struct modifier{
- /* Specialize on Tag:
- template<typename V, typename T>
- void impl(V& v, T& t)const; */
- };
+ struct /*<< Specialize on Tag >>*/ modifier{};
-}// put_aux
+}
namespace put_concept{
- //[concept_modifier
- template<typename Tag, typename C, typename T>
+ template<typename Tag, /*<< Container >>*/ typename C, /*<< Input >>*/ typename T>
struct Modifier
{
@@ -44,9 +38,9 @@
static C& cont;
static T t;
};
- //]
-}// put_concept
+}
+//]
}// v2
}// assign
}// boost
Modified: sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -122,12 +122,12 @@
params_default(typename T, na_type)>
struct traits
{
- typedef list_tuple_aux::container<N, L, params(T)> cont_;
+ typedef list_tuple_aux::container<N, L, params(T)> C;
typedef typename list_tuple_aux::tuple<params(T)>::type tuple_;
- typedef list_tuple_aux::extraction<N, L, tuple_, cont_> extraction_;
+ typedef list_tuple_aux::extraction<N, L, tuple_, C> extraction_;
typedef list_tuple_aux::meta_result<N, L, params(T)> meta_result_;
typedef functor_aux::crtp_unary_and_up<
- cont_,
+ C,
boost::mpl::unpack_args<meta_result_>
> crtp_;
typedef typename ::boost::mpl::eval_if_c<
Modified: sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -34,7 +34,7 @@
is_const = boost::is_const<T>::value
);
- wrapper(){}
+ wrapper(){/*TODO or null pointer?*/}
explicit wrapper( T& r ) : ref_(&r)
{ }
Modified: sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -44,8 +44,8 @@
>
{
- typedef typename boost::remove_const<T>::type lvalue_;
- typedef typename boost::add_const<T>::type rvalue_;
+ typedef typename boost::remove_const<T>::type non_const;
+ typedef typename boost::add_const<T>::type const_;
public:
// protected
@@ -55,8 +55,8 @@
public:
- void operator=(lvalue_& t ){ this->derived().assign( t ); }
- void operator=(rvalue_& t ){ this->derived().assign( t ); }
+ void operator=(non_const& t ){ this->derived().assign( t ); }
+ void operator=(const_& t ){ this->derived().assign( t ); }
void swap( wrapper_crtp& that )
{
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -22,7 +22,7 @@
#include <boost/assign/v2/detail/config/check.hpp>
#include <boost/assign/v2/ref/wrapper/range_get.hpp>
#include <boost/assign/v2/ref/wrapper/copy.hpp>
-#include <boost/assign/v2/utility/chain/use_lvalue.hpp>
+#include <boost/assign/v2/utility/chain/use_const.hpp>
#include <boost/assign/v2/utility/chain/pipe.hpp>
namespace boost{
@@ -31,10 +31,10 @@
namespace check_chain_aux{
template<typename cr1_, typename cr2_, bool the_value>
-void verify_use_lvalue()
+void verify_dont_use_const()
{
- typedef v2::chain_aux::use_lvalue<cr1_, cr2_> use_lvalue_;
- BOOST_STATIC_ASSERT( use_lvalue_::value == the_value );
+ typedef v2::chain_aux::dont_use_const<cr1_, cr2_> dont_use_const_;
+ BOOST_STATIC_ASSERT( dont_use_const_::value == the_value );
typedef typename ::boost::mpl::eval_if_c<
the_value,
::boost::mpl::identity<boost::mpl::void_>, // why?
@@ -68,14 +68,14 @@
{
typedef r1_ cr1_;
typedef r2_ cr2_;
- verify_use_lvalue<cr1_, cr2_, the_value>();
- verify_use_lvalue<cr2_, cr1_, the_value>();
+ verify_dont_use_const<cr1_, cr2_, the_value>();
+ verify_dont_use_const<cr2_, cr1_, the_value>();
}
{
typedef r1_ cr1_;
typedef r2_ const cr2_;
- verify_use_lvalue<cr1_, cr2_, the_value>();
- verify_use_lvalue<cr2_, cr1_, the_value>();
+ verify_dont_use_const<cr1_, cr2_, the_value>();
+ verify_dont_use_const<cr2_, cr1_, the_value>();
}
}
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -11,7 +11,7 @@
#define BOOST_ASSIGN_V2_CHAIN_RESULT_ER_2010_HPP
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/identity.hpp>
-#include <boost/assign/v2/utility/chain/use_lvalue.hpp>
+#include <boost/assign/v2/utility/chain/use_const.hpp>
#include <boost/assign/v2/utility/chain/range.hpp>
namespace boost{
@@ -22,9 +22,9 @@
template<typename R1,typename R2,typename Tag = use_default>
struct result{
typedef typename ::boost::mpl::eval_if<
- chain_aux::use_lvalue<R1,R2,Tag>,
- boost::mpl::identity< chain_aux::range_l<R1, R2, Tag> >,
- boost::mpl::identity< chain_aux::range_r<R1, R2, Tag> >
+ chain_aux::use_const<R1, R2, Tag>,
+ ::boost::mpl::identity< chain_aux::range_r<R1, R2, Tag> >,
+ ::boost::mpl::identity< chain_aux::range_l<R1, R2, Tag> >
>::type caller_;
typedef typename caller_::type type;
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/use_lvalue.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/use_lvalue.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/use_lvalue.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -1,51 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to 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) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_USE_LVALUE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_USE_LVALUE_ER_2010_HPP
-#include <boost/config.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/range/reference.hpp>
-
-namespace boost{
- struct use_default;
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
- template<typename U1, typename U2,
- bool is_r = boost::is_reference<U1>::value,
- bool is_c = boost::is_const<
- typename boost::remove_reference<U1>::type
- >::value
- >
- struct use_lvalue_impl : ::boost::mpl::false_{};
-
- template<typename U>
- struct use_lvalue_impl<U, U, true, false> : ::boost::mpl::true_{};
-
- template<typename R1, typename R2, typename Tag = use_default>
- struct use_lvalue : use_lvalue_impl<
- typename boost::range_reference<R1>::type,
- typename boost::range_reference<R2>::type
- >{};
-
-}// chain_aux
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/utility/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/convert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/convert.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -10,6 +10,9 @@
#ifndef BOOST_ASSIGN_V2_UTILITY_CONVERT_ER_2010_HPP
#define BOOST_ASSIGN_V2_UTILITY_CONVERT_ER_2010_HPP
+#include <boost/assign/v2/utility/convert/deduce_tag.hpp>
+#include <boost/assign/v2/utility/convert/dispatch.hpp>
+#include <boost/assign/v2/utility/convert/predicate.hpp>
#include <boost/assign/v2/utility/convert/converter.hpp>
#endif
Modified: sandbox/assign_v2/boost/assign/v2/utility/convert/converter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/convert/converter.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/convert/converter.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -11,38 +11,40 @@
#define BOOST_ASSIGN_V2_CONVERT_CONVERTER_ER_2010_HPP
#include <boost/range/begin.hpp>
#include <boost/range/end.hpp>
+#include <boost/type_traits/add_const.hpp>
#include <boost/assign/v2/ref/wrapper.hpp>
#include <boost/assign/v2/utility/convert/dispatch.hpp>
-#include <boost/assign/v2/utility/convert/deduce.hpp>
+#include <boost/assign/v2/utility/convert/deduce_tag.hpp>
namespace boost{
namespace assign{
namespace v2{
namespace convert_aux{
- template<typename U>
- class converter
+ template<typename R>
+ class adapter
{
+ typedef typename boost::add_const<R>::type const_;
+
typedef typename ref::copy_wrapper<
- U const
+ const_
>::type wrapper_;
public:
- explicit converter(U const& u) : w( u ){}
+ explicit adapter(const_& r) : w( r ){}
- template<typename T>
- operator T () const
+ template<typename C>
+ operator C () const
{
- return this->type<T>();
+ return this->type<C>();
}
- template<typename T>
- T type()const
+ template<typename C>
+ C type()const
{
- typedef typename convert_aux::deduce_tag<T, U>::type tag_;
- return convert_aux::dispatch<T>( this->w.get(), tag_() );
+ return convert_aux::dispatch<C>( this->w.get() );
}
private:
@@ -51,12 +53,22 @@
};
}// convert_aux
+namespace result_of{
+
+ template<typename R>
+ struct converter
+ {
+ typedef convert_aux::adapter<R> type;
+ };
+
+}//result_of
+
- template<typename U>
- convert_aux::converter<U>
- converter(U const& u){
- typedef convert_aux::converter<U> result_;
- return result_( u );
+ template<typename R>
+ typename result_of::converter<R>::type
+ converter(R const& r){
+ typedef typename result_of::converter<R>::type result_;
+ return result_( r );
}
}// v2
@@ -96,10 +108,10 @@
Seq\
)\
)>\
- ::boost::assign::v2::convert_aux::converter< U > \
+ typename ::boost::assign::v2::result_of::converter< U >::type \
converter( U const& cont)\
{\
- typedef convert_aux::converter< U > result_; \
+ typedef typename ::boost::assign::v2::result_of::converter< U >::type result_; \
return result_( cont );\
}\
/**/
Modified: sandbox/assign_v2/boost/assign/v2/utility/convert/deduce.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/convert/deduce.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/convert/deduce.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -1,53 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to 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) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CONVERT_DEDUCE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CONVERT_DEDUCE_ER_2010_HPP
-#include <boost/mpl/pair.hpp>
-#include <boost/assign/v2/detail/traits/switch.hpp>
-#include <boost/assign/v2/utility/convert/tag.hpp>
-#include <boost/assign/v2/utility/convert/helper.hpp>
-#include <boost/assign/v2/utility/convert/predicate.hpp>
-
-namespace boost{
- struct use_default;
-namespace assign{
-namespace v2{
-namespace switch_tag{
- struct deduce_convert{};
-}// switch_tag
-namespace switch_aux{
-
- template<>
- struct case_<switch_tag::deduce_convert, 0> :
- convert_aux::helper<
- v2::convert_tag::put,
- v2::convert_aux::use_put
- >{};
-
- template<>
- struct case_<switch_tag::deduce_convert, 1> :
- convert_aux::helper<v2::convert_tag::copy>{};
-
-}// switch_aux
-namespace convert_aux{
-
- template<typename C, typename R>
- struct deduce_tag : v2::switch_aux::result<
- v2::switch_tag::deduce_convert,
- boost::mpl::pair<C, R>
- >
- {};
-
-}// convert_aux
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/assign_v2/boost/assign/v2/utility/convert/dispatch.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/convert/dispatch.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/convert/dispatch.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -12,10 +12,8 @@
#include <boost/range/begin.hpp>
#include <boost/range/end.hpp>
#include <boost/detail/workaround.hpp>
-
#include <boost/assign/v2/put/pipe/range.hpp>
-
-#include <boost/assign/v2/utility/convert/tag.hpp>
+#include <boost/assign/v2/utility/convert/deduce_tag.hpp>
namespace boost{
namespace assign{
@@ -37,6 +35,13 @@
return C( boost::begin( r ), boost::end( r ) );
}
+ template<typename C, typename R>
+ C dispatch(R const& r)
+ {
+ typedef typename convert_aux::deduce_tag<C, R>::type tag_;
+ return convert_aux::dispatch<C>( r, tag_() );
+ }
+
}// convert_aux
//]
}// v2
Modified: sandbox/assign_v2/boost/assign/v2/utility/convert/tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/convert/tag.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/convert/tag.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -1,28 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to 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) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CONVERT_TAG_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CONVERT_TAG_ER_2010_HPP
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[convert_tag
-namespace convert_tag{
-
- struct put{};
- struct copy{};
-
-}// convert_tag
-//]
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/utility/csv/make.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/csv/make.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/utility/csv/make.hpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -15,6 +15,7 @@
#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
#include <utility>
+#include <boost/assign/v2/temporary/variadic_vector.hpp>
#else
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/repetition.hpp>
@@ -27,6 +28,8 @@
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+ // TODO
+
template<typename F, typename T>
typename result_of::csv<F const&,
::boost::mpl::vector<T>
@@ -38,7 +41,7 @@
template<typename F, typename T, typename Args>
typename result_of::csv<F const&,
- ::boost::mpl::vector<T, Args...>
+ typename ::boost::mpl::detail::variadic_vector<T, Args...>::type
>::type
csv( F const& functor, T&& t, Args&&... args )
{
Modified: sandbox/assign_v2/libs/assign/v2/test/other.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/other.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/other.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -75,10 +75,11 @@
{
//[other_convert_ref_array
typedef std::pair<std::string, int> T;
- typedef std::vector<T> cont_;
- cont_ cont = converter( // name lookup
+ typedef std::vector<T> C;
+ C cont = converter( // name lookup
as2::ref::array( T("jan", 31) )( T("feb", 28) )( T("mar", 31) )
);
+
BOOST_ASSIGN_V2_CHECK( cont[1].first == "feb" );
BOOST_ASSIGN_V2_CHECK( cont[1].second == 28 );
//]
@@ -99,6 +100,7 @@
cont && (/*<< rvalue >>*/ as2::ref::csv_array( z ) | as2::ref::_get )
)
);
+
BOOST_ASSIGN_V2_CHECK( cont[0] == r[0] );
BOOST_ASSIGN_V2_CHECK( cont[1] == r[1] );
BOOST_ASSIGN_V2_CHECK( z == r[2] );
@@ -108,9 +110,9 @@
// container.hpp
{
//[other_csv_put
- typedef int T; T x = 1, y = 2, z = 0;
- std::list<T> cont;
+ typedef int T; T x = 1, y = 2, z = 0; std::list<T> cont;
as2::csv( as2::put( cont ) , x, y, z );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
@@ -119,16 +121,16 @@
// modulo.hpp
{
//[other_put_modulo
- typedef int T; T x = 1, y = 2, z = 0;
- std::list<T> cont;
+ typedef int T; std::list<T> cont;
as2::csv(
- /*<< Might be more efficient than as2::put( cont ) >>*/as2::put( cont ) % ( as2::_fun = as2::_identity ),
- x, y, z
+ as2::put( cont ) % ( as2::_fun = as2::_identity ),
+ 1, 2, 0
);
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+
+ BOOST_ASSIGN_V2_CHECK( cont.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( cont.back() == 0 );
//]
- BOOST_ASSIGN_V2_CHECK( *boost::next( boost::begin( cont ) ) == y );
+ BOOST_ASSIGN_V2_CHECK( *boost::next( boost::begin( cont ) ) == 2 );
}
}
Modified: sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -43,6 +43,7 @@
//[put_cont_functor_map
typedef std::map<std::string, int> C; C cont;
as2::put( cont )( "jan", 31 )( "feb", 28 )( "mar", 31 );
+
BOOST_ASSIGN_V2_CHECK( cont["feb"] == 28 );
//]
BOOST_ASSIGN_V2_CHECK( cont["jan"] == 31 );
@@ -54,6 +55,7 @@
typedef std::map<std::string, int> C; C cal;
/*<< Calls `cal.insert( C::value_type(x, y) )` for [^(x,y)=( "jan", 31 ),( "feb", 28 ),( "mar", 31 )] >>*/
as2::put( cal )( "jan", 31 )( "feb", 28 )( "mar", 31 );
+
BOOST_ASSIGN_V2_CHECK( cal["feb"] == 28 );
//]
}
@@ -63,6 +65,7 @@
std::set<T> cont;
T x = "isomer", y = "ephemeral", z = "prosaic";
as2::put( cont )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( cont.count( x ) == 1 );
BOOST_ASSIGN_V2_CHECK( cont.count( z ) == 1 );
//]
@@ -71,6 +74,7 @@
//[put_cont_functor_deque
typedef int T; T x = 1, y = 2, z = 0;
std::deque<T> cont; as2::put( cont )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
@@ -79,6 +83,7 @@
//[put_cont_functor_list
typedef int T; T x = 1, y = 2, z = 0;
std::list<T> cont; ( as2::put( cont ) )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
@@ -87,6 +92,7 @@
//[put_cont_functor_vector
typedef int T; T x = 1, y = 2, z = 0;
std::vector<T> cont; as2::put( cont )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
@@ -95,6 +101,7 @@
//[put_cont_functor_queue
typedef int T; T x = 8, y = 7, z = 4;
std::queue<T> fifo; as2::put( fifo )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( fifo.front() == x );
BOOST_ASSIGN_V2_CHECK( fifo.back() == z );
//]
@@ -103,6 +110,7 @@
//[put_cont_functor_stack
typedef int T; T x = 8, y = 7, z = 4;
std::stack<T> lifo; as2::put( lifo )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( lifo.top() == z ); lifo.pop();
BOOST_ASSIGN_V2_CHECK( lifo.top() == y ); lifo.pop();
BOOST_ASSIGN_V2_CHECK( lifo.top() == x ); lifo.pop();
@@ -115,6 +123,7 @@
typedef boost::tuple</*<< Notice this is a reference >>*/ d_&, i_> T;
d_ w = 2.7, x = 2.71, y = 2.718, z = 0.0; std::vector<T> cont;
as2::put( cont )/*<< Notice the binary calls >>*/( w, 1 )( x, 2 )( y, 3 )/*<< Notice the unary call >>*/( z );
+
BOOST_ASSIGN_V2_CHECK( &get<0>( cont[1] ) == &x );
BOOST_ASSIGN_V2_CHECK( get<1>( cont[1] ) == 2 );
T t3( z );
Modified: sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -32,6 +32,7 @@
typedef int T; T x = 1, y = 2, z = 0;
std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
boost::array<T, 3> cont; as2::put_range( cont, r );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
@@ -41,6 +42,7 @@
typedef int T; T x = 1, y = 2, z = 0;
std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
typedef std::stack<T> lifo_;
+
BOOST_ASSIGN_V2_CHECK( as2::put_range<lifo_>( r ).top() == z );
//]
}
@@ -49,6 +51,7 @@
typedef int T; T x = 1, y = 2, z = 0;
std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
std::deque<T> cont; as2::put_range( cont, r );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
Modified: sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -60,11 +60,11 @@
as2::put_aux::check_deduce<std::map<str_, int>, answer_>();
}
{
- //[deduce_map
- typedef std::map<std::string, int> cont_;
- typedef as2::put_aux::deduce_modifier_tag<cont_>::type found_;
+ //[put_deduce_map
+ typedef std::map<std::string, int> C;
+ typedef as2::put_aux::deduce_modifier_tag<C>::type found_;
typedef as2::modifier_tag::insert answer_;
- BOOST_MPL_ASSERT((boost::is_same<found_, answer_>));
+ BOOST_MPL_ASSERT(( boost::is_same<found_, answer_> ));
//]
}
}
Modified: sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -27,10 +27,12 @@
namespace lambda = boost::lambda;
{
//[put_ext_iterate
- boost::array<int, 3> cont;
- ( as2::put( cont ) % as2::_iterate )( 1 )( 2 )( 3 );
- BOOST_ASSIGN_V2_CHECK( cont[0] == 1 );
- BOOST_ASSIGN_V2_CHECK( cont[2] == 3 );
+ typedef int T; boost::array<T, 3> cont;
+ ( as2::put( cont ) % ( as2::_iterate = 1 ) )( 1 )( 2 );
+
+ BOOST_ASSIGN_V2_CHECK( cont[0] == T() );
+ BOOST_ASSIGN_V2_CHECK( cont[1] == 1 );
+ BOOST_ASSIGN_V2_CHECK( cont[2] == 2 );
//]
}
{
@@ -40,6 +42,7 @@
(
as2::put( cont ) % ( as2::_lookup = ( lambda::_1 -= 1 ) )
)( "feb" )( "mar" );
+
BOOST_ASSIGN_V2_CHECK( cont["feb"] == 28 );
BOOST_ASSIGN_V2_CHECK( cont["mar"] == 31 );
//]
@@ -48,6 +51,7 @@
//[put_ext_repeat
std::vector<int> cont;
( as2::put( cont ) % ( as2::_repeat = 2 ) )( -1 )( 0 )( 1 );
+
BOOST_ASSIGN_V2_CHECK( cont.size() == 6 );
BOOST_ASSIGN_V2_CHECK( cont.front() == -1 );
BOOST_ASSIGN_V2_CHECK( cont.back() == 1 );
Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -31,6 +31,7 @@
(
as2::put( cont ) % ( as2::_fun = ( lambda::_1 + 1 ) )
)( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == ( x + 1 ) );
BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
//]
@@ -41,6 +42,7 @@
std::deque<int> cont;
( as2::put( cont ) % ( as2::_modifier
= as2::modifier_tag::push_front() ) )( x )( y )( z );
+
BOOST_ASSIGN_V2_CHECK( cont.front() == z );
BOOST_ASSIGN_V2_CHECK( cont.back() == x );
//]
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -29,8 +29,8 @@
{
typedef int T;
T x = 1, y = 2, z = 0;
- typedef std::vector<T> cont_; cont_ cont;
- typedef as2::result_of::put<cont_>::type adapter_;
+ typedef std::vector<T> C; C cont;
+ typedef as2::result_of::put<C>::type adapter_;
adapter_ adapter = as2::put( cont );
ppx::forward( adapter, as2::ref::list_tuple( x )( y )( z )() );
BOOST_ASSIGN_V2_CHECK( cont[0] == x );
@@ -40,8 +40,8 @@
}
{
typedef const char* T;
- typedef std::deque<T> cont_; cont_ cont;
- typedef as2::result_of::put<cont_>::type adapter_;
+ typedef std::deque<T> C; C cont;
+ typedef as2::result_of::put<C>::type adapter_;
adapter_ adapter = as2::put( cont );
ppx::forward( adapter, as2::ref::list_tuple( "x" ) );
typedef std::string str_;
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -27,19 +27,19 @@
namespace lambda = boost::lambda;
{
//[put_pipe_functor_fun
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<int> cont;
- cont | (
- as2::_put % ( as2::_fun = ( lambda::_1 + 1 ) )
- )( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == ( x + 1 ) );
+ typedef int T; T x = 1, y = 2, z = 0; std::vector<T> cont;
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ cont | (
+ as2::_put % ( as2::_fun = ( lambda::_1 + 1 ) )
+ )( x )( y )( z )
+ ).front() == ( x + 1 ) );
BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
//]
}
{
//[put_pipe_csv_fun
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<int> cont;
+ typedef int T; T x = 1, y = 2, z = 0; std::vector<T> cont;
BOOST_ASSIGN_V2_CHECK(
(
cont | ( as2::_csv_put % ( as2::_fun = ( lambda::_1 + 1 ) )
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -27,19 +27,21 @@
namespace lambda = boost::lambda;
{
//[put_pipe_functor_push_front
- typedef int T; T x = 1, y = 2, z = 0;
- std::deque<int> cont;
- cont | ( as2::_put % as2::_push_front )( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == z );
+ typedef int T; T x = 1, y = 2, z = 0; std::deque<int> cont;
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ cont | ( as2::_put % as2::_push_front )( x )( y )( z )
+ ).front() == z
+ );
BOOST_ASSIGN_V2_CHECK( cont.back() == x );
//]
}
{
//[put_pipe_csv_push_front
- typedef int T; T x = 1, y = 2, z = 0;
- std::deque<int> cont;
- cont | ( as2::_csv_put % as2::_push_front )( x, y, z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == z );
+ typedef int T; T x = 1, y = 2, z = 0; std::deque<int> cont;
+ BOOST_ASSIGN_V2_CHECK(
+ ( cont | ( as2::_csv_put % as2::_push_front )( x, y, z )
+ ).front() == z );
BOOST_ASSIGN_V2_CHECK( cont.back() == x );
//]
}
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/str_literal.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/str_literal.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/str_literal.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -25,8 +25,9 @@
namespace as2 = boost::assign::v2;
typedef const char* T;
std::deque<T> cont; typedef std::string str_;
- cont | as2::_put( "x" )( "y" )( "z" );
- BOOST_ASSIGN_V2_CHECK( str_( cont[0] ) == "x" );
+ BOOST_ASSIGN_V2_CHECK( str_(
+ ( cont | as2::_put( "x" )( "y" )( "z" ) )[0]
+ ) == "x" );
BOOST_ASSIGN_V2_CHECK( str_( cont[1] ) == "y" );
BOOST_ASSIGN_V2_CHECK( str_( cont[2] ) == "z" );
}
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -28,8 +28,7 @@
void test()
{
using namespace boost::assign::v2;
- typedef std::list<int> cont_;
- cont_ cont;
+ typedef std::list<int> C; C cont;
typedef modifier_tag::push_front modifier_tag_;
typedef functor_aux::identity identity_;
typedef put_modulo_aux::fun<identity_> fun_;
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -31,8 +31,10 @@
//[put_pipe_range_array
typedef int T; T x = 1, y = 2, z = 0;
std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- boost::array<T, 3> cont; cont | as2::_put_range( r );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
+ boost::array<T, 3> cont;
+ BOOST_ASSIGN_V2_CHECK( (
+ cont | as2::_put_range( r )
+ ).front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
}
Modified: sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -28,8 +28,8 @@
{
//[put_ptr_array
typedef int T;
- T x = 1, y = 2, z = 3;
- boost::ptr_array<T, 3> cont; as2::put( cont )( x )( y )( z );
+ T x = 1, y = 2, z = 3; boost::ptr_array<T, 3> cont;
+ as2::put( cont )( x )( y )( z );
BOOST_ASSIGN_V2_CHECK( cont[0] == x );
BOOST_ASSIGN_V2_CHECK( cont[2] == z );
//]
@@ -57,8 +57,7 @@
*/
{
//[put_ptr_deque
- typedef int T; T x = 1, y = 2, z = 0;
- boost::ptr_deque<T> cont;
+ typedef int T; T x = 1, y = 2, z = 0; boost::ptr_deque<T> cont;
as2::put( cont )( x )( y )( z );
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
@@ -66,17 +65,15 @@
}
{
//[put_ptr_list
- typedef int T; T x = 1, y = 2, z = 0;
- boost::ptr_list<T> cont;
- ( as2::put( cont ) )( x )( y )( z );
+ typedef int T; T x = 1, y = 2, z = 0; boost::ptr_list<T> cont;
+ as2::put( cont )( x )( y )( z );
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
}
{
//[put_ptr_vector
- typedef int T; T x = 1, y = 2, z = 0;
- boost::ptr_vector<T> cont;
+ typedef int T; T x = 1, y = 2, z = 0; boost::ptr_vector<T> cont;
as2::put( cont )( x )( y )( z );
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
Modified: sandbox/assign_v2/libs/assign/v2/test/put/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/std.cpp 2011-03-01 21:11:02 EST (Tue, 01 Mar 2011)
@@ -26,8 +26,7 @@
{
//[put_std_push_front
- typedef int T; T x = 0, y = 2, z = 1;
- std::deque<T> cont;
+ typedef int T; T x = 0, y = 2, z = 1; std::deque<T> cont;
( as2::put( cont ) % as2::_push_front )( x )( y )( z );
BOOST_ASSIGN_V2_CHECK( cont[0] == z );
BOOST_ASSIGN_V2_CHECK( cont[2] == x );
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