Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70716 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/conversion boost/assign/v2/detail/traits boost/assign/v2/detail/traits/aux_ boost/assign/v2/option boost/assign/v2/option/modifier boost/assign/v2/pipe libs/assign/v2 libs/assign/v2/src libs/assign/v2/test libs/assign/v2/test/detail libs/assign/v2/test/option libs/assign/v2/test/pipe libs/assign/v2/test/pipe/option libs/assign/v2/test/put libs/assign/v2/test/unit_testing
From: erwann.rogard_at_[hidden]
Date: 2011-03-29 17:36:42


Author: e_r
Date: 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
New Revision: 70716
URL: http://svn.boost.org/trac/boost/changeset/70716

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/conversion/check.hpp | 1
   sandbox/assign_v2/boost/assign/v2/conversion/deduce_tag.hpp | 2
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp | 2
   sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp | 6 +
   sandbox/assign_v2/boost/assign/v2/option.hpp | 1
   sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp | 2
   sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp | 54 ++++------
   sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp | 4
   sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp | 8 +
   sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp | 198 +++++++++++++++++++--------------------
   sandbox/assign_v2/boost/assign/v2/put.hpp | 43 +++++++-
   sandbox/assign_v2/libs/assign/v2/src/main.cpp | 20 ++--
   sandbox/assign_v2/libs/assign/v2/test/detail/functor.cpp | 42 ++++----
   sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp | 4
   sandbox/assign_v2/libs/assign/v2/test/option.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/option/data.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp | 12 -
   sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp | 8 -
   sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp | 17 +--
   sandbox/assign_v2/libs/assign/v2/test/pipe/csv_put.cpp | 49 ++++++++-
   sandbox/assign_v2/libs/assign/v2/test/pipe/option/data.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/pipe/option/mapped.cpp | 72 +++++++++++--
   sandbox/assign_v2/libs/assign/v2/test/pipe/option/std_modifier.cpp | 8 -
   sandbox/assign_v2/libs/assign/v2/test/put.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 3
   sandbox/assign_v2/libs/assign/v2/test/unit_testing/option.cpp | 2
   sandbox/assign_v2/libs/assign/v2/tutorial.cpp | 7
   27 files changed, 334 insertions(+), 239 deletions(-)

Modified: sandbox/assign_v2/boost/assign/v2/conversion/check.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/check.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/check.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -19,7 +19,6 @@
 #include <boost/array.hpp>
 #include <boost/assign/v2/conversion/converter.hpp>
 #include <boost/assign/v2/conversion/deduce_tag.hpp>
-#include <boost/assign/v2/conversion/predicate.hpp>
 #include <boost/assign/v2/detail/check/fwd_equal_container.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/type.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/conversion/deduce_tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/deduce_tag.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/deduce_tag.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -11,8 +11,6 @@
 #define BOOST_ASSIGN_V2_CONVERSION_DEDUCE_TAG_ER_2010_HPP
 #include <boost/assign/v2/detail/traits/switch.hpp>
 #include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/conversion/helper.hpp>
-#include <boost/assign/v2/conversion/predicate.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/or.hpp>
 #include <boost/mpl/pair.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -91,7 +91,7 @@
 )
 BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORIES(
     (typename K)(typename M)(typename H)(typename P)(typename A),
- (is_associative),
+ (is_associative)(is_map),
     boost::unordered_map, (K)(M)(H)(P)(A)
 )
 BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORIES(

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -93,6 +93,12 @@
         {};
 
 }// container_aux
+
+ template<typename C>
+ struct value_container_value/*<-*/
+ : container_aux::value<C>{}
+ /*->*/;
+
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/option.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -10,6 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_OPTION_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_ER_2010_HPP
 #include <boost/assign/v2/option/data_generator.hpp>
+#include <boost/assign/v2/option/list.hpp>
 #include <boost/assign/v2/option/modifier.hpp>
 
 #endif // BOOST_ASSIGN_V2_OPTION_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -9,9 +9,11 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_ER_2010_HPP
+#include <boost/assign/v2/detail/functor/value.hpp>
 #include <boost/assign/v2/detail/keyword/key.hpp>
 #include <boost/assign/v2/detail/keyword/ignore.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
+#include <boost/assign/v2/interpreter/data_generator.hpp>
 #include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/interpreter/replace.hpp>
 #include <boost/mpl/apply.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -64,47 +64,31 @@
 
 namespace result_of{
         
- template<typename D>
- struct option_modifier{
-
-//<-
- typedef interpreter_aux::replace_modifier_tag<D> meta_;
-//->
-
- template<typename Keyword, typename Arg>
- struct apply
-//<-
- : ::boost::mpl::apply1<
- meta_,
- typename ::boost::mpl::apply1<
- interpreter_aux::meta_modifier_tag<Keyword, Arg>,
- D
- >::type
- >
-//->
- {};
-
- };
+ template<typename D,typename Keyword, typename Arg>
+ struct option_modifier /*<-*/ : ::boost::mpl::apply1<
+ replace_modifier_tag<D>,
+ typename ::boost::mpl::apply1<
+ interpreter_aux::meta_modifier_tag<Keyword, Arg>,
+ D
+ >::type
+ >
+ {}/*->*/;
             
 }// result_of
 
     template<typename C, typename F, typename ModifierTag, typename DataTag, typename D,
         typename Keyword, typename Arg>
- typename ::boost::mpl::apply2<
- result_of::option_modifier<D>, Keyword, Arg
- >::type
+ typename result_of::option_modifier<D, Keyword, Arg>::type
     operator%(
         interpreter_crtp<C, F, ModifierTag, DataTag, D> const& lhs,
         option_modifier<Keyword, Arg> const& rhs
     )/*<-*/
     {
- typedef interpreter_aux::meta_modifier_tag<Keyword, Arg> meta_;
+ typedef interpreter_aux::meta_modifier_tag<Keyword, Arg> meta_;
         typedef typename ::boost::mpl::apply1<meta_, D>::type modifier_tag;
         typedef interpreter_aux::interpreter_modifier<modifier_tag> modifier_;
-
- typedef typename ::boost::mpl::apply2<
- result_of::option_modifier<D>,
- Keyword, Arg
+ typedef typename result_of::option_modifier<
+ D, Keyword, Arg
>::type result_;
     
         return result_(
@@ -122,9 +106,9 @@
 //]
 namespace result_of{
 
- template<typename D>
+ template<typename D, typename Keyword, typename Arg>
     struct option_modifier
- : interpreter_aux::result_of::option_modifier<D>
+ : interpreter_aux::result_of::option_modifier<D, Keyword, Arg>
     {};
 
 }// result_of
@@ -142,6 +126,14 @@
         struct apply{ typedef Result type; };\
     };\
 }\
+namespace result_of{\
+\
+ template<typename D, typename Arg>\
+ struct BOOST_PP_CAT(option_, NAME)\
+ : result_of::option_modifier<D, interpreter_aux::BOOST_PP_CAT(keyword_,NAME), Arg>\
+ {};\
+\
+}\
 /**/
 #endif
 

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -51,7 +51,7 @@
 
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
         template<typename C, typename T>
- void impl(C& cont, T&& key, data_tag::storage_value )const
+ void impl(C& cont, T&& key, data_tag::storage )const
         {
             cont[ key ] = (*this->ptr)( cont[ std::forward<T>( key ) ] );
         }
@@ -59,7 +59,7 @@
 #else
 
         template<typename C, typename T>
- void impl(C& cont, T& key, data_tag::storage_value )const{
+ void impl(C& cont, T& key, data_tag::storage )const{
             cont[ key ] = (*this->ptr)( cont[ key ] );
         }
 

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -101,6 +101,14 @@
     );\
 \
 }\
+namespace result_of{\
+\
+ template<typename D>\
+ struct BOOST_PP_CAT(option_, FUN)\
+ : result_of::option_std_modifier<D, modifier_tag::FUN>\
+ {};\
+\
+}\
 }\
 }\
 }\

Modified: sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -10,11 +10,10 @@
 #ifndef BOOST_ASSIGN_V2_PIPE_CSV_PUT_HPP_ER_2010
 #define BOOST_ASSIGN_V2_PIPE_CSV_PUT_HPP_ER_2010
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/pipe/option_traits.hpp>
 #include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/option/list.hpp>
 #include <boost/assign/v2/ref/array/as_arg_list.hpp>
 #include <boost/assign/v2/ref/array/csv_array.hpp>
-#include <boost/assign/v2/ref/aux_/list/as_modulo_list.hpp>
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/vector/vector0.hpp>
@@ -36,25 +35,19 @@
 
     typedef ref::array_aux::size_type arg_list_size_type;
 
- template<typename OptionList, arg_list_size_type N, typename U>
- struct arg_list/*<-*/
+ template<typename H, typename Tail, arg_list_size_type N, typename U>
+ struct arg_list : list_option<H, Tail>/*<-*/
     {
- typedef boost::use_default tag2_;
- typedef option_traits<OptionList> option_traits_;
- typedef typename option_traits_::cont_ option_list_cont_type;
+ typedef list_option<H, Tail> list_option_;
         typedef typename v2::ref::nth_result_of::csv_array<
- N,
- U
+ N, U
>::type arg_list_cont_type; //notice it's arg, not args
 
         arg_list(){}
- arg_list(option_list_cont_type const& a, arg_list_cont_type const& b)
- : option_list_cont_( a ), arg_list_cont_( b ){}
-
- option_list_cont_type const& option_list_cont()const
- {
- return this->option_list_cont_;
- }
+ arg_list(list_option_ const& l, arg_list_cont_type const& a)
+ : list_option_( l ),
+ arg_list_cont_( a )
+ {}
 
         arg_list_cont_type const& arg_list_cont() const
         {
@@ -62,82 +55,76 @@
         }
 
         protected:
- option_list_cont_type option_list_cont_;
         arg_list_cont_type arg_list_cont_;
 
     }/*->*/;
 
- template<typename OptionList/*<-*/ = ::boost::mpl::vector0<> /*->*/>
- class arg_list_generator/*<-*/
+ template<
+ typename Head = typename empty_list_option::head_type,
+ typename Tail = typename empty_list_option::tail_type
+ >
+ class arg_list_generator : public list_option<Head, Tail>/*<-*/
     {
 
         typedef ::boost::mpl::na na_;
- typedef option_traits<OptionList> option_traits_;
+ typedef list_option<Head, Tail> list_option_;
 
         public:
 
- typedef typename option_traits_::size option_list_size;
- typedef typename option_traits_::cont_ option_list_cont_type;
-
         arg_list_generator(){}
- explicit arg_list_generator(option_list_cont_type const& p)
- : option_list_cont_( p ){}
+ explicit arg_list_generator(Tail const& t, Head const& h)
+ : list_option_( t, h )
+ {}
 
- template<typename P>
- struct option_result
+ template<typename Option>
+ struct modulo_result
         {
- typedef typename option_traits_:: template next_option_list<
- P
- >::type option_list_;
- typedef arg_list_generator<option_list_> type;
+ typedef arg_list_generator<Option, arg_list_generator> type;
         };
-
- template<typename O>
- typename option_result<O>::type
- operator%(O const& option)const
+
+ template<typename Option>
+ typename modulo_result<Option>::type
+ operator%(Option option)const
         {
- typedef typename option_result<O>::type result_;
- return result_( this->option_list_cont()( option ) );
+ typedef typename modulo_result<Option>::type result_;
+ return result_( *this, option );
         }
 
- template<std::size_t N, typename U = na_> // size?
+ template<arg_list_size_type N, typename U = na_> // size?
         struct result{
- typedef interpreter_aux::arg_list<OptionList, N, U> type;
+ typedef interpreter_aux::arg_list<Head, Tail, N, U> type;
         };
  
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 
- protected:
- template<typename T, typename...Args>
- typename result<sizeof...(Args) + 1, T>::type
- impl(T& t, Args&...args)const
- {
- typedef typename result<sizeof...(Args)+1, T>::type result_;
- namespace ns = ref::assign_copy;
- return result_(
- this->option_list_cont(),
- ref::csv_array( t, args... )
- );
- }
-
- public:
-
- template<typename T, typename...Args>
- typename boost::lazy_disable_if<
- v2::type_traits::or_const<T, Args...>,
- result<sizeof...(Args)+1, T>
- >::type
- operator()(T& t, Args&...args)const
- {
- return this->impl(t, args...);
- }
-
- template<typename T, typename...Args>
- typename result<sizeof...(Args)+1, T const>::type
- operator()(T const& t, Args const&...args)const
- {
- return this->impl(t, args...);
- }
+ protected:
+ template<typename T, typename...Args>
+ typename result<sizeof...(Args) + 1, T>::type
+ impl(T& t, Args&...args)const
+ {
+ typedef typename result<sizeof...(Args)+1, T>::type result_;
+ namespace ns = ref::assign_copy;
+ return result_(*this, ref::csv_array( t, args... ) );
+ }
+
+ public:
+
+ template<typename T, typename...Args>
+ typename boost::lazy_disable_if<
+ v2::type_traits::or_const<T, Args...>,
+ result<sizeof...(Args)+1, T>
+ >::type
+ operator()(T& t, Args&...args)const
+ {
+ return this->impl(t, args...);
+ }
+
+ template<typename T, typename...Args>
+ typename result<sizeof...(Args)+1, T const>::type
+ operator()(T const& t, Args const&...args)const
+ {
+ return this->impl(t, args...);
+ }
 
 #else
 
@@ -152,26 +139,26 @@
         }
 
 #define BOOST_ASSIGN_V2_MACRO1(N, U)\
- return result_( \
- this->option_list_cont(), \
- ref::csv_array<U>( BOOST_PP_ENUM_PARAMS(N, _) ) \
- );\
+ return result_( \
+ *this, \
+ ref::csv_array<U>( BOOST_PP_ENUM_PARAMS(N, _) ) \
+ );\
 /**/
 #define BOOST_ASSIGN_V2_MACRO2(z, N, data)\
- template<typename T>\
- typename result<N, T>::type\
- operator()( BOOST_PP_ENUM_PARAMS(N, T &_) )const \
- { \
- typedef typename result<N, T>::type result_;\
- BOOST_ASSIGN_V2_MACRO1( N, T )\
- } \
- template<typename T>\
- typename result<N, T const>::type\
- operator()( BOOST_PP_ENUM_PARAMS(N, T const &_) )const \
- { \
- typedef typename result<N, T const>::type result_;\
- BOOST_ASSIGN_V2_MACRO1( N, T const )\
- } \
+ template<typename T>\
+ typename result<N, T>::type\
+ operator()( BOOST_PP_ENUM_PARAMS(N, T &_) )const \
+ { \
+ typedef typename result<N, T>::type result_;\
+ BOOST_ASSIGN_V2_MACRO1( N, T )\
+ } \
+ template<typename T>\
+ typename result<N, T const>::type\
+ operator()( BOOST_PP_ENUM_PARAMS(N, T const &_) )const \
+ { \
+ typedef typename result<N, T const>::type result_;\
+ BOOST_ASSIGN_V2_MACRO1( N, T const )\
+ } \
 /**/
 
 BOOST_PP_REPEAT_FROM_TO(
@@ -185,24 +172,29 @@
 
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
 
- option_list_cont_type const& option_list_cont()const
- {
- return this->option_list_cont_;
- }
-
- protected:
- option_list_cont_type option_list_cont_;
-
     }/*->*/;
 
- template<typename C, typename ParList, arg_list_size_type N, typename U>
- C& operator|(C& cont, interpreter_aux::arg_list<ParList, N, U> const& arg_list)/*<-*/
- {
+// TODO deal with maps
+
+ template<
+ typename C, typename H, typename T,
+ arg_list_size_type N, typename U
+ >
+ C& operator|(
+ C& cont,
+ interpreter_aux::arg_list<H, T, N, U> const& arg_list
+ )/*<-*/
+ {
+ typedef typename v2::result_of::put<
+ C
+ , functor_aux::value<
+ typename container_aux::value<C>::type
+ >
+ , typename interpreter_aux::deduce_modifier_tag<C>::type
+ , typename interpreter_aux::deduce_data_tag<C>::type
+ >::type put_;
         v2::ref::as_arg_list(
- v2::ref::as_modulo_list<ParList>(
- put( cont ),
- arg_list.option_list_cont()
- ),
+ arg_list.apply( put_( cont ) ),
             arg_list.arg_list_cont()
         );
         return cont;

Modified: sandbox/assign_v2/boost/assign/v2/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put.hpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -106,15 +106,25 @@
 }// interpreter_aux
 namespace result_of{
 
- template<typename C>
- struct put{/*<-*/
- typedef typename interpreter_aux::deduce_data_generator<C>::type f_;
- typedef typename interpreter_aux::deduce_modifier_tag<C>::type modifier_tag_;
- typedef typename interpreter_aux::deduce_data_tag<C>::type data_tag_;
- /*->*/typedef /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)
- interpreter_aux::put_interpreter<C, f_, modifier_tag_, data_tag_>/*->*/
+ template<
+ typename C/*<-*/
+ , typename DataGenerator
+ = typename interpreter_aux::deduce_data_generator<C>::type
+ , typename ModifierTag
+ = typename interpreter_aux::deduce_modifier_tag<C>::type
+ , typename DataTag
+ = typename interpreter_aux::deduce_data_tag<C>::type/*->*/
+ >
+ struct put/*<-*/{
+ typedef
+ interpreter_aux::put_interpreter<
+ C,
+ DataGenerator,
+ ModifierTag,
+ DataTag
+ >
         type;
- };
+ }/*->*/;
 
 }// result_of
 
@@ -126,6 +136,23 @@
         return result_( cont );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+/*<-*/
+ template<
+ typename DataGenerator
+ ,typename ModifierTag
+ ,typename DataTag
+ ,typename C
+ >
+ typename result_of::put<C, DataGenerator, ModifierTag, DataTag>::type
+ put( C& cont )/*<-*/
+ {
+ typedef typename result_of::put<
+ C, DataGenerator, ModifierTag, DataTag
+ >::type result_;
+ return result_( cont );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+/*->*/
 //]
 }// v2
 }// assign

Modified: sandbox/assign_v2/libs/assign/v2/src/main.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/src/main.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/src/main.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -64,16 +64,16 @@
     }
     {
         using namespace test_assign_v2;
- //xxx_chain::test();
- //xxx_conversion::test();
- //xxx_csv::test();
- //xxx_detail::test();
- //xxx_deque::test();
- //xxx_interpreter::test();
- //xxx_option::test();
- //xxx_pipe::test();
- //xxx_put::test();
- //xxx_ref::test();
+ xxx_chain::test();
+ xxx_conversion::test();
+ xxx_csv::test();
+ xxx_detail::test();
+ xxx_deque::test();
+ xxx_interpreter::test();
+ xxx_option::test();
+ xxx_pipe::test();
+ xxx_put::test();
+ xxx_ref::test();
     }
     {
         tutorial_assign_v2::run();

Modified: sandbox/assign_v2/libs/assign/v2/test/detail/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/detail/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/detail/functor.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/detail/functor/constructor.hpp>
+#include <boost/assign/v2/detail/functor/value.hpp>
 #include <boost/tuple/tuple.hpp>
 #include <libs/assign/v2/test/detail/functor.h>
 
@@ -36,56 +36,56 @@
         {
             typedef int e_; e_ x = -1, y = 1;
             typedef boost::tuple<e_&, e_&> tuple_;
- typedef as2::functor_aux::constructor<tuple_> constructor_;
+ typedef as2::functor_aux::value<tuple_> value_;
 
- BOOST_ASSIGN_V2_CHECK( &get<0>( constructor_()( x, y ) ) == &x );
- BOOST_ASSIGN_V2_CHECK( &get<1>( constructor_()( x, y ) ) == &y );
+ BOOST_ASSIGN_V2_CHECK( &get<0>( value_()( x, y ) ) == &x );
+ BOOST_ASSIGN_V2_CHECK( &get<1>( value_()( x, y ) ) == &y );
 
         }
         {
             typedef int e_; e_ x = -1;
             {
                 typedef boost::tuple<e_&, e_ const&> tuple_;
- typedef as2::functor_aux::constructor<tuple_> constructor_;
+ typedef as2::functor_aux::value<tuple_> value_;
 
- BOOST_ASSIGN_V2_CHECK( &get<0>( constructor_()( x, 1 ) ) == &x );
- BOOST_ASSIGN_V2_CHECK( get<1>( constructor_()( x, 1 ) ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( &get<0>( value_()( x, 1 ) ) == &x );
+ BOOST_ASSIGN_V2_CHECK( get<1>( value_()( x, 1 ) ) == 1 );
             }
             {
                 typedef boost::tuple< e_ const&, e_&> tuple_;
- typedef as2::functor_aux::constructor<tuple_> constructor_;
+ typedef as2::functor_aux::value<tuple_> value_;
 
- BOOST_ASSIGN_V2_CHECK( get<0>( constructor_()( 1, x ) ) == 1 );
- BOOST_ASSIGN_V2_CHECK( &get<1>( constructor_()( 1, x ) ) == &x );
+ BOOST_ASSIGN_V2_CHECK( get<0>( value_()( 1, x ) ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( &get<1>( value_()( 1, x ) ) == &x );
             }
         }
         {
             typedef int e_; e_ x = -1, y = 0, z = 1;
             typedef boost::tuple<e_&, e_&, e_&> tuple_;
- typedef as2::functor_aux::constructor<tuple_> constructor_;
+ typedef as2::functor_aux::value<tuple_> value_;
 
- BOOST_ASSIGN_V2_CHECK( &get<0>( constructor_()( x, y, z ) ) == &x );
- BOOST_ASSIGN_V2_CHECK( &get<1>( constructor_()( x, y, z ) ) == &y );
+ BOOST_ASSIGN_V2_CHECK( &get<0>( value_()( x, y, z ) ) == &x );
+ BOOST_ASSIGN_V2_CHECK( &get<1>( value_()( x, y, z ) ) == &y );
         }
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
         {
             typedef int e_; int y = 0;
             typedef boost::tuple<e_ const&, e_ &, e_ const&> tuple_;
- typedef as2::functor_aux::constructor<tuple_> constructor_;
+ typedef as2::functor_aux::value<tuple_> value_;
 
- BOOST_ASSIGN_V2_CHECK( get<0>( constructor_()( -1, y, 1 ) ) == -1 );
- BOOST_ASSIGN_V2_CHECK( &get<1>( constructor_()( -1, y, 1 ) ) == &y );
- BOOST_ASSIGN_V2_CHECK( get<2>( constructor_()( -1, y, 1 ) ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( get<0>( value_()( -1, y, 1 ) ) == -1 );
+ BOOST_ASSIGN_V2_CHECK( &get<1>( value_()( -1, y, 1 ) ) == &y );
+ BOOST_ASSIGN_V2_CHECK( get<2>( value_()( -1, y, 1 ) ) == 1 );
         }
 #endif
         {
             typedef int e_;
             typedef boost::tuple<e_ const&, e_ const&, e_ const&> tuple_;
- typedef as2::functor_aux::constructor<tuple_> constructor_;
+ typedef as2::functor_aux::value<tuple_> value_;
 
- BOOST_ASSIGN_V2_CHECK( get<0>( constructor_()( -1, 0, 1 ) ) == -1 );
- BOOST_ASSIGN_V2_CHECK( get<1>( constructor_()( -1, 0, 1 ) ) == 0 );
- BOOST_ASSIGN_V2_CHECK( get<2>( constructor_()( -1, 0, 1 ) ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( get<0>( value_()( -1, 0, 1 ) ) == -1 );
+ BOOST_ASSIGN_V2_CHECK( get<1>( value_()( -1, 0, 1 ) ) == 0 );
+ BOOST_ASSIGN_V2_CHECK( get<2>( value_()( -1, 0, 1 ) ) == 1 );
         }
     }
 

Modified: sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -38,12 +38,12 @@
         }
         {
             typedef std::vector<int> inp_;
- typedef ns::has_value_type<inp_>::type pred_;
+ typedef ns::value_has_value_type<inp_>::type pred_;
             BOOST_STATIC_ASSERT(pred_::value);
         }
         {
             typedef int inp_;
- typedef ns::has_value_type<inp_>::type pred_;
+ typedef ns::value_has_value_type<inp_>::type pred_;
             BOOST_STATIC_ASSERT(!pred_::value);
         }
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/option.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <libs/assign/v2/test/option/data.h>
 #include <libs/assign/v2/test/option/iterate.h>
+#include <libs/assign/v2/test/option/list.h>
 #include <libs/assign/v2/test/option/mapped.h>
 #include <libs/assign/v2/test/option/repeat.h>
 #include <libs/assign/v2/test/option/std_modifier.h>
@@ -21,6 +22,7 @@
         xxx_data::test();
         xxx_iterate::test();
         xxx_mapped::test();
+ xxx_list::test();
         xxx_repeat::test();
         xxx_standard::test();
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/option/data.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/data.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/data.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -16,7 +16,7 @@
 #include <boost/assign/v2/deque.hpp>
 #include <boost/assign/v2/put.hpp>
 // Options come next
-#include <boost/assign/v2/option/data_generator/framework.hpp>
+#include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/function.hpp>
 #include <boost/lambda/bind.hpp>
 #include <boost/lambda/lambda.hpp>

Modified: sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -33,16 +33,12 @@
     void test()
     {
         using namespace boost;
- namespace as2 = assign::v2;
- {
+ namespace as2 = assign::v2; {
             //[test_option_iterate_meta
- typedef as2:: interpreter_aux::keyword_iterate keyword_;
             typedef as2::modifier_tag::iterate_arg arg_;
- typedef as2:: interpreter_aux::option_modifier<keyword_, arg_> modulo_;
             typedef array<int, 4> cont_;
             typedef as2::result_of::put<cont_>::type put_;
- typedef as2::result_of::option_modifier<put_> meta1_;
- typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+ typedef as2::result_of::option_iterate<put_, arg_>::type result1_;
             typedef as2::modifier_tag::iterate<arg_> tag1_;
             typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
             typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;
@@ -62,10 +58,8 @@
             //[test_option_iterate_meta_deque
             typedef as2:: interpreter_aux::keyword_iterate keyword_;
             typedef as2::modifier_tag::iterate_arg arg_;
- typedef as2:: interpreter_aux::option_modifier<keyword_, arg_> modulo_;
             typedef as2::result_of::deque<int>::type put_;
- typedef as2::result_of::option_modifier<put_> meta1_;
- typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+ typedef as2::result_of::option_iterate<put_, arg_>::type result1_;
             typedef as2::modifier_tag::iterate<arg_> tag1_;
             typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
             typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;

Modified: sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -14,7 +14,7 @@
 #include <boost/assign/v2/put.hpp>
 #include <boost/assign/v2/deque.hpp>
 // Options come next
-#include <boost/assign/v2/option/data_generator/key.hpp>
+#include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/assign/v2/option/modifier/mapped.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/mpl/assert.hpp>
@@ -39,7 +39,7 @@
             typedef std::string str_; typedef std::map<str_, int> C; C year;
             (
                 as2::put( year )( "feb", 28 )( "apr", 30 )( "jun", 30 )( "sep", 30 )( "nov", 30 )
- % as2::_key % ( as2::_mapped = ( _1 = 31 ) )
+ % (as2::_data = as2::_key) % ( as2::_mapped = ( _1 = 31 ) )
             )/*<<Calls `year["jan"] = 31` etc.>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
 
             BOOST_ASSIGN_V2_CHECK( year["jan"] == 31 );
@@ -51,10 +51,8 @@
             using namespace lambda;
             typedef BOOST_TYPEOF(_1) arg_;
             typedef as2:: interpreter_aux::keyword_mapped keyword_;
- typedef as2:: interpreter_aux::option_modifier<keyword_, arg_> modulo_;
             typedef as2::result_of::deque<int>::type put_;
- typedef as2::result_of::option_modifier<put_> meta1_;
- typedef ::boost::mpl::apply2<meta1_, keyword_, arg_>::type result1_;
+ typedef as2::result_of::option_mapped<put_, arg_>::type result1_;
             typedef as2::modifier_tag::mapped<arg_> tag1_;
             typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
             typedef ::boost::mpl::apply1<meta2_, tag1_>::type result2_;

Modified: sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -39,20 +39,17 @@
         using namespace boost;
         namespace as2 = assign::v2;
 
- // ------------------------------ WARNING ---------------------------- //
- // Don't misconstrue the commands in the tests below as *necessary* to //
- // obtain particular implementation. In most cases, the default is //
- // already set at that invoked with operator% //
- // ------------------------------------------------------------------- //
+ // Note: In many cases, the default is already set at that invoked with
+ // operator%
 
         // PUT
         {
             //[test_option_standard_meta
             typedef as2::result_of::put<std::vector<int> >::type put_;
- typedef as2:: interpreter_aux::keyword_std_modifier keyword_;
             typedef as2::modifier_tag::push_front tag_;
- typedef as2::result_of::option_modifier<put_> meta1_;
- typedef ::boost::mpl::apply2<meta1_, keyword_, tag_>::type result1_;
+ typedef as2::result_of::option_std_modifier<
+ put_, tag_
+ >::type result1_;
             typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
             typedef ::boost::mpl::apply1<meta2_, tag_>::type result2_;
             BOOST_MPL_ASSERT(( boost::is_same<result1_, result2_> ));
@@ -112,10 +109,8 @@
         {
             //[test_option_meta_deque
             typedef as2::result_of::deque<int>::type put_;
- typedef as2:: interpreter_aux::keyword_std_modifier keyword_;
             typedef as2::modifier_tag::push_front tag_;
- typedef as2::result_of::option_modifier<put_> meta1_;
- typedef ::boost::mpl::apply2<meta1_, keyword_, tag_>::type result1_;
+ typedef as2::result_of::option_push_front<put_>::type result1_;
             typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
             typedef ::boost::mpl::apply1<meta2_, tag_>::type result2_;
 

Modified: sandbox/assign_v2/libs/assign/v2/test/pipe/csv_put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/pipe/csv_put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/pipe/csv_put.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -7,16 +7,15 @@
 // Boost Software License, Version 1.0. (See accompanying file //
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
-//#include <map>
+#include <map>
 #include <deque>
-#include <vector>
-#include <list>
 #include <string>
-#include <boost/array.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/detail/traits/container.hpp>
 #include <boost/assign/v2/deque/csv_deque.hpp>
 #include <boost/assign/v2/pipe/csv_put.hpp>
-#include <boost/range/algorithm/for_each.hpp>
+#include <boost/ptr_container/ptr_map.hpp>/
+#include <boost/range/algorithm/equal.hpp>
 
 #include <libs/assign/v2/test/pipe/csv_put.h>
 
@@ -30,7 +29,8 @@
         namespace as2 = assign::v2;
         {
             //[test_pipe_csv_put_str_literal
- typedef const char* T; typedef std::string str_; std::deque<T> cont;
+ typedef const char* T; typedef std::string str_;
+ std::deque<T> cont;
 
             BOOST_ASSIGN_V2_CHECK(
                 boost::range::equal(
@@ -40,6 +40,43 @@
             );
             //]
         }
+ {
+ //[test_pipe_csv_put_map
+ typedef std::map<std::string, int> C; typedef C::value_type T;
+ C cal; C benchmark;
+ benchmark["jan"] = 31;
+ benchmark["feb"] = 28;
+ benchmark["mar"] = 31;
+
+ cal | as2::_csv_put( T("jan", 31), T( "feb", 28 ), T("mar", 31) );
+
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal(
+ cal | as2::_csv_put( T("jan", 31), T("feb", 28 ), T("mar", 31) ),
+ benchmark
+ )
+ );
+ //]
+ }
+ {
+ //[test_pipe_csv_put_map
+ typedef boost::ptr_map<std::string, int> C;
+ typedef as2::value_container_value<C>::type T;
+
+ C benchmark;
+ benchmark["jan"] = 31;
+ benchmark["feb"] = 28;
+ benchmark["mar"] = 31;
+
+ C cal;
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal(
+ cal | as2::_csv_put( T("jan", 31), T("feb", 28 ), T("mar", 31) ),
+ benchmark
+ )
+ );
+ //]
+ }
 
     }// test()
 

Modified: sandbox/assign_v2/libs/assign/v2/test/pipe/option/data.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/pipe/option/data.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/pipe/option/data.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -14,7 +14,7 @@
 #include <boost/assign/v2/deque/csv_deque.hpp>
 #include <boost/assign/v2/pipe/csv_put.hpp>
 // Options come next
-#include <boost/assign/v2/option/data_generator/framework.hpp>
+#include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/pipe/option/data.h>

Modified: sandbox/assign_v2/libs/assign/v2/test/pipe/option/mapped.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/pipe/option/mapped.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/pipe/option/mapped.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -9,13 +9,15 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <map>
 #include <string>
-#include <boost/lambda/lambda.hpp>
-#include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/pipe/csv_put.hpp>
 // Options come next
-#include <boost/assign/v2/option/data_generator/framework.hpp>
+#include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/assign/v2/option/modifier/mapped.hpp>
+#include <boost/lambda/lambda.hpp>
+#include <boost/ptr_container/ptr_map.hpp>
+#include <boost/typeof/typeof.hpp>
+
 #include <libs/assign/v2/test/pipe/option/mapped.h>
 
 namespace test_assign_v2{
@@ -29,20 +31,62 @@
         namespace as2 = assign::v2;
         {
             //[test_pipe_option_mapped
+ typedef std::map<std::string, int> C;
+ C benchmark;
+ benchmark["feb"] = 28;
+ benchmark["apr"] = 30;
+ benchmark["jun"] = 30;
+ benchmark["sep"] = 30;
+ benchmark["nov"] = 30;
+ benchmark["jan"] = 31;
+ benchmark["mar"] = 31;
+ benchmark["may"] = 31;
+ benchmark["jul"] = 31;
+ benchmark["aug"] = 31;
+ benchmark["oct"] = 31;
+ benchmark["dec"] = 31;
+
+ BOOST_AUTO( apply, as2::_csv_put % (as2::_data = as2::_key) );
+ C cal; as2::put( cal )("feb", 28);
+ using namespace lambda;
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal(
+ cal
+ | ( apply % ( as2::_mapped = (_1 = 30) ) )( "apr", "jun", "sep", "nov" )
+ | ( apply % ( as2::_mapped = (_1 = 31) ) )( "jan", "mar", "may", "jul", "aug", "oct", "dec" ),
+ benchmark
+ )
+ );
+ //]
+ }
+ {
+ //[test_pipe_option_mapped_ptr
+ typedef boost::ptr_map<std::string, int> C;
+ C benchmark;
+ benchmark["feb"] = 28;
+ benchmark["apr"] = 30;
+ benchmark["jun"] = 30;
+ benchmark["sep"] = 30;
+ benchmark["nov"] = 30;
+ benchmark["jan"] = 31;
+ benchmark["mar"] = 31;
+ benchmark["may"] = 31;
+ benchmark["jul"] = 31;
+ benchmark["aug"] = 31;
+ benchmark["oct"] = 31;
+ benchmark["dec"] = 31;
+
+ C cal; as2::put( cal )("feb", 28);
+ BOOST_AUTO( apply, as2::_csv_put % (as2::_data = as2::_key) );
             using namespace lambda;
- typedef std::map<std::string, int> C; C cal;
- BOOST_AUTO( _local, ( as2::_data = _1 ) );
             BOOST_ASSIGN_V2_CHECK(
- (
- cal
- | as2::_csv_put( C::value_type( "feb", 28 ) )
- | ( as2::_csv_put % _local % ( as2::_mapped = (_1 = 30) ) )( "apr", "jun", "sep", "nov" )
- | ( as2::_csv_put % _local % ( as2::_mapped = (_1 = 31) ) )( "jan", "mar", "may", "jul", "aug", "oct", "dec" )
-
- )["feb"] == 28
+ range::equal(
+ cal
+ | ( apply % ( as2::_mapped = (_1 = 30) ) )( "apr", "jun", "sep", "nov" )
+ | ( apply % ( as2::_mapped = (_1 = 31) ) )( "jan", "mar", "may", "jul", "aug", "oct", "dec" ),
+ benchmark
+ )
             );
- BOOST_ASSIGN_V2_CHECK( cal["jun"] == 30 );
- BOOST_ASSIGN_V2_CHECK( cal["mar"] == 31 );
             //]
         }
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/pipe/option/std_modifier.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/pipe/option/std_modifier.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/pipe/option/std_modifier.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -32,11 +32,9 @@
         using namespace boost;
         namespace as2 = assign::v2;
 
- // ------------------------------ WARNING ---------------------------- //
- // Don't misconstrue the commands in the tests below as *necessary* to //
- // obtain particular implementation. Most of the time the default is //
- // already set at that invoked with operator% //
- // ------------------------------------------------------------------- //
+ // Note
+ // Most of the time the default is already set at that invoked with
+ // operator%
         
         // MSVC REMINDER : fully qualify boost::begin boost::end - error C2668
 

Modified: sandbox/assign_v2/libs/assign/v2/test/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -16,7 +16,7 @@
 
     void test(){
 
- //xxx_ptr::test();
+ xxx_ptr::test();
         xxx_put::test();
 
     }

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-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -90,7 +90,6 @@
             //]
         }
         {
- /*
             //[test_put_put_unordered_map
             boost::ptr_unordered_map<std::string, int> map;
             as2::put( map )("foo", 1)("bar", 2)("baz", 3);
@@ -98,7 +97,7 @@
             BOOST_ASSIGN_V2_CHECK( map["foo"] == 1 );
             BOOST_ASSIGN_V2_CHECK( map["baz"] == 3 );
             //]
- */}
+ }
         {
             //[test_put_put_unordered_set
             boost::ptr_unordered_set<std::string> set;

Modified: sandbox/assign_v2/libs/assign/v2/test/unit_testing/option.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/unit_testing/option.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/unit_testing/option.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -15,6 +15,7 @@
 
 #include <libs/assign/v2/test/option/data.cpp>
 #include <libs/assign/v2/test/option/iterate.cpp>
+#include <libs/assign/v2/test/option/list.cpp>
 #include <libs/assign/v2/test/option/mapped.cpp>
 #include <libs/assign/v2/test/option/repeat.cpp>
 #include <libs/assign/v2/test/option/std_modifier.cpp>
@@ -30,6 +31,7 @@
         namespace ns = xxx_option;
         test->add( BOOST_TEST_CASE( &ns::xxx_data::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_iterate::test ) );
+ test->add( BOOST_TEST_CASE( &ns::xxx_list::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_mapped::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_repeat::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_standard::test ) );

Modified: sandbox/assign_v2/libs/assign/v2/tutorial.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/tutorial.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/tutorial.cpp 2011-03-29 17:36:38 EDT (Tue, 29 Mar 2011)
@@ -49,7 +49,7 @@
             //[tutorial_ptr_container
             typedef std::string T; ptr_set<T> assoc;
             T x = "isomer", y = "ephemeral", z = "prosaic";
- csv( put( assoc ), x, z, y );
+ /*<<Calls `assoc.insert( new T( t ) )` for [^t = x, y, z]>>*/csv( put( assoc ), x, z, y );
 
             assert( assoc.count( x ) == 1 );
             assert( assoc.count( z ) == 1 );
@@ -98,9 +98,10 @@
         {
             //[tutorial_data_gen
             std::map<std::string, int> map;
- put( map )( "foo", 1 )( "bar", 2 )( "baz", 3 );
+ put( map )( "foo", 1 )( "bar", 2 )( "baz", 3 )("qux");
 
- assert( map["bar"] = 2 );
+ assert( map["bar"] == 2 );
+ assert( map["qux"] == int() );
             //]
         }
         {


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