$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60718 - in sandbox/statistics/detail/assign: boost/assign/auto_size/chain boost/assign/auto_size/check libs/assign/doc libs/assign/src libs/assign/test
From: erwann.rogard_at_[hidden]
Date: 2010-03-19 19:40:27
Author: e_r
Date: 2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
New Revision: 60718
URL: http://svn.boost.org/trac/boost/changeset/60718
Log:
m
Text files modified: 
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/mpl_check.hpp     |     1                                         
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/all.hpp           |     8 +-                                      
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/array.hpp         |    17 -----                                   
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/chain.hpp         |    59 +++++++++++--------                     
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/constants.hpp     |   117 ++++++++++++++++++++++++++++++++++++--- 
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/converter.hpp     |    35 -----------                             
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/copy_iterator.hpp |    28 +--------                               
   sandbox/statistics/detail/assign/boost/assign/auto_size/check/iterator.hpp      |    25 +-------                                
   sandbox/statistics/detail/assign/libs/assign/doc/compilers_tested.txt           |    10 ++                                      
   sandbox/statistics/detail/assign/libs/assign/doc/patch.txt                      |     2                                         
   sandbox/statistics/detail/assign/libs/assign/src/main.cpp                       |     4                                         
   sandbox/statistics/detail/assign/libs/assign/test/ref_csv.cpp                   |    11 +--                                     
   sandbox/statistics/detail/assign/libs/assign/test/ref_list_of.cpp               |    21 ++-----                                 
   13 files changed, 176 insertions(+), 162 deletions(-)
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/mpl_check.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/mpl_check.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/mpl_check.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -110,6 +110,7 @@
 
 }// pair_range_traits
 
+template<typename T> // to allow .hpp
 void compound()
 {  
         
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/all.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/all.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/all.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -8,6 +8,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_ALL_ER_2010_HPP
 #define BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_ALL_ER_2010_HPP
+#include <boost/preprocessor/cat.hpp>
 #include <vector>
 #include <set>
 #include <list>
@@ -15,7 +16,7 @@
 #include <queue>
 #include <boost/array.hpp>
 
-#include <boost/assign/auto_size/chain/mpl_check.hpp>
+#include <boost/assign/auto_size/check/constants.hpp>
 
 #include <boost/assign/auto_size/check/array.hpp>
 #include <boost/assign/auto_size/check/chain.hpp>
@@ -52,19 +53,16 @@
     BOOST_ASSIGN_AS_CHECK_adapter_lifo(std::stack<T>)                          \
     BOOST_ASSIGN_AS_CHECK_adapter_fifo(std::queue<T>)                          \
     BOOST_ASSIGN_AS_CHECK_comparison_op                                        \
-    chain_mpl_check::compound();                                               \
     BOOST_ASSIGN_AS_CHECK_example2                                             \
     BOOST_ASSIGN_AS_CHECK_chain                                                \
 }                                                                              \
-void fun(){ fun<int>(); }                                                      \
+void BOOST_PP_CAT(fun,_int)(){ fun<int>(); }                                   \
 }                                                                              \
 }                                                                              \
 }                                                                              \
 }                                                                              \
 /**/
 
-
-
 #endif
 
 
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/array.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/array.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/array.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -8,9 +8,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_ARRAY_ER_2010_HPP
 #define BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_ARRAY_ER_2010_HPP
-#include <boost/typeof/typeof.hpp>
-#include <boost/next_prior.hpp>
-#include <boost/range.hpp>
 #include <boost/assign/auto_size/check/constants.hpp>
 
 #ifndef BOOST_ASSIGN_CHECK_EQUAL
@@ -22,19 +19,7 @@
     typedef T val_;                                                            \
     using namespace check_constants;                                           \
                                                                                \
-    BOOST_AUTO(tmp,BOOST_ASSIGN_AS_CHECK_cref8(a,b,c,d,e,f,g,h));              \
-                                                                               \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp.empty() , false );                           \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[0] , a );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[1] , b );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[2] , c );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[3] , d );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[4] , e );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[5] , f );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[6] , g );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp[7] , h );                                    \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp.front() , a );                               \
-    BOOST_ASSIGN_CHECK_EQUAL( tmp.back() , h );                                \
+    check_array_impl(BOOST_ASSIGN_AS_CHECK_cref8(a,b,c,d,e,f,g,h));            \
 }                                                                              \
 /**/
 
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/chain.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/chain.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/chain.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -35,33 +35,44 @@
     ar2[0] = d1; ar2[1] = e1; ar2[2] = f1;                                     \
     ar3[0] = g1; ar3[1] = h1;                                                  \
     boost::array<val_,8> ar;                                                   \
-    ar[0] = a;                                                                 \
-    ar[1] = b;                                                                 \
-    ar[2] = c;                                                                 \
-    ar[3] = d;                                                                 \
-    ar[4] = e;                                                                 \
-    ar[5] = f;                                                                 \
-    ar[6] = g;                                                                 \
-    ar[7] = h;                                                                 \
     BOOST_AUTO(tmp1,BOOST_ASSIGN_AS_CHECK_ref3(a1,b1,c1));                     \
     BOOST_AUTO(tmp2,BOOST_ASSIGN_AS_CHECK_ref3(d1,e1,f1));                     \
     BOOST_AUTO(tmp3,BOOST_ASSIGN_AS_CHECK_ref2(g1,h1));                        \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(ar1)(ar2)(ar3))           \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(ar1)(ar2)(tmp3))          \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(ar1)(tmp2)(ar3))          \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(ar1)(tmp2)(tmp3))         \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(tmp1)(ar2)(ar3))          \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(tmp1)(ar2)(tmp3))         \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(tmp1)(tmp2)(ar3))         \
-    BOOST_ASSIGN_AS_CHECK_iterator_f(chain_convert_r(tmp1)(tmp2)(tmp3))        \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(ar1)(ar2)(ar3))   \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(ar1)(ar2)(tmp3))  \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(ar1)(tmp2)(ar3))  \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(ar1)(tmp2)(tmp3)) \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(tmp1)(ar2)(ar3))  \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(tmp1)(ar2)(tmp3)) \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(tmp1)(tmp2)(ar3)) \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,chain_convert_l(tmp1)(tmp2)(tmp3))\
+    check_iterator_impl( boost::begin( chain_convert_r(ar1)(ar2)(ar3) ) );     \
+    check_iterator_impl( boost::begin( chain_convert_r(ar1)(ar2)(tmp3) ) );    \
+    check_iterator_impl( boost::begin( chain_convert_r(ar1)(tmp2)(ar3) ) );    \
+    check_iterator_impl( boost::begin( chain_convert_r(ar1)(tmp2)(tmp3) ) );   \
+    check_iterator_impl( boost::begin( chain_convert_r(tmp1)(ar2)(ar3) ) );    \
+    check_iterator_impl( boost::begin( chain_convert_r(tmp1)(ar2)(tmp3) ) );   \
+    check_iterator_impl( boost::begin( chain_convert_r(tmp1)(tmp2)(ar3) ) );   \
+    check_iterator_impl( boost::begin( chain_convert_r(tmp1)(tmp2)(tmp3) ) );  \
+    ar[0] = a;   ar[1] = b;   ar[2] = c;                                       \
+    ar[3] = d;   ar[4] = e;   ar[5] = f;                                       \
+    ar[6] = g;   ar[7] = h;                                                    \
+    boost::copy(ar, boost::begin(chain_convert_l(ar1)(ar2)(ar3)));             \
+    check_values_impl(                                                         \
+        ar1[0],ar1[1],ar1[2],ar2[0],ar2[1],ar2[2],ar3[0],ar3[1]);              \
+    boost::copy(ar, boost::begin(chain_convert_l(ar1)(ar2)(tmp3)));            \
+    check_values_impl(                                                         \
+        ar1[0],ar1[1],ar1[2],ar2[0],ar2[1],ar2[2],  g1  ,  h1  );              \
+    boost::copy(ar, boost::begin(chain_convert_l(ar1)(tmp2)(ar3)));            \
+    check_values_impl(                                                         \
+        ar1[0],ar1[1],ar1[2],  d1  ,  e1  ,  f1  ,ar3[0],ar3[1]);              \
+    boost::copy(ar, boost::begin(chain_convert_l(ar1)(tmp2)(tmp3)));           \
+    check_values_impl(                                                         \
+        ar1[0],ar1[1],ar1[2],  d1  ,  e1  ,  f1  ,  g1  ,  h1  );              \
+    boost::copy(ar, boost::begin(chain_convert_l(tmp1)(ar2)(ar3)));            \
+    check_values_impl(                                                         \
+        a1  ,  b1  ,  c1  ,ar2[0],ar2[1],ar2[2],ar3[0],ar3[1]);                \
+    boost::copy(ar, boost::begin(chain_convert_l(tmp1)(ar2)(tmp3)));           \
+    check_values_impl(                                                         \
+        a1  ,  b1  ,  c1  ,ar2[0],ar2[1],ar2[2],  g1  ,  h1  );                \
+    boost::copy(ar, boost::begin(chain_convert_l(tmp1)(tmp2)(ar3)));           \
+    check_values_impl(                                                         \
+        a1  ,  b1  ,  c1  ,  d1  ,  e1  ,  f1  ,ar3[0],ar3[1]);                \
+    boost::copy(ar, boost::begin(chain_convert_l(tmp1)(tmp2)(tmp3)));          \
+    check_values_impl(                                                         \
+        a1  ,  b1  ,  c1  ,  d1  ,  e1  ,  f1  ,  g1  ,  h1  );                \
 }                                                                              \
 /**/
 
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/constants.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/constants.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/constants.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -8,28 +8,123 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_CONSTANTS_ER_2010_HPP
 #define BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_CONSTANTS_ER_2010_HPP
+#include <boost/next_prior.hpp>
+#include <boost/range.hpp>
+#include <boost/array.hpp>
 
 namespace boost{                                                               
 namespace assign{                                                              
 namespace detail{                                                              
 namespace auto_size{                                                           
 
-     namespace check_constants{
+namespace check_constants{
      
-        const int a = 1;
-        const int b = 5;
-        const int c = 3;
-        const int d = 4;
-        const int e = 2;
-        const int f = 9;
-        const int g = 0;
-        const int h = 7;
+    const int a = 1;    // 1
+    const int b = 5;    // 5
+    const int c = 3;    // 3
+    const int d = 4;    // 4
+    const int e = 2;    // 2
+    const int f = 9;    // 7
+    const int g = 0;    // 0
+    const int h = 7;    // 6
 
-    }
+    // array    
+    boost::array<int,8> array(){                                              
+        typedef boost::array<int,8> ar_;
+        ar_ ar;
+        ar[0] = a; ar[1] = b; ar[2] = c;                                           
+        ar[3] = d; ar[4] = e; ar[5] = f;                                           
+        ar[6] = g; ar[7] = h;                                                      
+        return ar;
+    }    
     
+    // values 
+
+    template<typename T>
+    void check_values_impl(
+        const T& a1,const T& b1,const T& c1,const T& d1,
+        const T& e1,const T& f1,const T& g1,const T& h1
+    )
+    {                                                                              
+        using namespace check_constants;                                           
+        BOOST_ASSIGN_CHECK_EQUAL(a , a1 );                                         
+        BOOST_ASSIGN_CHECK_EQUAL(b , b1 );                                          
+        BOOST_ASSIGN_CHECK_EQUAL(c , c1 );                                          
+        BOOST_ASSIGN_CHECK_EQUAL(d , d1 );                                          
+        BOOST_ASSIGN_CHECK_EQUAL(e , e1 );                                          
+        BOOST_ASSIGN_CHECK_EQUAL(f , f1 );                                          
+        BOOST_ASSIGN_CHECK_EQUAL(g , g1 );                                          
+        BOOST_ASSIGN_CHECK_EQUAL(h , h1 );                                          
+    }                                                                  
+
+    template<typename T>
+    void check_sorted_values_impl(
+        const T& a1,const T& b1,const T& c1,const T& d1,
+        const T& e1,const T& f1,const T& g1,const T& h1
+    )
+    {                                                                              
+        using namespace check_constants;                                           
+        BOOST_ASSIGN_CHECK_EQUAL(a1, g);                           
+        BOOST_ASSIGN_CHECK_EQUAL(b1, a);                           
+        BOOST_ASSIGN_CHECK_EQUAL(c1, e);                           
+        BOOST_ASSIGN_CHECK_EQUAL(d1, c);                           
+        BOOST_ASSIGN_CHECK_EQUAL(e1, d);                           
+        BOOST_ASSIGN_CHECK_EQUAL(f1, b);                           
+        BOOST_ASSIGN_CHECK_EQUAL(g1, h);                           
+        BOOST_ASSIGN_CHECK_EQUAL(h1, f);                           
+    }                                                                  
+
+    // iterators
+    
+    template<typename It>
+    void check_iterator_impl(It it)
+    {                                                                              
+        using namespace check_constants;                                           
+        check_values_impl(
+            *boost::next(it,0),
+            *boost::next(it,1),
+            *boost::next(it,2),
+            *boost::next(it,3),
+            *boost::next(it,4),
+            *boost::next(it,5),
+            *boost::next(it,6),
+            *boost::next(it,7)
+        );
+    }                                                                              
+
+    template<typename It>
+    void check_iterator_sorted_impl(It it)
+    {                                                                              
+        using namespace check_constants;                                           
+        check_sorted_values_impl(
+            *boost::next(it,0),
+            *boost::next(it,1),
+            *boost::next(it,2),
+            *boost::next(it,3),
+            *boost::next(it,4),
+            *boost::next(it,5),
+            *boost::next(it,6),
+            *boost::next(it,7)
+        );
+    }                                                                              
+
+    // array
+
+    template<typename A>
+    void check_array_impl(const A& ar)
+    {                                                                              
+        BOOST_ASSIGN_CHECK_EQUAL( ar.empty() , false );
+        using namespace check_constants;
+        check_values_impl(
+           ar[0],ar[1],ar[2],ar[3],
+           ar[4],ar[5],ar[6],ar[7]
+        );                           
+    }                                           
+
+}// check_constants
 }// auto_size
 }// detail
 }// assign
 }// boost    
     
-#endif
\ No newline at end of file
+#endif
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/converter.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/converter.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/converter.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -24,17 +24,7 @@
         using namespace boost::assign;                                             \
     using namespace check_constants;                                           \
     C elems = BOOST_ASSIGN_AS_CHECK_cref8(a,b,c,d,e,f,g,h);                    \
-    typedef typename boost::range_iterator<const C>::type it_;                 \
-    it_ it = boost::begin(elems);                                              \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , a); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , b); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , c); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , d); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , e); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , f); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , g); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , h); ++it;                                   \
-    BOOST_ASSIGN_CHECK_EQUAL(it==it_(boost::end(elems)) ,true );               \
+    check_iterator_impl(boost::begin(elems));                                  \
 }                                                                              \
 /**/
 
@@ -45,28 +35,7 @@
         using namespace boost::assign;                                             \
     using namespace check_constants;                                           \
     C elems = BOOST_ASSIGN_AS_CHECK_cref8(a,b,c,d,e,f,g,h);                    \
-    typedef boost::array<T,8> ar_;                                             \
-    ar_ ar;                                                                    \
-    ar[0] = a;                                                                 \
-    ar[1] = b;                                                                 \
-    ar[2] = c;                                                                 \
-    ar[3] = d;                                                                 \
-    ar[4] = e;                                                                 \
-    ar[5] = f;                                                                 \
-    ar[6] = g;                                                                 \
-    ar[7] = h;                                                                 \
-    boost::sort(ar);                                                           \
-    typedef typename boost::range_iterator<const C>::type it_;                 \
-    it_ it = boost::begin(elems);                                              \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[0]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[1]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[2]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[3]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[4]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[5]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[6]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(*it , ar[7]); ++it;                               \
-    BOOST_ASSIGN_CHECK_EQUAL(it==it_(boost::end(elems)) ,true );               \
+    check_iterator_sorted_impl(boost::begin(elems));                           \
 }                                                                              \
 /**/
 #endif
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/copy_iterator.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/copy_iterator.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/copy_iterator.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -8,41 +8,19 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_COPY_ITERATOR_ER_2010_HPP
 #define BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_COPY_ITERATOR_ER_2010_HPP
-#include <algorithm>
+#include <boost/typeof/typeof.hpp>
 #include <boost/range.hpp>
 #include <boost/range/algorithm/copy.hpp>
-#include <boost/array.hpp>
 #include <boost/assign/auto_size/check/constants.hpp>
 
-#ifndef BOOST_ASSIGN_CHECK_EQUAL
-#error
-#endif
-
-#define BOOST_ASSIGN_AS_CHECK_copy_iterator_f(arg1,arg2)                       \
-{                                                                              \
-    boost::copy(arg1,boost::begin(arg2));                                      \
-    BOOST_ASSIGN_CHECK_EQUAL(a , a1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(b , b1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(c , c1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(d , d1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(e , e1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(f , f1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(g , g1);                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(h , h1);                                          \
-}                                                                              \
-/**/
-
 #define BOOST_ASSIGN_AS_CHECK_copy_iterator                                    \
 {                                                                              \
     typedef T val_;                                                            \
     using namespace check_constants;                                           \
-    boost::array<val_,8> ar;                                                   \
-    ar[0] = a; ar[1] = b; ar[2] = c;                                           \
-    ar[3] = d; ar[4] = e; ar[5] = f;                                           \
-    ar[6] = g; ar[7] = h;                                                      \
     val_ a1, b1, c1, d1, e1, f1, g1, h1;                                       \
     BOOST_AUTO(tmp,BOOST_ASSIGN_AS_CHECK_ref8(a1,b1,c1,d1,e1,f1,g1,h1));       \
-    BOOST_ASSIGN_AS_CHECK_copy_iterator_f(ar,tmp)                              \
+    boost::copy(array(), boost::begin(tmp));                                   \
+    check_values_impl(a1,b1,c1,d1,e1,f1,g1,h1);                                \
 }                                                                              \
 /**/
 
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/check/iterator.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/check/iterator.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/check/iterator.hpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -8,34 +8,15 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_ITERATOR_ER_2010_HPP
 #define BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHECK_ITERATOR_ER_2010_HPP
-#include <boost/typeof/typeof.hpp>
-#include <boost/next_prior.hpp>
 #include <boost/range.hpp>
 #include <boost/assign/auto_size/check/constants.hpp>
 
-#ifndef BOOST_ASSIGN_CHECK_EQUAL
-#error
-#endif
-
-#define BOOST_ASSIGN_AS_CHECK_iterator_f(arg)                                  \
+#define BOOST_ASSIGN_AS_CHECK_iterator                                         \
 {                                                                              \
-    typedef T val_;                                                            \
     using namespace check_constants;                                           \
-    BOOST_AUTO(tmp,arg);                                                       \
-    BOOST_AUTO(it,boost::begin(tmp));                                          \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,0), a);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,1), b);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,2), c);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,3), d);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,4), e);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,5), f);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,6), g);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(*boost::next(it,7), h);                           \
-    BOOST_ASSIGN_CHECK_EQUAL(boost::next(it,8), boost::end(tmp));              \
+    check_iterator_impl(                                                       \
+        boost::begin( BOOST_ASSIGN_AS_CHECK_cref8(a,b,c,d,e,f,g,h)) );         \
 }                                                                              \
 /**/
 
-#define BOOST_ASSIGN_AS_CHECK_iterator BOOST_ASSIGN_AS_CHECK_iterator_f(BOOST_ASSIGN_AS_CHECK_cref8(a,b,c,d,e,f,g,h))                                      \
-
-
 #endif
Modified: sandbox/statistics/detail/assign/libs/assign/doc/compilers_tested.txt
==============================================================================
--- sandbox/statistics/detail/assign/libs/assign/doc/compilers_tested.txt	(original)
+++ sandbox/statistics/detail/assign/libs/assign/doc/compilers_tested.txt	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -1,6 +1,12 @@
 Platform                Compiler                                Boost version   Date Tested
-Mac OS X 10.6           gcc 4.2                                 boost_1_41_0    March 8th, 2010  
+Mac OS X 10.6           gcc 4.2                                 boost_1_41_0    March 19th, 2010  
 Win7-32 V6.1.7100       Dev-C++ 5.0 beta 9.2 - Mingw/GCC 3.4.2  boost_1_41_0    March 1st, 2010
 Win7-32 V6.1.7100       Visual Studio 2010                      boost_1_41_0    March 1st, 2010
 
-Check revision_history.txt to verify that these tests are up to date.
\ No newline at end of file
+Check revision_history.txt to verify that these tests are up to date.
+See patch.txt for requirements.
+
+March 19th/OSX:
+/trunk/libs/assign/test$ sudo bjam toolset=darwin debug
+**passed** ../../../bin.v2/libs/assign/test/ref_list_of.test/darwin-4.2.1/debug/ref_list_of.test
+**passed** ../../../bin.v2/libs/assign/test/ref_csv.test/darwin-4.2.1/debug/ref_csv.test
\ No newline at end of file
Modified: sandbox/statistics/detail/assign/libs/assign/doc/patch.txt
==============================================================================
--- sandbox/statistics/detail/assign/libs/assign/doc/patch.txt	(original)
+++ sandbox/statistics/detail/assign/libs/assign/doc/patch.txt	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -1,3 +1,5 @@
+Boost.RangeEx must be in the release.
+
 Add -R /boost/assign/auto_size
 Add /boost/auto_size.hpp
 Add /boost/chain_convert.hpp
Modified: sandbox/statistics/detail/assign/libs/assign/src/main.cpp
==============================================================================
--- sandbox/statistics/detail/assign/libs/assign/src/main.cpp	(original)
+++ sandbox/statistics/detail/assign/libs/assign/src/main.cpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -9,9 +9,9 @@
 
      using namespace boost::assign::detail::auto_size;
 
-     check_ref_list_of<int>();
+     check_ref_list_of_int();
      std::cout << "check_ref_list_of : ok" << std::endl;
-     check_ref_csv<int>();
+     check_ref_csv_int();
      std::cout << "check_csv : ok" << std::endl;
 
     example_chain(std::cout);
Modified: sandbox/statistics/detail/assign/libs/assign/test/ref_csv.cpp
==============================================================================
--- sandbox/statistics/detail/assign/libs/assign/test/ref_csv.cpp	(original)
+++ sandbox/statistics/detail/assign/libs/assign/test/ref_csv.cpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -13,22 +13,19 @@
 #  pragma warn -8057 // unused argument argc/argv in Boost.Test
 #endif
 
+#include <iostream> //apparently needed
 #include <boost/test/test_tools.hpp>
 #define BOOST_ASSIGN_CHECK_EQUAL(a,b) BOOST_CHECK_EQUAL(a,b)
 #include <boost/assign/auto_size/check/ref_csv.hpp>
-
-void check_ref_csv()
-{
-    boost::assign::detail::auto_size::check_ref_csv<int>();      
-}
 #include <boost/test/unit_test.hpp>
 using boost::unit_test::test_suite;
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
 {
     test_suite* test = BOOST_TEST_SUITE( "List Test Suite" );
-
-    test->add( BOOST_TEST_CASE( &check_ref_csv ) );
+    
+    using namespace boost::assign::detail::auto_size;
+    test->add( BOOST_TEST_CASE( &check_ref_csv_int ) );
 
     return test;
 }
Modified: sandbox/statistics/detail/assign/libs/assign/test/ref_list_of.cpp
==============================================================================
--- sandbox/statistics/detail/assign/libs/assign/test/ref_list_of.cpp	(original)
+++ sandbox/statistics/detail/assign/libs/assign/test/ref_list_of.cpp	2010-03-19 19:40:25 EDT (Fri, 19 Mar 2010)
@@ -1,11 +1,4 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::test::ref_list_of.cpp                                            //
-//                                                                          //
-//  (C) Copyright 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
+
 #include <boost/detail/workaround.hpp>
 
 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
@@ -17,21 +10,19 @@
 #include <boost/test/test_tools.hpp>
 #define BOOST_ASSIGN_CHECK_EQUAL(a,b) BOOST_CHECK_EQUAL(a,b)
 #include <boost/assign/auto_size/check/ref_list_of.hpp>
-
-void check_ref_list_of()
-{
-    boost::assign::detail::auto_size::check_ref_list_of<int>();      
-}
 #include <boost/test/unit_test.hpp>
 using boost::unit_test::test_suite;
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
 {
     test_suite* test = BOOST_TEST_SUITE( "List Test Suite" );
-
-    test->add( BOOST_TEST_CASE( &check_ref_list_of ) );
+    using namespace boost::assign::detail::auto_size;
+    test->add( BOOST_TEST_CASE( &check_ref_list_of_int ) );
 
     return test;
 }
 
+
 #undef BOOST_ASSIGN_CHECK_EQUAL
+
+