Boost logo

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