Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r66830 - in sandbox/statistics/support/libs/assign/v2: example speed src test/chain test/put test/put/compose/functor test/put_range test/ref
From: erwann.rogard_at_[hidden]
Date: 2010-11-28 17:57:36


Author: e_r
Date: 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
New Revision: 66830
URL: http://svn.boost.org/trac/boost/changeset/66830

Log:
small reorganization in libs/assign/v2
Text files modified:
   sandbox/statistics/support/libs/assign/v2/example/anon.cpp | 17 +++---
   sandbox/statistics/support/libs/assign/v2/example/anon.h | 3
   sandbox/statistics/support/libs/assign/v2/example/chain.cpp | 8 +-
   sandbox/statistics/support/libs/assign/v2/example/chain.h | 3
   sandbox/statistics/support/libs/assign/v2/example/conversion.cpp | 23 +++++---
   sandbox/statistics/support/libs/assign/v2/example/conversion.h | 3
   sandbox/statistics/support/libs/assign/v2/example/foo.cpp | 23 ++++++++
   sandbox/statistics/support/libs/assign/v2/example/foo.h | 49 ++++-------------
   sandbox/statistics/support/libs/assign/v2/example/fusion.cpp | 2
   sandbox/statistics/support/libs/assign/v2/example/fusion.h | 3
   sandbox/statistics/support/libs/assign/v2/example/include.h | 4 +
   sandbox/statistics/support/libs/assign/v2/example/put_adaptor.cpp | 106 +++++++++++++++++++++++----------------
   sandbox/statistics/support/libs/assign/v2/example/put_adaptor.h | 3
   sandbox/statistics/support/libs/assign/v2/example/put_range.cpp | 12 ++-
   sandbox/statistics/support/libs/assign/v2/example/put_range.h | 3
   sandbox/statistics/support/libs/assign/v2/example/ref_anon.cpp | 13 ++--
   sandbox/statistics/support/libs/assign/v2/example/ref_anon.h | 3
   sandbox/statistics/support/libs/assign/v2/speed/anon_put_ref.cpp | 55 +++++++++++---------
   sandbox/statistics/support/libs/assign/v2/src/main.cpp | 48 +++++++++--------
   sandbox/statistics/support/libs/assign/v2/test/chain/convert.cpp | 21 ++++---
   sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/composer.cpp | 21 ++++++-
   sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_args.cpp | 1
   sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_seq_args.cpp | 1
   sandbox/statistics/support/libs/assign/v2/test/put/modulo_op.cpp | 2
   sandbox/statistics/support/libs/assign/v2/test/put_range/convert.cpp | 15 +++--
   sandbox/statistics/support/libs/assign/v2/test/ref/anon.cpp | 20 ++++---
   26 files changed, 265 insertions(+), 197 deletions(-)

Modified: sandbox/statistics/support/libs/assign/v2/example/anon.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/anon.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/anon.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,32 +9,33 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <libs/assign/v2/example/include.h>
 #include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/constants.h>
 #include <libs/assign/v2/example/anon.h>
 
 namespace example_assign_v2{
 namespace xxx_anon{
 
- void run()
+ void run(std::ostream& os)
     {
                 using namespace boost::assign::v2;
- std::cout << "---xxx_anon " << std::endl;
+ os << "---xxx_anon " << std::endl;
         {
- std::cout << "csv_anon" << ' ';
+ os << "csv_anon" << ' ';
             //[csv_anon
- boost::for_each( csv_anon<T>( x, y ,z ), printer(std::cout) );
+ boost::for_each( csv_anon<T>( x, y ,z ), printer(os) );
             // outputs (1,0)(NULL,0)(1,5)
             //]
- std::cout << std::endl;
- std::cout << "anon" << ' ';
+ os << std::endl;
+ os << "anon" << ' ';
             //[anon
             boost::for_each(
                 (anon<T>( _nil ) % _push_front)( a )()( a, b ),
- printer(std::cout)
+ printer(os)
             );
             // outputs (1,5)(NULL,0)(1,0)
             //]
         }
- std::cout << std::endl;
+ os << std::endl;
     }
 
 }// xxx_anon

Modified: sandbox/statistics/support/libs/assign/v2/example/anon.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/anon.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/anon.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_ANON_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_ANON_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_anon{
 
- void run();
+ void run(std::ostream& os);
 
 }// xxx_anon
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/example/chain.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/chain.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/chain.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -12,16 +12,18 @@
 #include <boost/array.hpp>
 #include <libs/assign/v2/example/include.h>
 #include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/constants.h>
 #include <libs/assign/v2/example/chain.h>
 
 namespace example_assign_v2{
 namespace xxx_chain{
 
- void run()
+ void run(std::ostream& os)
     {
             using namespace boost::assign::v2;
- std::cout << "chain_read" << std::endl;
+ os << "---xxx_chain";
                 {
+ os << "chain_read";
                 //[chain_read
             typedef boost::array<T, 1> cont1_; cont1_ cont1; cont1[0] = x;
             typedef std::list<T> cont3_; cont3_ cont3; cont3.push_back( z );
@@ -29,7 +31,7 @@
             namespace ns = ref::assign_copy;
             boost::for_each(
                 cont1 | _chain( ns::csv_anon( y ) ) | _chain( cont3 ),
- printer( std::cout )
+ printer( os )
             );
             // outputs (1,0)(NULL,0)(1,5)
                 //]

Modified: sandbox/statistics/support/libs/assign/v2/example/chain.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/chain.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/chain.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_CHAIN_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_CHAIN_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_chain{
 
- void run();
+ void run(std::ostream& os);
 
 }// xxx_chain
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/example/conversion.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/conversion.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/conversion.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -14,20 +14,23 @@
 #include <boost/array.hpp>
 #include <libs/assign/v2/example/include.h>
 #include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/constants.h>
 #include <libs/assign/v2/example/ref_anon.h>
 
 namespace example_assign_v2{
 namespace xxx_conversion{
 
- void run()
+ void run(std::ostream& os)
     {
                 using namespace boost::assign::v2;
         namespace ns_ref = ref::assign_copy;
         {
+// TODO remove
+/*
             {
                     //[convert_anon_explicit
                 typedef std::queue<T> to_;
- to_ to = ref::assign_copy::csv_anon( x, y, z ).convert<to_>();
+ to_ to = ref::assign_copy::csv_anon( x, y, z ).put_convert<to_>();
                 to.pop();
                 BOOST_ASSERT( to.front() == y ); // because FIFO
                 //]
@@ -35,21 +38,25 @@
             {
                     //[convert_anon_auto
                 typedef std::deque<T> to_;
- to_ to; to = ref::assign_copy::csv_anon( x, y, z );
+ to_ to;
+ csv_anon( x, y, z ).put_convert<to_>( );
                 to.pop_back(); BOOST_ASSERT( to.back() == y );
                 //]
             }
+*/
             {
- //[convert_explicit
+ //[convert_stack
                 typedef boost::array<T, 3> from_;
- typedef std::stack<T> to_;
+ typedef std::stack<T> to_; // LIFO
                 from_ from; from[0] = x; from[1] = y; from[2] = z;
                 using namespace adaptor;
                 BOOST_ASSERT(
- ( from | convert<to_>() ).top() == z // because LIFO
+ ( from | put_convert<to_>() ).top() == z
                 );
                 //]
             }
+// TODO remove
+/*
             {
                     //[convert_chain
                 typedef boost::array<T, 2> from_;
@@ -61,13 +68,13 @@
                     (
                         (
                             from | _chain( ns::csv_anon( z ) )
- ).convert<to_>()
+ ).put_convert<to_>()
                     ).top() == z // because LIFO
                 );
                 //]
 
             }
-
+*/
         }
     }
 

Modified: sandbox/statistics/support/libs/assign/v2/example/conversion.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/conversion.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/conversion.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_CONVERSION_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_CONVERSION_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_conversion{
 
- void run();
+ void run(std::ostream& os);
 
 }// xxx_conversion
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/example/foo.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/foo.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/foo.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -12,6 +12,29 @@
 
 namespace example_assign_v2{
 
+foo::foo() : ptr_a( 0 ), b( 0 ){}
+foo::foo( int& a) : ptr_a( &a ), b( 0 ){}
+foo::foo( int& a, int const& b_) : ptr_a( &a ), b( b_ ){}
+
+bool foo::operator==(foo const& other)const
+{
+ return (this->ptr_a == other.ptr_a) && (this->b == other.b);
+}
+
+foo& foo::operator+=(int const& delta){ this->b += delta; return (*this); }
+
+printer::printer(std::ostream& os_):os( os_ ){}
+printer::result_type printer::operator()( foo const& t)const
+{
+ this->os << t;
+}
+
+make_foo::result_type make_foo::operator()(int& a, int const& b)const
+ {
+ return result_type( a, b );
+ }
+
+
 std::ostream& operator<<( std::ostream& os, foo const& t)
 {
     os << '(';

Modified: sandbox/statistics/support/libs/assign/v2/example/foo.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/foo.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/foo.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -16,16 +16,13 @@
 //[foo
 struct foo
 {
- foo():ptr_a( 0 ), b( 0 ){}
- foo( int& a) : ptr_a( &a ), b( 0 ){}
- foo( int& a, int const& b_): ptr_a( &a ), b( b_ ){}
-
- bool operator==(foo const& other)const
- {
- return (this->ptr_a == other.ptr_a) && (this->b == other.b);
- }
+ foo(); //:ptr_a( 0 ), b( 0 ){}
+ foo( int& a); // : ptr_a( &a ), b( 0 ){}
+ foo( int& a, int const& b_); //: ptr_a( &a ), b( b_ ){}
 
- foo& operator+=(int const& delta){ this->b += delta; return (*this); }
+ bool operator==(foo const& other)const;
+
+ foo& operator+=(int const& delta);
 
     private:
     friend std::ostream & operator<<(std::ostream &os, const foo& p);
@@ -36,28 +33,22 @@
 struct make_foo
 {
     typedef foo result_type;
- result_type operator()(int& a, int const& b)const
- {
- return result_type( a, b );
- }
-};
+ result_type operator()(int& a, int const& b)const;
 
-std::ostream& operator<<( std::ostream& os, foo const& t);
+};
 
 struct printer
 {
     typedef void result_type;
     
- printer(std::ostream& os_) : os( os_ ){}
+ printer(std::ostream& os_);
+
+ result_type operator()( foo const& t)const;
 
- result_type operator()( foo const& t)const
- {
- this->os << t;
- }
-
     private:
     mutable std::ostream& os;
 };
+
 //]
 
 //[foo_types
@@ -66,22 +57,6 @@
 typedef std::pair<S,T> U; //key-data pair
 //]
 
-//[foo_constants
-namespace{
-
-int a = 1, b = 5;
-
-S key_x = "x" ;
-S key_y = "y" ;
-S key_z = "z" ;
-
-const T x( a ); // (1, 0)
-const T y; // (NULL, 0)
-const T z( a, b ); //(1, 5)
-
-}
-//]
-
 }// example_assign_v2
 
 #endif

Modified: sandbox/statistics/support/libs/assign/v2/example/fusion.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/fusion.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/fusion.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -18,7 +18,7 @@
 namespace example_assign_v2{
 namespace xxx_fusion{
 
- void run()
+ void run(std::ostream& os)
     {
             using namespace boost::assign::v2;
         typedef int t0_;

Modified: sandbox/statistics/support/libs/assign/v2/example/fusion.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/fusion.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/fusion.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_FUSION_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_FUSION_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_fusion{
 
- void run();
+ void run(std::ostream& os);
     
 }// xxx_fusion
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/example/include.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/include.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/include.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -10,12 +10,14 @@
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_INCLUDE_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_INCLUDE_ER_2010_H
 
+// Exlc. from markup bec. already included in section Getting started
+#include <boost/assign/v2.hpp>
+
 //[include_statements
 #include <iostream>
 #include <utility> // std::pair
 #include <boost/assert.hpp>
 #include <boost/range/algorithm.hpp>
-#include <boost/assign/v2.hpp>
 //]
 
 #endif

Modified: sandbox/statistics/support/libs/assign/v2/example/put_adaptor.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/put_adaptor.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/put_adaptor.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -15,28 +15,28 @@
 #include <boost/ptr_container/ptr_vector.hpp>
 #include <libs/assign/v2/example/include.h>
 #include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/constants.h>
 #include <libs/assign/v2/example/put_adaptor.h>
 
 namespace example_assign_v2{
 namespace xxx_put_adaptor{
 
- void run()
+ void run(std::ostream& os)
     {
                 using namespace boost::assign::v2;
- std::cout << "---xxx_put_adaptor " << std::endl;
+ os << "---xxx_put_adaptor " << std::endl;
         {
- std::cout << "vector" << ' ';
+ os << "vector" << ' ';
             //[vector
             typedef std::vector<T> cont_;
             cont_ cont;
             using namespace adaptor;
- boost::for_each( cont | _csv_put( x, y, z ), printer(std::cout) );
+ boost::for_each( cont | _csv_put( x, y, z ), printer(os) );
             //outputs (1,0)(NULL,0)(1,5)
             //]
- std::cout << std::endl;
+ os << std::endl;
         }
         {
- std::cout << "map" << ' ';
             //[map
             typedef std::map<S,T> cont_;
             typedef cont_::value_type key_data_;
@@ -58,71 +58,70 @@
                 ( cont | _put (key_z, z)(key_y, y)(key_x, x) )[key_x] == x
             );
                         //]
- std::cout << std::endl;
         }
         {
- std::cout << "static_array" << ' ';
+ os << "static_array" << ' ';
                         //[static_array
             typedef boost::array<T,3> cont_;
             cont_ cont;
             using namespace adaptor;
- boost::for_each( cont | _csv_put( x, y, z ), printer(std::cout) );
+ boost::for_each( cont | _csv_put( x, y, z ), printer(os) );
                 //]
- std::cout << std::endl;
+ os << std::endl;
         }
         {
- std::cout << "ptr_vector" << ' ';
+ os << "ptr_vector" << ' ';
                 //[ptr_vector
             typedef boost::ptr_vector<T> cont_; cont_ cont;
             using namespace adaptor;
             boost::for_each(
- cont | _csv_put( x, y, z ),
- printer(std::cout)
+ cont | _csv_put( x, y, z ),
+ printer(os)
             );
             //]
- std::cout << std::endl;
+ os << std::endl;
         }
         {
- std::cout << "list" << ' ';
+ os << "list" << ' ';
             //[list
             typedef std::list<T> cont_;
             cont_ cont;
             using namespace adaptor;
             boost::for_each(
                 cont | (_csv_put % _push_front)( x, y, z ),
- printer(std::cout)
+ printer(os)
             );
             //outputs (1,5)(NULL,0)(1,0)
             //]
- std::cout << std::endl;
+ os << std::endl;
         }
         {
- std::cout << "in_place" << ' ';
+ os << "in_place" << ' ';
             //[in_place
             typedef std::vector<T> cont_;
             cont_ cont;
             using namespace adaptor;
             boost::for_each(
                 cont | _csv_put( foo( a ), foo(), foo( a, b ) ),
- printer(std::cout)
+ printer(os)
             );
             //]
- std::cout << std::endl;
+ os << std::endl;
         }
         {
- std::cout << "forward_to_constructor" << ' ';
+ os << "forward_to_constructor" << ' ';
             //[forward_to_constructor
             typedef std::vector<T> cont_;
             cont_ cont;
             using namespace adaptor;
             boost::for_each(
                 cont | _put( a )()( a, b ),
- printer(std::cout)
+ printer(os)
             );
             //]
 
- std::cout << std::endl;
- std::cout << "forward_to_make_foo" << ' ';
+ os << std::endl;
+ os << "forward_to_make_foo" << ' ';
 
             //[forward_to_make_foo
             int a0 = -1, a1 = 0, a2 = 1;
@@ -131,13 +130,13 @@
                 cont | (
                     _put % ( _fun = make_foo() )
                 )( a0, b )( a1, b )( a2, b ),
- printer(std::cout)
+ printer(os)
             );
             //outputs (-1,5)(0,5)(1,5)
             //]
 
- std::cout << std::endl;
- std::cout << "forward_to_bind" << ' ';
+ os << std::endl;
+ os << "forward_to_bind" << ' ';
 
             //[forward_to_bind
             cont.clear();
@@ -146,23 +145,44 @@
                 cont | (
                     _csv_put % (_fun = bind<T>( make_foo(), _1, b) )
                 )(a0, a1, a2),
- printer(std::cout)
+ printer(os)
             );
             //]
-
- std::cout << std::endl;
- std::cout << "repeat_simpl" << ' ';
- //[repeat_simple
- cont.clear();
- boost::for_each(
- cont | ( _csv_put % ( _repeat = 2 ) )( x ),
- printer(std::cout)
- );
- // outputs (1,0)(1,0)
- //]
+ os << std::endl;
+ os << "repeat_simpl" << ' ';
+ {
+ //[repeat_simple
+ typedef std::vector<T> cont_;
+ cont_ cont;
+ using namespace adaptor;
+ boost::for_each(
+ cont | ( _csv_put % ( _repeat = 2 ) )( x ),
+ printer(os)
+ );
+ // outputs (1,0)(1,0)
+ //]
+ }
+ {
+ os << std::endl;
+ os << "incr_lookup" << ' ';
+ //[incr_lookup
+ typedef std::map<S,int> cont_;
+ cont_ cont;
+ using namespace adaptor;
+ cont | (
+ _csv_put % ( _incr_lookup = 2 )
+ )( key_z, key_x, key_y );
+ os
+ << '('
+ << cont[key_x] << ','
+ << cont[key_y] << ','
+ << cont[key_z] << ')';
+ // outputs (2,2,2)
+ //]
+ }
             {
- std::cout << std::endl;
- std::cout << "complex_ex1" << ' ';
+ os << std::endl;
+ os << "complex_ex1" << ' ';
                     //[complex_ex1
                 typedef std::list<T> cont_;
                 cont_ cont;
@@ -173,7 +193,7 @@
                     )()( b, a ) /*(NULL,0)(5,1)*/ | (
                         _csv_put % ( _fun = bind<T>( make_foo(), _1, b) )
                     )( a0, a1, a2 ), /*(-1,5)(0,5)(1,5)*/
- printer(std::cout)
+ printer(os)
                 );
                 //]
                 //[complex_ex1_answer
@@ -181,7 +201,7 @@
                 //]
                         }
         }
- std::cout << std::endl;
+ os << std::endl;
     }
 
 }// xxx_put_adaptor

Modified: sandbox/statistics/support/libs/assign/v2/example/put_adaptor.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/put_adaptor.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/put_adaptor.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_PUT_ADAPTOR_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_PUT_ADAPTOR_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_put_adaptor{
 
- void run();
+ void run(std::ostream& os);
 
 }// xxx_put_adaptor
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/example/put_range.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/put_range.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/put_range.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -11,26 +11,28 @@
 #include <vector>
 #include <libs/assign/v2/example/include.h>
 #include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/constants.h>
 #include <libs/assign/v2/example/put_range.h>
 
 namespace example_assign_v2{
 namespace xxx_put_range{
 
- void run()
+ void run(std::ostream& os)
     {
                 using namespace boost::assign::v2;
- std::cout << "---xxx_put_range " << std::endl;
+ os << "---xxx_put_range " << std::endl;
         {
                 //[put_range_queue
             typedef std::vector<T> from_; from_ from( 3 );
             from[0] = x; from[1] = y; from[2] = z;
- typedef std::queue<T> to_; to_ to;
+ typedef std::queue<T> to_; // FIFO
+ to_ to;
             using namespace adaptor;
- BOOST_ASSERT( (to | _put_range( from ) ).front() == x );
+ BOOST_ASSERT( ( to | _put_range( from ) ).front() == x );
             BOOST_ASSERT( to.back() == z );
             //]
         }
- std::cout << std::endl;
+ os << std::endl;
     }
 
 }// xxx_put_range

Modified: sandbox/statistics/support/libs/assign/v2/example/put_range.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/put_range.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/put_range.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_PUT_RANGE_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_PUT_RANGE_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_put_range{
 
- void run();
+ void run(std::ostream& os);
 
 }// xxx_put_range
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/example/ref_anon.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/ref_anon.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/example/ref_anon.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -10,21 +10,22 @@
 #include <vector>
 #include <libs/assign/v2/example/include.h>
 #include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/constants.h>
 #include <libs/assign/v2/example/ref_anon.h>
 
 namespace example_assign_v2{
 namespace xxx_ref_anon{
 
- void run()
+ void run(std::ostream& os)
     {
 
         using namespace boost::assign::v2;
- std::cout << "---xxx_ref_anon " << std::endl;
+ os << "---xxx_ref_anon " << std::endl;
         {
- std::cout << "ref::assign_copy::csv_anon" << std::endl;
+ os << "ref::assign_copy::csv_anon";
                 //[assign_copy_read
             namespace ns = ref::assign_copy;
- boost::for_each( ns::csv_anon( x, y, z ), printer(std::cout) );
+ boost::for_each( ns::csv_anon( x, y, z ), printer(os) );
             //outputs (1,0)(NULL,0)(1,5)
             //]
                 //[assign_copy_write
@@ -59,10 +60,10 @@
             result2_ result2 = result1( z );
             //]
             //[anon_read_print
- boost::for_each( result2, printer(std::cout) );
+ boost::for_each( result2, printer(os) );
             //]
                 }
- std::cout << std::endl;
+ os << std::endl;
     }
 
 }// xxx_ref_anon

Modified: sandbox/statistics/support/libs/assign/v2/example/ref_anon.h
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/example/ref_anon.h (original)
+++ sandbox/statistics/support/libs/assign/v2/example/ref_anon.h 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_EXAMPLE_REF_ANON_ER_2010_H
 #define BOOST_ASSIGN_V2_EXAMPLE_REF_ANON_ER_2010_H
+#include <ostream>
 
 namespace example_assign_v2{
 namespace xxx_ref_anon{
 
- void run();
+ void run(std::ostream& os);
 
 }// xxx_ref_anon
 }// example_assign_v2

Modified: sandbox/statistics/support/libs/assign/v2/speed/anon_put_ref.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/speed/anon_put_ref.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/speed/anon_put_ref.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -18,6 +18,7 @@
 #include <boost/preprocessor/comparison/greater.hpp>
 #include <boost/preprocessor/repetition/enum_params.hpp>
 #include <boost/preprocessor/seq/first_n.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
 #include <boost/preprocessor/seq/for_each.hpp>
 
 #include <boost/format.hpp>
@@ -26,10 +27,9 @@
 
 #include <boost/assign/list_of.hpp>
 #include <boost/assign/list_inserter.hpp>
-#define BOOST_ASSIGN_V2_LIMIT_CSV_ARITY 100
+#define BOOST_ASSIGN_V2_LIMIT_CSV_ARITY 128
 #include <boost/assign/v2.hpp>
 
-
 #include <libs/assign/v2/speed/tools.h>
 #include <libs/assign/v2/speed/anon_put_ref.h>
 
@@ -52,16 +52,16 @@
 
         //[types
     typedef std::vector<int> elem_; // T
- // This STL container is of the same type as that internally used by the
- // anon container of values, so we have a common basis for comparing
+ // This STL container is of the same type as that internally used by the
+ // anon container of values, so we have a common basis for comparing
     // their exec time.
     typedef std::deque< elem_ > cont_;
     //]
     //[sim_param
     // t is a random size element, with max size :
- const int elem_size = 100;
+ const int elem_size = 100;
     // Number of loops over which exec time is summed
- const int n_loops = 1000 * 1000;
+ const int n_loops = 1000 * 1000;
     //]
 
 // ----]
@@ -69,11 +69,10 @@
 // The number of values is n :
 // fun(t[0], ....,t[n-1])
 // fun( t[0] )...( t[n-1] )
-// The mapping N -> n is
+// The mapping N -> n is
 // [1-> 1, 2-> 2, 3->4, 4->8, 5->16, 6->32, 7->64, 8->128]
-// Warning : limit_N > 6 may suffer long compile times
-//#define limit_N 6 // uncomment when you're actually going to run the test
-#define limit_N 0 // uncomment when you don't want to compile this file
+// Warning : limit_N > 6 may cause a long compilation time
+#define limit_N 0
 #if BOOST_PP_GREATER(limit_N, 8)
 #error
 #endif
@@ -94,7 +93,7 @@
             f % n_loops;
         os << f.str() << std::endl;
     }
-
+
 #define SEQ (a0)(a1)(a2)(a3)(a4)(a5)(a6)(a7)(a8)(a9)(a10)(a11)(a12)(a13)(a14)\
 (a15)(a16)(a17)(a18)(a19)(a20)(a21)(a22)(a23)(a24)(a25)(a26)(a27)(a28)(a29)\
 (a30)(a31)(a32)(a33)(a34)(a35)(a36)(a37)(a38)(a39)(a40)(a41)(a42)(a43)(a44)\
@@ -172,13 +171,13 @@
     }\
 /**/
 
- cont_ cont;
+ cont_ cont;
 
     str_ str_n = "[";
     str_ str_t = "[";
-
+
     for(int i = 0; i < limit_N ; i++)
- {
+ {
         f_ f( "%1%" ); f % ( i + 1 );
         str_n += "%" + f.str() + "% ";
         str_t += "%" + f.str() + "% " + "s ";
@@ -188,9 +187,10 @@
 
     //os << str_n << std::endl;
     //os << str_t << std::endl;
-
+
     str_ str_stl_push_back = "vec.push_back( t0 ); ... vec.push_back( tN-1 );";
 
+ str_ str_v1_cref_list_of = "cref_list_of<N>( t0 )...( tN-1 )";
     str_ str_v1_list_of = "list_of( t0 )...( tN-1 )";
     str_ str_v1_push_back = "push_back( vec )( t0 )...( tN-1 )";
 
@@ -202,12 +202,13 @@
     str_ str_v2_put = "put( vec )( t0 )...( tN-1 )";
     str_ str_v2_adaptor_csv_put = "vec | _csv_put(t0, ...,tN-1)";
     str_ str_v2_adaptor_put = "vec | _put( t0 )...( tN-1 )";
-
+
         f_ f_n( str_( "n = " ) + str_n );
 
     f_ f_stl_push_back( str_stl_push_back + str_t );
 
     f_ f_v1_list_of( str_v1_list_of + str_t );
+ f_ f_v1_cref_list_of( str_v1_cref_list_of + str_t );
     f_ f_v1_push_back( str_v1_push_back + str_t );
 
     f_ f_v2_csv_anon( str_v2_csv_anon + str_t );
@@ -226,7 +227,7 @@
 // param4 : v2_adaptor_put
 // param5 : v2_adaptor_csv_put
 // param6 : v1_push_back
-
+
 #define MACRO(N)\
     os << "N = " << N << " . . . ";\
     {\
@@ -246,6 +247,9 @@
             MACRO1( boost::assign::list_of, N, 1 )\
         f_v1_list_of % elapsed;\
         \
+ MACRO1( boost::assign::cref_list_of<N>, N, 1 )\
+ f_v1_cref_list_of % elapsed;\
+ \
             MACRO1( boost::assign::v2::csv_anon, N, 0 )\
         f_v2_csv_anon % elapsed;\
         \
@@ -261,18 +265,18 @@
         f_n % N;\
     }\
 /**/
-
+
     double elapsed = 0;
 // -----------------------------------N------------------n----------
 // Dont uncomment. Modify instead limit_N
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(1, limit_N), MACRO(1) )
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(2, limit_N), MACRO(2) )
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(3, limit_N), MACRO(4) )
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(4, limit_N), MACRO(8) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(1, limit_N), MACRO(1) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(2, limit_N), MACRO(2) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(3, limit_N), MACRO(4) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(4, limit_N), MACRO(8) )
 BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(5, limit_N), MACRO(16) )
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(6, limit_N), MACRO(32) )
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(7, limit_N), MACRO(64) )
-BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(8, limit_N), MACRO(128) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(6, limit_N), MACRO(32) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(7, limit_N), MACRO(64) )
+BOOST_PP_EXPR_IF( BOOST_PP_LESS_EQUAL(8, limit_N), MACRO(128) )
 
 #undef limit_n
 #undef SEQ
@@ -287,6 +291,7 @@
         os << f_stl_push_back.str() << std::endl;
 
     os << f_v1_list_of.str() << std::endl;
+ os << f_v1_cref_list_of.str() << std::endl;
     os << f_v1_push_back.str() << std::endl;
 
     os << f_v2_csv_anon.str() << std::endl;

Modified: sandbox/statistics/support/libs/assign/v2/src/main.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/src/main.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/src/main.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -1,5 +1,5 @@
 #include <iostream>
-
+/*
 #include <libs/assign/v2/test/type_traits/has_push.h>
 #include <libs/assign/v2/test/type_traits/has_value_type.h>
 #include <libs/assign/v2/test/type_traits/has_static_size.h>
@@ -25,7 +25,6 @@
 #include <libs/assign/v2/test/ref/csv_anon.h>
 #include <libs/assign/v2/test/ref/anon.h>
 #include <libs/assign/v2/test/ref/fusion_matrix.h>
-
 #include <libs/assign/v2/test/put/compose/common/forward_parameter.h>
 #include <libs/assign/v2/test/put/compose/functor/composer.h>
 #include <libs/assign/v2/test/put/compose/functor/forward_args.h>
@@ -34,16 +33,16 @@
 #include <libs/assign/v2/test/put/compose/csv/composer.h>
 #include <libs/assign/v2/test/put/compose/csv/stl.h>
 
-//#include <libs/assign/v2/example/foo.h>
-//#include <libs/assign/v2/example/put_adaptor.h>
-//#include <libs/assign/v2/example/ref_anon.h>
- //#include <libs/assign/v2/example/anon.h>
-//#include <libs/assign/v2/example/put_range.h>
-//#include <libs/assign/v2/example/conversion.h>
-//#include <libs/assign/v2/example/chain.h>
-//#include <libs/assign/v2/example/fusion.h>
-
-//#include <libs/assign/v2/speed/anon_put_ref.h>
+#include <libs/assign/v2/example/foo.h>
+#include <libs/assign/v2/example/put_adaptor.h>
+#include <libs/assign/v2/example/ref_anon.h>
+#include <libs/assign/v2/example/anon.h>
+#include <libs/assign/v2/example/put_range.h>
+#include <libs/assign/v2/example/conversion.h>
+#include <libs/assign/v2/example/chain.h>
+#include <libs/assign/v2/example/fusion.h>
+*/
+#include <libs/assign/v2/speed/anon_put_ref.h>
 
 int main (int argc, char * const argv[]) {
 
@@ -51,6 +50,7 @@
     // in your project. That would cause a conflict.
 
         {
+/*
                 using namespace test_assign_v2;
 
             xxx_type_traits::xxx_has_push::test();
@@ -86,21 +86,23 @@
                 xxx_put::xxx_compose::xxx_functor::xxx_forward_args::test();
             xxx_put::xxx_compose::xxx_functor::xxx_forward_seq_args::test();
             xxx_put::xxx_compose::xxx_functor::xxx_stl::test();
-
+*/
         }
     {
- //using namespace example_assign_v2;
- //xxx_put_adaptor::run();
- //xxx_anon::run();
- //xxx_put_range::run();
- //xxx_ref_anon::run();
- //xxx_conversion::run();
- //xxx_chain::run();
- //xxx_fusion::run();
+/*
+ using namespace example_assign_v2;
+ xxx_put_adaptor::run(std::cout);
+ xxx_anon::run(std::cout);
+ xxx_put_range::run(std::cout);
+ xxx_ref_anon::run(std::cout);
+ xxx_conversion::run(std::cout);
+ xxx_chain::run(std::cout);
+ xxx_fusion::run(std::cout);
+*/
     }
     {
- // using namespace speed_assign_v2;
- // xxx_anon_put_ref::run(std::cout);
+ using namespace speed_assign_v2;
+ xxx_anon_put_ref::run(std::cout);
     }
 
     std::cout << "main.cpp" << std::endl;

Modified: sandbox/statistics/support/libs/assign/v2/test/chain/convert.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/chain/convert.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/chain/convert.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -17,9 +17,10 @@
 #include <boost/array.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/chain.hpp>
+#include <boost/assign/v2/put/range.hpp>
 #include <boost/assign/v2/detail/checking/container.hpp>
 #include <boost/assign/v2/detail/checking/constants.hpp>
-#include <boost/assign/v2/detail/checking/check_convert.hpp>
+// #include <boost/assign/v2/detail/checking/check_convert.hpp> // TODO remove
 #include <libs/assign/v2/test/chain/convert.h>
 
 namespace test_assign_v2{
@@ -45,37 +46,41 @@
                 cont3.push_back( g );
                 cont3.push_back( h );
             }
+
+#define MACRO do_check( from | adaptor::put_convert<to_>() );
+
             BOOST_AUTO(from, cont1 && cont2 && cont3);
             { // Conversion
                         using namespace checking::container;
                         {
                                 typedef boost::array<int,8> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
                         {
                                 typedef std::deque<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
                         {
                                 typedef std::list<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
                         {
                                 typedef std::queue<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
                         {
                                 typedef std::set<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
                         {
                                 typedef std::stack<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
                         {
                                 typedef std::vector<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                         }
+#undef MACRO
             }
         }
     }

Modified: sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/composer.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/composer.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/composer.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -12,7 +12,8 @@
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/checking/check_equal.hpp>
 #include <boost/assign/v2/detail/checking/constants.hpp>
-#include <boost/assign/v2/put/modifier/repeat.hpp>
+#include <boost/assign/v2/put/modifier/ext/repeat.hpp>
+#include <boost/assign/v2/put/modifier/ext/incr_lookup.hpp>
 #include <boost/assign/v2/put/compose/functor/composer.hpp>
 
 #include <libs/assign/v2/test/put/compose/functor/composer.h>
@@ -32,20 +33,30 @@
         typedef boost::mpl::int_<1> one_;
         typedef boost::mpl::int_<2> two_;
         {
- using namespace adaptor;
             int x = -1;
- put_compose_aux::composer<>();
+ typedef put_compose_aux::composer<> composer_;
 
             BOOST_AUTO(
                     tmp,
- ( ( put_compose_aux::composer<>() % ( _repeat = 3 ) )( x ) )
+ ( ( composer_() % ( _repeat = 3 ) )( x ) )
             );
             int n = tmp
                 .parameters()
- .static_lookup( zero_() ).unwrap();
+ .static_lookup( zero_() ).get();
             BOOST_ASSIGN_V2_CHECK_EQUAL( n, 3 );
 
         }
+ {
+ typedef put_compose_aux::composer<> composer_;
+ BOOST_AUTO(
+ tmp,
+ ( composer_() % ( _incr_lookup = 3 ) )
+ );
+ int n = tmp
+ .parameters()
+ .static_lookup( zero_() ).get();
+ BOOST_ASSIGN_V2_CHECK_EQUAL( n, 3 );
+ }
         {
             int a1, b1, c1, d1;//, e1, f1, g1, h1;
             using namespace checking::constants;

Modified: sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_args.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_args.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_args.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -21,6 +21,7 @@
 #include <boost/assign/v2/ref/fusion_matrix/container.hpp>
 #include <boost/assign/v2/ref/fusion_matrix/nth_result_of.hpp>
 #include <boost/assign/v2/put/compose/functor/forward_args.hpp>
+#include <boost/assign/v2/put/sub.hpp>
 
 #include <libs/assign/v2/test/put/compose/functor/forward_args.h>
 

Modified: sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_seq_args.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_seq_args.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/put/compose/functor/forward_seq_args.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -18,6 +18,7 @@
 #include <boost/assign/v2/ref/fusion/assign_copy.hpp>
 #include <boost/assign/v2/put/compose/functor/composer.hpp>
 #include <boost/assign/v2/put/compose/functor/forward_seq_args.hpp>
+#include <boost/assign/v2/put/sub.hpp>
 
 #include <libs/assign/v2/test/put/compose/functor/forward_seq_args.h>
 

Modified: sandbox/statistics/support/libs/assign/v2/test/put/modulo_op.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/put/modulo_op.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/put/modulo_op.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -26,7 +26,7 @@
                 { // Queue + Repeat
             typedef std::queue<int> cont_;
             cont_ cont;
- ( put( cont ) % ( _repeat = 3 ) ) ( -1 );
+ ( put( cont ) % ( _repeat = 3 ) )( -1 );
             BOOST_ASSIGN_V2_CHECK_EQUAL( cont.front(), -1); cont.pop();
             BOOST_ASSIGN_V2_CHECK_EQUAL( cont.front(), -1); cont.pop();
             BOOST_ASSIGN_V2_CHECK_EQUAL( cont.front(), -1); cont.pop();

Modified: sandbox/statistics/support/libs/assign/v2/test/put_range/convert.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/put_range/convert.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/put_range/convert.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -43,33 +43,34 @@
             from.push_back( g );
             from.push_back( h );
         }
+ using namespace adaptor;
         {
                 typedef boost::array<int,8> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
         {
                 typedef std::deque<int> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
         {
                 typedef std::list<int> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
         {
                 typedef std::queue<int> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
         {
                 typedef std::set<int> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
         {
                 typedef std::stack<int> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
         {
                 typedef std::vector<int> to_;
- chk_cont::do_check( convert<to_>( from ) );
+ chk_cont::do_check( from | put_convert<to_>() );
         }
     }
 

Modified: sandbox/statistics/support/libs/assign/v2/test/ref/anon.cpp
==============================================================================
--- sandbox/statistics/support/libs/assign/v2/test/ref/anon.cpp (original)
+++ sandbox/statistics/support/libs/assign/v2/test/ref/anon.cpp 2010-11-28 17:57:32 EST (Sun, 28 Nov 2010)
@@ -22,9 +22,10 @@
 #include <boost/assign/v2/detail/checking/check_equal.hpp>
 #include <boost/assign/v2/detail/checking/constants.hpp>
 #include <boost/assign/v2/detail/checking/container.hpp>
-#include <boost/assign/v2/detail/checking/check_convert.hpp> // TODO
+//#include <boost/assign/v2/detail/checking/check_convert.hpp> // TODO remove
 #include <boost/assign/v2/detail/checking/array.hpp>
 #include <boost/assign/v2/detail/checking/relational_op.hpp>
+#include <boost/assign/v2/put/range.hpp>
 #include <boost/assign/v2/ref/anon/functor.hpp>
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
 #include <libs/assign/v2/test/ref/anon.h>
@@ -105,6 +106,7 @@
             BOOST_ASSIGN_V2_CHECK_EQUAL( &ar[6] , &b );
             BOOST_ASSIGN_V2_CHECK_EQUAL( &ar[7] , &b );
                 }
+#define MACRO do_check( from | adaptor::put_convert<to_>() );
         {
                 // Conversion
                         typedef ref::assign_copy::nth_result_of::anon<
@@ -119,33 +121,33 @@
                 using namespace checking::container;
                 {
                 typedef boost::array<int,8> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
                 {
                 typedef std::deque<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
                 {
                 typedef std::list<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
                 {
                 typedef std::queue<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
                 {
                 typedef std::set<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
                 {
                         typedef std::stack<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
                 {
                         typedef std::vector<int> to_;
- BOOST_ASSIGN_V2_check_convert
+ MACRO
                 }
-
+#undef MACRO
         }
         { // Relational
             using namespace checking::constants;


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