Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71125 - in sandbox/assign_v2: boost/assign/v2/conversion boost/assign/v2/deque boost/assign/v2/detail boost/assign/v2/detail/traits boost/assign/v2/interpreter boost/assign/v2/option boost/assign/v2/option/modifier boost/assign/v2/put boost/assign/v2/ref/wrapper libs/assign/v2 libs/assign/v2/test libs/assign/v2/test/put libs/assign/v2/test/ref
From: erwann.rogard_at_[hidden]
Date: 2011-04-08 16:51:09


Author: e_r
Date: 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
New Revision: 71125
URL: http://svn.boost.org/trac/boost/changeset/71125

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp | 15 +++---
   sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp | 11 ++--
   sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp | 21 ++++----
   sandbox/assign_v2/boost/assign/v2/deque/deque.hpp | 93 +++++++++++++++++++++------------------
   sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp | 4
   sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp | 19 ++++++++
   sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp | 4
   sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp | 2
   sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp | 8 +-
   sandbox/assign_v2/boost/assign/v2/option/data.hpp | 16 +++---
   sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp | 4
   sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp | 4
   sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp | 88 ++++++++++++++++++-------------------
   sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp | 5 +
   sandbox/assign_v2/libs/assign/v2/test/conversion.cpp | 20 --------
   sandbox/assign_v2/libs/assign/v2/test/deque.cpp | 87 ++++++++++++++++++++++++++-----------
   sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 6 +-
   sandbox/assign_v2/libs/assign/v2/test/put/put.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp | 11 ++++
   sandbox/assign_v2/libs/assign/v2/tutorial.cpp | 4
   20 files changed, 238 insertions(+), 186 deletions(-)

Modified: sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -97,22 +97,23 @@
     struct convert/*<-*/
         : conversion_aux::convert<C, Arg>
     {
-
+//<-
         typedef conversion_aux::convert<C> super_t;
+//->
         
- convert()/*<-*/{}/*->*/
- convert(Arg const& arg)
+ convert()/*<-*/{}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+ convert(Arg const& arg)/*<-*/
             : super_t( arg )
- {}
+ {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
                 
         template<typename Arg1>
         convert<C, Arg1>
- operator+=(Arg1 const& arg1)
+ operator^(Arg1 const& arg1)/*<-*/
         {
             return convert<C, Arg1>( arg1 );
- }
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
     
- }/*->*/;
+ };
 
 //]
 }// v2

Modified: sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -28,11 +28,11 @@
     class converter
     {
 
- typedef boost::iterator_range<
+ /*<-*/typedef boost::iterator_range<
             typename boost::range_iterator<
                 typename boost::add_const<R>::type
>::type
- > source_type;
+ > source_type;/*->*/
 
         public:
 
@@ -47,14 +47,15 @@
              : source_( boost::make_iterator_range( source ) )
         {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+ // Implicit conversion
         template<typename C>
- operator C () const/*<-*/
+ operator C() const/*<-*/
         {
             return this->type<C>();
         }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
- template<typename C>
- C type()const/*<-*/
+ // Explicit converion
+ template<typename C> C type()const/*<-*/
         {
             typedef convert<C, Arg> convert_;
             return this->source_ | convert_( this->arg_ );

Modified: sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -44,16 +44,17 @@
>
     {}/*->*/;
 
- template<typename Os, typename T>
+ template<typename O, typename T>
     struct csv_deque_option/*<-*/
         : modulo_result<
             typename result_of::csv_deque<T>::type,
- Os
+ O
>
     {}/*->*/;
 
 }// result_of
 
+ // Empty
     template<typename T>
     typename result_of::csv_deque<T>::type
     csv_deque()/*<-*/{
@@ -64,10 +65,10 @@
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
     template<typename T, typename... Args>
- typename boost::lazy_disable_if<
+ typename /*<-*/boost::lazy_disable_if<
         is_option_crtp_cpp0x<T>,
- result_of::csv_deque<T>
- >::type
+ /*->*/result_of::csv_deque<T>/*<-*/
+ >/*->*/::type
     csv_deque(T&& t, Args&& ... args)/*<-*/
     {
         typename result_of::csv_deque<T>::type result;
@@ -76,10 +77,10 @@
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename T, typename O, typename... Args>
- typename boost::lazy_enable_if<
+ typename /*<-*/boost::lazy_enable_if<
         is_option_crtp<O>,
- result_of::csv_deque_option<O, T>
- >::type
+ /*->*/result_of::csv_deque_option<O, T>/*<-*/
+ >/*->*/::type
     csv_deque(O const& options, T&& t, Args&& ... args)/*<-*/
     {
         typedef typename result_of::csv_deque<T>::type before_op_;
@@ -110,9 +111,9 @@
         : interpreter_aux::result_of::csv_deque<T>
     {}/*->*/;
 
- template<typename Os, typename T>
+ template<typename O, typename T>
     struct csv_deque_option/*<-*/
- : interpreter_aux::result_of::csv_deque_option<Os, T>
+ : interpreter_aux::result_of::csv_deque_option<O, T>
     {}/*->*/;
 
 }// result_of

Modified: sandbox/assign_v2/boost/assign/v2/deque/deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/deque.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -36,38 +36,47 @@
 
     template<typename T>
     struct deque_impl{
- typedef /*<-*/std::deque<T>
- BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/
- type;
+ typedef std::deque<T> type;
     };
 
- template<typename T, typename F, typename ModifierTag>
+ template<typename T, typename F, typename MTag>
     class deque_interpreter
         : public interpreter_crtp<
- typename deque_impl<T>::type, F, ModifierTag, data_tag::value,
- deque_interpreter<T, F, ModifierTag>
+ typename deque_impl<T>::type, F, MTag, data_tag::value,
+ deque_interpreter<T, F, MTag>
>
     {
-//<-
         typedef typename deque_impl<T>::type impl_;
+ typedef interpreter_aux::interpreter_modifier<MTag> modifier_;
+//<-
         typedef impl_ const cimpl_;
         typedef interpreter_crtp<
- impl_, F, ModifierTag, data_tag::value, deque_interpreter
+ impl_, F, MTag, data_tag::value, deque_interpreter
> put_crtp_;
-
- typedef interpreter_aux::interpreter_modifier<ModifierTag> modifier_;
 //->
+
         public:
 
         typedef T value_type;
- typedef /*<-*/typename boost::range_size<impl_>::type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/size_type;
- typedef /*<-*/typename boost::range_iterator<impl_>::type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/iterator;
- typedef /*<-*/typename boost::range_iterator<cimpl_>::type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/const_iterator;
+ typedef /*<-*/typename boost::range_size<impl_>::type
+ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/size_type;
+ typedef /*<-*/typename boost::range_iterator<impl_>::type
+ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/iterator;
+ typedef /*<-*/typename boost::range_iterator<cimpl_>::type
+ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/const_iterator;
+ typedef /*<-*/typename impl_::reference
+ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/reference;
+ typedef /*<-*/typename impl_::const_reference
+ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/const_reference;
+ typedef /*<-*/typename impl_::difference_type
+ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified /*<-*/)/*->*/difference_type;
 
- // Construct
+ // Constructor
         deque_interpreter()/*<-*/
             {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
- explicit deque_interpreter( impl_ const& cont, F const& f, modifier_ const& m )/*<-*/
+ explicit deque_interpreter(
+ impl_ const& cont, F const& f, modifier_ const& m
+ )/*<-*/
             : put_crtp_( f, m ), impl( cont )
         {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
@@ -85,10 +94,6 @@
             return boost::end( this->impl );
         }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
- typedef /*<-*/typename impl_::reference BOOST_ASSIGN_V2_IGNORE(/*->*/ unspecified /*<-*/)reference;
- typedef /*<-*/typename impl_::const_reference BOOST_ASSIGN_V2_IGNORE(/*->*/ unspecified /*<-*/)const_reference;
- typedef /*<-*/typename impl_::difference_type BOOST_ASSIGN_V2_IGNORE(/*->*/ unspecified /*<-*/)difference_type;
-
         size_type size()const/*<-*/{
             return this->container().size();
         }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
@@ -135,42 +140,41 @@
 //->
     };
 
- template<typename T, typename F, typename ModifierTag>
- struct replace_data_generator< deque_interpreter<T, F, ModifierTag> >
+ template<typename T, typename F, typename MTag>
+ struct replace_data_generator< deque_interpreter<T, F, MTag> >
     {
         template<typename F1>
         struct apply{
- typedef /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)deque_interpreter<T, F1, ModifierTag>/*->*/ type;
+ typedef /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)
+ deque_interpreter<T, F1, MTag>/*->*/ type;
         };
     };
 
- template<typename T, typename F, typename ModifierTag>
- struct replace_modifier_tag< deque_interpreter<T, F, ModifierTag> >
+ template<typename T, typename F, typename MTag>
+ struct replace_modifier_tag< deque_interpreter<T, F, MTag> >
     {
- template<typename ModifierTag1>
+ template<typename MTag1>
         struct apply{
- /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)typedef deque_interpreter<T, F, ModifierTag1>/*->*/ type;
+ /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)typedef
+ deque_interpreter<T, F, MTag1>/*->*/ type;
         };
     };
 
-//<-
 namespace result_of{
 
     template<typename T>
- struct deque
+ struct deque/*<-*/
     {
         typedef typename boost::remove_cv<T>::type t_;
         typedef typename deque_impl<t_>::type impl_;
         typedef typename deduce_data_generator<impl_>::type f_;
         typedef typename deduce_modifier_tag<impl_>::type modifier_tag_;
         typedef deque_interpreter<t_, f_, modifier_tag_> type;
- };
+ }/*->*/;
 
 }// result_of
-}// interpreter_aux
-namespace interpreter_aux{
-//->
 
+ // Empty
     template<typename T>
     typename result_of::deque<T>::type
     deque( nil_ )/*<-*/
@@ -178,19 +182,9 @@
         return typename result_of::deque<T>::type();
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
     
-}// interpreter_aux
-namespace result_of{
-
- template<typename T>
- struct deque/*<-*/
- : interpreter_aux::result_of::deque<T>
- {}/*->*/;
-
-}// result_of
 //<-
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
-namespace interpreter_aux{
 
     template<typename T, typename...Args>
     typename result_of::deque<T>::type
@@ -199,11 +193,24 @@
         return deque<T>( v2::_nil )( std::forward<Args>(args)... );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//<-
+#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+
 }// interpreter_aux
+
 using interpreter_aux::deque;
+
+namespace result_of{
+
+ template<typename T>
+ struct deque/*<-*/
+ : interpreter_aux::result_of::deque<T>
+ {}/*->*/;
+
+}// result_of
 //]
 
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -28,13 +28,13 @@
     struct value/*<-*/{}/*->*/;
 
 }//keyword_aux
- typedef keyword_aux::ignore ignore_;
+ typedef keyword_aux::ignore ignore_;
     typedef keyword_aux::element element_;
     typedef keyword_aux::key key_;
     typedef keyword_aux::map map_;
     typedef keyword_aux::nil nil_;
     typedef keyword_aux::use_default use_default_;
- typedef keyword_aux::value value_;
+ typedef keyword_aux::value value_;
 /*<-*/namespace{/*->*/
     const ignore_ _ignore/*<-*/ = ignore_()/*->*/;
     const element_ _element/*<-*/ = element_()/*->*/;

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-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -26,6 +26,8 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_detail_traits_container
+/*<-*/
 namespace container_aux{
 
 // HELPER
@@ -98,12 +100,29 @@
     {};
 
 }// container_aux
+/*->*/
+
+ template<typename C>
+ struct value_container_element/*<-*/
+ : container_aux::element<C>{}
+ /*->*/;
+
+ template<typename C>
+ struct value_container_key/*<-*/
+ : container_aux::key<C>{}
+ /*->*/;
+
+ template<typename C>
+ struct value_container_mapped/*<-*/
+ : container_aux::mapped<C>{}
+ /*->*/;
 
     template<typename C>
     struct value_container_value/*<-*/
         : container_aux::value<C>{}
     /*->*/;
 
+//]
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -136,8 +136,8 @@
     template<
         typename C // Container,
         , typename F // Data generator
- , typename MTag // Modifier tag
- , typename DTag // Data tag
+ , typename MTag // Modifier tag
+ , typename DTag // Data tag
         , typename D // Derived
>
     class interpreter_crtp

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -19,7 +19,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-//[syntax_interpreter_data_generator
+//[syntax_interpreter_data
 namespace switch_tag{
     struct data_generator{};
 }// switch_tag

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -36,23 +36,23 @@
 namespace interpreter_aux{
 
 
- template<typename ModifierTag>
+ template<typename MTag>
     struct interpreter_modifier
     {
         // Specialize on Tag to model ConceptModifier
     };
 
- template<typename ModifierTag, typename DataTag, typename C, typename T>
+ template<typename MTag, typename DTag, typename C, typename T>
     struct ConceptModifier
     {
 
         BOOST_CONCEPT_USAGE(ConceptModifier)
         {
- m.impl( cont, t, DataTag() );
+ m.impl( cont, t, DTag() );
         }
 
         private:
- static interpreter_aux::interpreter_modifier<ModifierTag>& m;
+ static interpreter_aux::interpreter_modifier<MTag>& m;
         static C& cont;
         static T t;
     };

Modified: sandbox/assign_v2/boost/assign/v2/option/data.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/data.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -26,7 +26,7 @@
 namespace interpreter_aux{
 
     template<
- typename C // Value or pointer-container
+ typename C // Value or pointer-container
         , typename F // Functor or keyword
>
     struct data_generator/*<-*/
@@ -85,11 +85,11 @@
 }// result_of
 
     // F is a functor or either of the keywors:
- // element_
+ // element_
     // key_
     // map_
- // use_default_
- // value_
+ // use_default_
+ // value_
     template<typename F = ignore_>
     struct option_data/*<-*/
         : option_crtp<
@@ -158,14 +158,14 @@
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     struct keyword_data
- /*<-*/{
+ {
 
         template<typename F>
- option_data<F> operator=(F const& f)const{
+ option_data<F> operator=(F const& f)const/*<-*/{
             return option_data<F>( f );
- }
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
- }/*->*/;
+ };
 
 }// interpreter_aux
 namespace{

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-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -80,11 +80,11 @@
             
 }// result_of
 
- template<typename C, typename F, typename ModifierTag, typename DataTag, typename D,
+ template<typename C, typename F, typename MTag, typename DTag, typename D,
         typename Keyword, typename Arg>
     typename result_of::option_modifier<D, Keyword, Arg>::type
     operator%(
- interpreter_crtp<C, F, ModifierTag, DataTag, D> const& lhs,
+ interpreter_crtp<C, F, MTag, DTag, D> const& lhs,
         option_modifier<Keyword, Arg> const& rhs
     )/*<-*/
     {

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -54,8 +54,8 @@
 #define BOOST_ASSIGN_V2_forward t
 #endif
 //->
- template<typename C, typename T, typename DataTag>
- void impl(C& cont, BOOST_ASSIGN_V2_arg, DataTag tag )const
+ template<typename C, typename T, typename DTag>
+ void impl(C& cont, BOOST_ASSIGN_V2_arg, DTag tag )const
         {
             size_type m = this->size();\
             while(m--) this->inner_.impl( cont, BOOST_ASSIGN_V2_forward, tag );

Modified: sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -28,47 +28,46 @@
 namespace v2{
 //[syntax_csv_put
 namespace interpreter_aux{
-
+/*<-*/
     template<typename F>
- struct csv_ready/*<-*/
+ struct csv_ready
         : ::boost::mpl::true_
- {}/*->*/;
+ {};
 
     template<typename T, typename K, typename M>
     struct csv_ready<
         functor_aux::pair<T, K, M>
- > /*<-*/
+ >
         : ::boost::mpl::false_
- {}/*->*/;
+ {};
 
 namespace result_of{
 
     template<typename C, typename F, typename MTag, typename DTag>
- struct if_csv_ready/*<-*/
+ struct if_csv_ready
         : ::boost::mpl::identity<
             put_interpreter<C, F, MTag, DTag>
>
- {}/*->*/;
+ {};
 
     template<typename C, typename F, typename MTag, typename DTag>
- struct else_csv_ready/*<-*/
+ struct else_csv_ready
         : result_of::option_data<
             put_interpreter<C, F, MTag, DTag>, C, value_
>
- {}/*->*/;
+ {};
 
     template<typename C, typename F, typename MTag, typename DTag>
- struct make_csv_ready/*<-*/
+ struct make_csv_ready
         : ::boost::mpl::eval_if<
             csv_ready<F>,
             if_csv_ready<C, F, MTag, DTag>,
             else_csv_ready<C, F, MTag, DTag>
>
- {}/*->*/;
+ {};
 
 }// result_of
 
-/*<-*/
     template<typename C, typename F, typename MTag, typename DTag>
     typename result_of::if_csv_ready<C, F, MTag, DTag>::type
     make_csv_ready(
@@ -88,30 +87,31 @@
     {
         return interpreter % ( _data = _value );
     }
-/*->*/
+
     template<typename C, typename F, typename MTag, typename DTag>
     typename result_of::make_csv_ready<C, F, MTag, DTag>::type
     make_csv_ready( put_interpreter<C, F, MTag, DTag> const& interpreter)
- /*->*/{
+ {
         return make_csv_ready(
             interpreter,
             typename csv_ready<F>::type()
         );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+ }
 
+/*->*/
 //<-
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
 
     template<typename C, typename O, bool is, typename... Args>
- typename boost::enable_if<
+ /*<-*/typename boost::enable_if<
         is_option_crtp<O>
- >::type csv_put(
+ >::type BOOST_ASSIGN_V2_IGNORE(/*->*/void /*<-*/)
+ /*->*/csv_put(
         C& cont,
         option_crtp<O, is> const& crtp,
         Args&&... args
- )
- /*<-*/
+ )/*<-*/
     {
         O const& options = static_cast<O const&>( crtp );
         csv(
@@ -123,9 +123,10 @@
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename C, typename T, typename... Args>
- typename boost::disable_if<
+ /*<-*/typename boost::disable_if<
         is_option_crtp_cpp0x<T>
- >::type csv_put( C& cont, T&& t, Args&&... args)/*<-*/
+ >::type BOOST_ASSIGN_V2_IGNORE(/*->*/void /*<-*/)
+ /*->*/csv_put( C& cont, T&& t, Args&&... args)/*<-*/
     {
         csv(
             make_csv_ready( put( cont ) ),
@@ -135,7 +136,7 @@
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename C>
- void csv_put( C& cont)/*<-*/
+ void csv_put( C& cont )/*<-*/
     {
         csv(
             make_csv_ready( put( cont ) )
@@ -145,21 +146,19 @@
 //<-
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
-
-
- template<typename R, typename Os = empty_list_option>
+ template<typename R, typename O = empty_list_option>
     struct delayed_csv_put/*<-*/
- : Os, as_arg_list_adapter<R>
+ : O, as_arg_list_adapter<R>
     {
 
- typedef Os super1_t;
+ typedef O super1_t;
         typedef as_arg_list_adapter<R> super2_t;
 
         explicit delayed_csv_put(R& r)
             : super2_t( r )
         {}
 
- explicit delayed_csv_put(Os options, R& r)
+ explicit delayed_csv_put(O options, R& r)
             : super1_t( options ), super2_t( r )
         {}
 
@@ -178,8 +177,8 @@
 
     }/*->*/;
 
- template<typename C, typename R, typename Os>
- C& operator|(C& cont, delayed_csv_put<R, Os> const& rhs)/*<-*/
+ template<typename C, typename R, typename O>
+ C& operator|(C& cont, delayed_csv_put<R, O> const& rhs)/*<-*/
     {
         return rhs.apply( cont );
 
@@ -187,13 +186,12 @@
 
 namespace result_of{
 
- template<typename R, typename Os = empty_list_option>
+ template<typename R, typename O = empty_list_option>
     struct delay_csv_put/*<-*/
     {
- typedef delayed_csv_put<R, Os> type;
+ typedef delayed_csv_put<R, O> type;
     }/*->*/;
 
-
 }// result_of
 
     template<typename R>
@@ -203,13 +201,12 @@
         return delayed_csv_put<R const>( range );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
-
- template<typename Os, typename R>
- typename result_of::delay_csv_put<R const, Os>::type
- delay_csv_put(option_crtp<Os> const& options, R const& range)/*<-*/
+ template<typename O, typename R>
+ typename result_of::delay_csv_put<R const, O>::type
+ delay_csv_put(option_crtp<O> const& options, R const& range)/*<-*/
     {
- return delayed_csv_put<R const, Os>(
- static_cast<Os const&>( options ), range
+ return delayed_csv_put<R const, O>(
+ static_cast<O const&>( options ), range
         );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
@@ -217,19 +214,18 @@
 //<-
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
-using interpreter_aux::csv_put;
+ using interpreter_aux::csv_put;
 //<-
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
-
- using interpreter_aux::delay_csv_put;
+ using interpreter_aux::delay_csv_put;
 
 namespace result_of{
 
- template<typename R, typename Os = empty_list_option_>
- struct delay_csv_put
- : interpreter_aux::result_of::delay_csv_put<R, Os>
- {};
+ template<typename R, typename O = empty_list_option_>
+ struct delay_csv_put/*<-*/
+ : interpreter_aux::result_of::delay_csv_put<R, O>
+ {}/*->*/;
 
 }// result_of
 //]

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-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -30,9 +30,10 @@
     :
         public ref::wrapper_crtp< wrapper<ref::assign_tag::copy, T>, T>
     {
- typedef T type;
+
+ typedef T type;/*<-*/
 
- /*<-*/BOOST_STATIC_CONSTANT( bool, is_const = boost::is_const<T>::value );/*->*/
+ BOOST_STATIC_CONSTANT( bool, is_const = boost::is_const<T>::value );/*->*/
 
         wrapper()/*<-*/
             {/*TODO or null pointer?*/}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/

Modified: sandbox/assign_v2/libs/assign/v2/test/conversion.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/conversion.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/conversion.cpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -43,7 +43,7 @@
 
         // External containers (fully qualified)
         {
- //[tutorial_convert
+ //[test_convert
             typedef std::stack<int> C;
             
             C lifo; lifo.push( 3 ); lifo.push( 2 ); lifo.push( 1 );
@@ -117,24 +117,6 @@
         }
         // Boost.Assign.2.0 containers - name lookup
         {
- //[test_converter_from_deque
- typedef array<int, 5> C; C const& ar = /*<<Notice unqualified>>*/converter(
- as2::csv_deque( 1, 2, 3, 4, 5 )
- );
-
- BOOST_ASSIGN_V2_CHECK(
- range::equal( ar, as2::csv_deque( 1, 2, 3, 4, 5 ) )
- );
- //]
- }
- {
- //[test_converter_from_ref_array
- std::queue<int> fifo = /*<<Notice unqualified>>*/converter( as2::ref::csv_array( 1, 2, 3, 4, 5 ) );
-
- BOOST_ASSIGN_V2_CHECK( fifo.front() == 1 );
- //]
- }
- {
             //[test_converter_multi_array
             typedef boost::multi_array<int, 2> array2_;
             typedef array2_::size_type size_;

Modified: sandbox/assign_v2/libs/assign/v2/test/deque.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/deque.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/deque.cpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -10,9 +10,11 @@
 #include <deque>
 #include <string>
 #include <utility>
+#include <boost/array.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/deque/conversion.hpp>
 #include <boost/assign/v2/include/csv_deque.hpp>
 #include <boost/assign/v2/include/deque.hpp>
 #include <boost/range/algorithm/equal.hpp>
@@ -41,37 +43,60 @@
             //]
         }
         {
- //[test_deque_pair
- typedef std::string code_; typedef std::string name_;
- typedef std::pair<code_, name_> T;
- typedef as2::result_of::deque<T>::type C;
-
- C airports1 = as2::deque<T>( as2::_nil );
- BOOST_ASSIGN_V2_CHECK( airports1.empty() );
- airports1("AUH", "Abu Dhabi")("JFK", "New York")("LHR", "London")("PEK", "Beijing");
-
- std::deque<T> benchmark;
- benchmark.push_back( T("AUH", "Abu Dhabi") );
- benchmark.push_back( T("JFK", "New York") );
- benchmark.push_back( T("LHR", "London") );
- benchmark.push_back( T("PEK", "Beijing") );
- BOOST_ASSIGN_V2_CHECK(
- range::equal( benchmark, airports1 )
- );
+ //[test_deque_variadic
+ typedef std::string word_;
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
+
+ std::deque<word_> benchmark;
+ benchmark.push_back( word_( x, 3 ) );
+ benchmark.push_back( word_( y ) );
+ benchmark.push_back( word_( z, 3, 3 ) );
+ benchmark.push_back( word_( "qux" ) );
+
+ typedef as2::result_of::deque<word_>::type C;
+ C cont1 = as2::deque<word_>( as2::_nil );
+
+ BOOST_ASSIGN_V2_CHECK( cont1.empty() );
+
+ cont1( x, 3 )( y )( z, 3, 3 )( "qux" );
             
- C airports2 = as2::deque<T>("AUH", "Abu Dhabi")("JFK", "New York")("LHR", "London")("PEK", "Beijing");
- BOOST_ASSIGN_V2_CHECK(
- range::equal( benchmark, airports2 )
- );
+ BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, cont1 ) );
+
+ C cont2 = as2::deque<word_>( x, 3 )( y )( z, 3, 3 )( "qux" );
+
+ BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, cont2 ) );
             //]
         }
- {
+ {
             //[test_csv_deque_str_literal
- typedef as2::result_of::csv_deque<const char[2]>::type C;
+ typedef as2::result_of::csv_deque<const char[2]>::type C1;
+ typedef as2::result_of::csv_deque<std::string>::type C2;
+
+ BOOST_MPL_ASSERT(( is_same<C1, as2::result_of::deque<char*>::type> ));
+ BOOST_MPL_ASSERT(( is_same<C2, as2::result_of::deque<std::string>::type> ));
+
+ C1 deque1 = as2::csv_deque( "x", "y", "z" );
+ C2 deque2 = as2::csv_deque<std::string>( "x", "y", "z" );
+
+ std::deque<std::string> benchmark;
+ benchmark.push_back( "x" );
+ benchmark.push_back( "y" );
+ benchmark.push_back( "z" );
+
+ BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, deque1 ) );
+ BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, deque2 ) );
+ //]
+ }
+ {
+ //[test_csv_deque_str
+ typedef std::string T;
+ typedef as2::result_of::csv_deque<T>::type C;
             
- BOOST_MPL_ASSERT(( is_same<C, as2::result_of::deque<char*>::type> ));
+ BOOST_MPL_ASSERT(( is_same<C, as2::result_of::deque<std::string>::type> ));
             
- C deque = as2::csv_deque( "x", "y", "z" );
+ C deque = as2::csv_deque<T>( "x", "y", "z" );
             
             std::deque<std::string> benchmark;
             benchmark.push_back( "x" );
@@ -81,7 +106,6 @@
             BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, deque ) );
             //]
         }
-
         {
             //[test_csv_deque_ints
             typedef as2::result_of::csv_deque<int>::type C;
@@ -106,6 +130,17 @@
             BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, series2 ) );
             //]
         }
+ {
+ //[test_csv_deque_converter
+ typedef array<int, 5> C; C const& ar = /*<<Notice unqualified>>*/converter(
+ as2::csv_deque( 1, 2, 3, 4, 5 )
+ );
+
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal( ar, as2::csv_deque( 1, 2, 3, 4, 5 ) )
+ );
+ //]
+ }
     }
 
 }// xxx_deque

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-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -93,17 +93,17 @@
         // SET
         {
             // Shows that x, y, z can be variadic
- //[test_put_ptr_set
+ //[test_csv_put_ptr_set
             typedef std::string T; boost::ptr_set<T> assoc;
             T x = "isomer", y = "ephemeral", z = "prosaic";
- /*<<Calls `assoc.insert( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/as2::csv_put( assoc, x, z, y );
+ as2::csv_put( assoc, x, z, y );
 
             BOOST_ASSIGN_V2_CHECK( assoc.count( x ) == 1 );
             BOOST_ASSIGN_V2_CHECK( assoc.count( z ) == 1 );
             //]
         }
         {
- //[test_put_ptr_unordered_set
+ //[test_csv_put_ptr_unordered_set
             boost::ptr_unordered_set<std::string> set;
             as2::csv_put( set, "foo", "bar", "baz" );
 

Modified: sandbox/assign_v2/libs/assign/v2/test/put/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/put.cpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -262,7 +262,7 @@
         }
         // OTHER
         {
- //test_csv_put_cb
+ //[test_csv_put_cb
             boost::circular_buffer<int> cb(3);
             as2::csv_put( cb, 1, 2, 3 );
 

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp 2011-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -7,11 +7,13 @@
 // 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 <queue>
 #include <vector>
 #include <boost/range/begin.hpp>
 #include <boost/range/algorithm/copy.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/ref/array/conversion.hpp>
 #include <boost/assign/v2/include/ref/csv_array.hpp>
 #include <boost/assign/v2/ref/wrapper.hpp>
 #include <libs/assign/v2/test/ref/csv_array.h>
@@ -36,7 +38,7 @@
                     as2::ref::csv_array( 1, 10, 100 ),
                     ar
                 )
- )/*<<Temporaries destroyed past semicolon>>*/;
+ );
             //]
         }
         {
@@ -90,6 +92,13 @@
             BOOST_ASSIGN_V2_CHECK( z == -1 );
             //]
         }
+ {
+ //[test_ref_csv_array_converter
+ std::queue<int> fifo = /*<<Notice unqualified>>*/converter( as2::ref::csv_array( 1, 2, 3, 4, 5 ) );
+
+ BOOST_ASSIGN_V2_CHECK( fifo.front() == 1 );
+ //]
+ }
     }
 
 }// xxx_csv_array

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-04-08 16:51:07 EDT (Fri, 08 Apr 2011)
@@ -61,10 +61,10 @@
             );
             //]
         }
- {
+ {
             //[tutorial_empty_deque
             assert( deque<int>( _nil ).size() == 0 ); // Functor form
- assert( csv_deque<int>().size() == 0 ); // Csv form
+ assert( csv_deque<int>().size() == 0 ); // Csv form
             //]
         }
         {


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