Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67833 - in sandbox/statistics/support/boost/assign/v2/put/pipe: . csv csv/cpp03 csv/cpp0x functor functor/cpp03 functor/cpp0x
From: erwann.rogard_at_[hidden]
Date: 2011-01-08 20:54:08


Author: e_r
Date: 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
New Revision: 67833
URL: http://svn.boost.org/trac/boost/changeset/67833

Log:
addg to boost/assign/v2
Added:
   sandbox/statistics/support/boost/assign/v2/put/pipe/
   sandbox/statistics/support/boost/assign/v2/put/pipe/convert.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/container.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/generator.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/keyword.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/operator.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/forward_pars.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/container.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp03/
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp03/forward.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp0x/
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp0x/forward.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/forward.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/keyword.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/functor/operator.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp (contents, props changed)

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/convert.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/convert.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,44 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_CONVERT_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_CONVERT_ER_2010_HPP
+#include <boost/assign/v2/put/pipe/range.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_convert_aux
+{
+ template<typename To>
+ struct adaptor
+ {
+ adaptor(){}
+ };
+
+ template<typename From,typename To>
+ To operator|(From& from, put_convert_aux::adaptor<To> const& dummy)
+ {
+ To to;
+ return to | v2::_put_range( from );
+ }
+
+}// convert_aux
+
+ template<typename To>
+ put_convert_aux::adaptor<To> put_convert()
+ {
+ return put_convert_aux::adaptor<To>();
+ }
+
+}// v2
+}// assign
+}// boost
+
+#endif

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,18 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_ER_2010_HPP
+
+#include <boost/assign/v2/put/pipe/csv/container.hpp>
+#include <boost/assign/v2/put/pipe/csv/generator.hpp>
+#include <boost/assign/v2/put/pipe/csv/keyword.hpp>
+#include <boost/assign/v2/put/pipe/csv/operator.hpp>
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/container.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,66 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_CONTAINER_HPP_ER_2010
+#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_CONTAINER_HPP_ER_2010
+#include <boost/mpl/apply.hpp>
+#include <boost/assign/v2/ref/array/csv.hpp>
+#include <boost/assign/v2/ref/fusion/assign_copy.hpp>
+
+namespace boost{
+ struct use_default;
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<typename Pars, int N, typename U>
+ struct csv_container
+ {
+ typedef boost::use_default tag2_;
+ typedef v2::ref::assign_copy::nth_result_of::fusion<tag2_> meta1_;
+ typedef typename boost::mpl::apply1<
+ meta1_,
+ Pars
+ >::type pars_cont_type;
+ typedef typename v2::ref::nth_result_of::csv_array<
+ N,
+ U
+ >::type seq_arg_cont_type;
+
+ csv_container(){}
+ csv_container(pars_cont_type const& p, seq_arg_cont_type const& s)
+ : pars_cont( p ), seq_arg( s ){}
+
+ pars_cont_type const& pars()const
+ {
+ return this->pars_cont;
+ }
+
+ seq_arg_cont_type const& seq_args()const
+ {
+ return this->seq_arg;
+ }
+ seq_arg_cont_type& seq_args()
+ {
+ return this->seq_arg;
+ }
+
+ protected:
+ pars_cont_type pars_cont;
+ seq_arg_cont_type seq_arg;
+
+ };
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif
+

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,101 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP03_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP03_FORWARD_ER_2010_HPP
+#include <boost/preprocessor/repetition.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/assign/v2/ref/list_tuple.hpp>
+#include <boost/tuples/tuple.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ // --- Tuple --- //
+
+#define MACRO1(z, I, data) ::boost::get<I>( data ).unwrap()
+#define MACRO(z, N, data)\
+ template<typename F, BOOST_PP_ENUM_PARAMS(N, typename T)>\
+ void forward(\
+ F& f,\
+ ::boost::tuple<BOOST_PP_ENUM_PARAMS(N, T)> const& t\
+ )\
+ {\
+ f( BOOST_PP_ENUM(N, MACRO1, t) );\
+ }\
+/**/
+BOOST_PP_REPEAT(
+ BOOST_PP_INC(BOOST_PP_ASSIGN_V2_LIMIT_ARITY),
+ MACRO,
+ ~
+)
+
+ // --- List --- //
+
+ template<
+ typename F,
+ int N, typename L, params(typename T)
+ >
+ void forward(
+ F& f ,
+ boost::mpl::int_<N>,
+ ref::list_tuple_aux::container<N, L, params(T)> const& list
+ )
+ {}
+
+ template<
+ typename F,
+ int I, int N, typename L, params(typename T)
+ >
+ void forward(
+ F& f ,
+ boost::mpl::int_<I>,
+ ref::list_tuple_aux::container<N, L, params(T)> const& list
+ )
+ {
+ {
+ typedef boost::mpl::int_<I> int_;
+ forward( f, list.get( int_() ) );
+ }
+ {
+ typedef boost::mpl::int_<I+1> next_;
+ forward( f, next_(), list );
+ }
+ }
+
+ // ------------ //
+
+ template<typename F, typename L>
+ void forward(
+ F& f ,
+ ref::list_tuple_aux::container<
+ 0,
+ L,
+ params(list_tuple_aux::na_)
+ > const& list
+ ){}
+
+ template<typename F, int N, typename L, params(T)>
+ void forward(
+ F& f,
+ ref::list_tuple_aux::container<N, L, params(T)> const& list
+ )
+ {
+ typedef boost::mpl::int_<0> int_;
+ forward(f, int_(), list);
+ }
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,103 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP0X_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP0X_FORWARD_ER_2010_HPP
+#include <boost/mpl/size.hpp>
+#include <boost/assign/v2/ref/tuple/cpp0x.hpp>
+#include <boost/assign/v2/ref/list_tuple.hpp>
+#include <boost/assign/v2/temporary/variadic_args_to_indices.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ // --- Tuple --- //
+
+ template<typename F, typename T, typename I, I ...Values>
+ void forward(
+ F& f,
+ T const& t,
+ ::boost::mpl::er2010::indices<I, Values...>
+ )
+ {
+ f( get<Values>( t )... );
+ }
+
+ template<typename F, typename ...Args>
+ void forward(
+ F& f,
+ ref::tuple_aux::container<Args...> const& t
+ )
+ {
+ typedef typename ::boost::mpl::er2010::args_to_indices<
+ int,
+ Args...
+ >::type indices_;
+ forward( f, t, indices_() );
+ }
+
+ // --- List --- //
+
+ template<
+ typename F,
+ int N, typename L, typename...Args
+ >
+ void forward(
+ F& f ,
+ boost::mpl::int_<N>,
+ ref::list_tuple_aux::container<N, L, Args...> const& list
+ )
+ {}
+
+ template<
+ typename F,
+ int I, int N, typename L, typename...Args
+ >
+ void forward(
+ F& f ,
+ boost::mpl::int_<I>,
+ ref::list_tuple_aux::container<N, L, Args...> const& list
+ )
+ {
+ {
+ typedef boost::mpl::int_<I> int_;
+ forward( f, list.get( int_() ) );
+ }
+ {
+ typedef boost::mpl::int_<I+1> next_;
+ forward( f, next_(), list );
+ }
+ }
+
+ // ------------ //
+
+ template<typename F, typename L>
+ void forward(
+ F& f ,
+ ref::list_tuple_aux::container<0, L> const& list
+ ){}
+
+ template<typename F, int N, typename L, typename...Args>
+ void forward(
+ F& f,
+ ref::list_tuple_aux::container<N, L, Args...> const& list
+ )
+ {
+ typedef boost::mpl::int_<0> int_;
+ forward(f, int_(), list);
+ }
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,55 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_ADAPTOR_CSV_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_ADAPTOR_CSV_FORWARD_ER_2010_HPP
+#include <boost/utility/enable_if.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<std::size_t N, std::size_t I, typename F, typename C>
+ typename boost::enable_if_c<
+ N == I
+ >::type
+ csv_forward(
+ F const& f ,
+ C const& c
+ )
+ {}
+
+ template<std::size_t N, std::size_t I, typename F, typename C>
+ typename boost::enable_if_c<
+ I < N
+ >::type
+ csv_forward(
+ F const& f ,
+ C const& c
+ )
+ {
+ f( c[ I ] );
+ csv_forward<N, I+1>(f, c);
+ }
+
+ template<typename F, typename C>
+ void csv_forward(
+ F const& f ,
+ C const& c
+ ){
+ csv_forward<C::static_size, 0>(f, c );
+ }
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_ADAPTOR_CSV_FORWARD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/generator.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/generator.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,185 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_GENERATOR_HPP_ER_2010
+#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_GENERATOR_HPP_ER_2010
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/push_back.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/vector/vector0.hpp>
+
+#include <boost/assign/v2/ref/array/csv.hpp>
+#include <boost/assign/v2/ref/fusion/nth_result_of.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+#include <boost/assign/v2/put/pipe/csv/container.hpp>
+
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+
+// do nothing
+
+#else
+
+#include <boost/mpl/aux_/na.hpp>
+#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+
+#endif
+
+namespace boost{
+ struct use_default;
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<typename Pars = boost::mpl::vector0<> >
+ class csv_generator
+ {
+
+ typedef boost::use_default tag2_;
+ typedef v2::ref::assign_copy::nth_result_of::fusion<tag2_> meta1_;
+
+ typedef boost::mpl::na na_;
+
+ public:
+
+ BOOST_STATIC_CONSTANT(
+ std::size_t,
+ static_parameters_size = boost::mpl::size<Pars>::value
+ );
+
+ typedef typename boost::mpl::apply1<
+ meta1_,
+ Pars
+ >::type pars_cont_type;
+
+ csv_generator(){}
+ explicit csv_generator(pars_cont_type const& p)
+ : pars_cont( p ){}
+
+ template<typename T>
+ struct modulo_result
+ {
+ typedef typename boost::mpl::push_back<
+ Pars,
+ T const
+ >::type new_;
+ typedef csv_generator<new_> type;
+ };
+
+ template<typename T>
+ typename modulo_result<T>::type
+ operator%(T const& t)const
+ {
+ typedef typename modulo_result<T>::type result_;
+ return result_( this->pars_cont( t ) );
+ }
+
+ template<std::size_t N, typename U = na_>
+ struct result{
+ typedef put_pipe_aux::csv_container<Pars, N, U> type;
+ };
+
+ typename result<0>::type
+ operator()()const
+ {
+ typedef typename result<0>::type result_;
+ return result_(
+ *this,
+ ref::csv_array<na_>( _nil )
+ );
+ }
+
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+
+ protected:
+ template<typename T, typename...Args>
+ typename result<sizeof...(Args)+1, T>::type
+ impl(T& t, Args&...args)const
+ {
+ typedef typename result<sizeof...(Args)+1, T>::type result_;
+ namespace ns = ref::assign_copy;
+ return result_(
+ this->pars_cont,
+ ref::csv_array( t, args... )
+ );
+ }
+
+ public:
+
+ template<typename T, typename...Args>
+ typename boost::lazy_disable_if<
+ v2::type_traits::or_const<T, Args...>,
+ result<sizeof...(Args)+1, T>
+ >::type
+ operator()(T& t, Args&...args)const
+ {
+ return this->impl(t, args...);
+ }
+
+ template<typename T, typename...Args>
+ typename result<sizeof...(Args)+1, T const>::type
+ operator()(T const& t, Args const&...args)const
+ {
+ return this->impl(t, args...);
+ }
+
+#else
+
+#define MACRO1(N, U)\
+ return result_( \
+ this->pars_cont, \
+ ref::csv_array<U>( BOOST_PP_ENUM_PARAMS(N, _) ) \
+ );\
+/**/
+
+#define MACRO2(z, N, data)\
+ template<typename T>\
+ typename result<N, T>::type\
+ operator()( BOOST_PP_ENUM_PARAMS(N, T &_) )const \
+ { \
+ typedef typename result<N, T>::type result_;\
+ MACRO1( N, T )\
+ } \
+ template<typename T>\
+ typename result<N, T const>::type\
+ operator()( BOOST_PP_ENUM_PARAMS(N, T const &_) )const \
+ { \
+ typedef typename result<N, T const>::type result_;\
+ MACRO1( N, T const )\
+ } \
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+ MACRO2,
+ ~
+)
+#undef MACRO1
+#undef MACRO2
+
+#endif
+
+ protected:
+ pars_cont_type pars_cont;
+
+ };
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_CONTAINER_HPP_ER_2010

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/keyword.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/keyword.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,27 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_KEYWORD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_KEYWORD_ER_2010_HPP
+#include <boost/assign/v2/put/pipe/csv/generator.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace{
+
+ put_pipe_aux::csv_generator<> const _csv_put
+ = put_pipe_aux::csv_generator<>();
+
+}
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_CONTAINER_HPP_ER_2010

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/operator.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,44 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_OPERATOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_OPERATOR_ER_2010_HPP
+#include <boost/assign/v2/put/pipe/forward_pars.hpp>
+#include <boost/assign/v2/put/pipe/csv/container.hpp>
+#include <boost/assign/v2/put/pipe/csv/forward.hpp>
+#include <boost/assign/v2/put/sub/csv.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<typename V, typename Pars, int N, typename U>
+ V& operator|(
+ V& v,
+ put_pipe_aux::csv_container<Pars, N, U> const& c
+ ){
+
+ csv_forward(
+ forward_pars<Pars>(
+ put( v ),
+ c.pars()
+ ),
+ c.seq_args()
+ );
+ return v;
+
+ }
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/forward_pars.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/forward_pars.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,87 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FORWARD_PARS_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FORWARD_PARS_ER_2010_HPP
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<std::size_t N, typename Pars, typename T,
+ bool exit = (N == boost::mpl::size<Pars>::value)>
+ struct result_of_forward_pars
+ {
+ typedef typename boost::mpl::at_c<Pars, N>::type at_;
+ typedef result_of_modulo::generic<T> meta_;
+ typedef typename boost::mpl::apply1<meta_, at_>::type new_t_;
+
+ typedef result_of_forward_pars<N+1, Pars, new_t_> next_;
+
+ typedef typename next_::type type;
+
+ template<typename H>
+ static type call(H const& h, T const& t)
+ {
+ typedef boost::mpl::int_<N> int_;
+ return next_::call(
+ h,
+ t % h.static_lookup( int_() )
+ );
+ }
+
+ };
+
+ template<std::size_t N,typename Pars, typename T>
+ struct result_of_forward_pars<N, Pars, T, true>
+ {
+
+ typedef T type;
+
+ template<typename H>
+ static type call(H const& h, T const& t)
+ {
+ return t;
+ }
+
+ };
+
+ template<typename Pars, typename T,typename C>
+ typename result_of_forward_pars<0, Pars, T>::type
+ forward_pars(
+ T const& object,
+ C const& c
+ )
+ {
+ typedef result_of_forward_pars<0, Pars, T> caller_;
+ return caller_::call( c, object );
+ }
+
+}// put_pipe_aux
+namespace result_of{
+
+ template<typename T,typename Pars>
+ struct forward_pars : put_pipe_aux::result_of_forward_pars<
+ 0,
+ Pars,
+ T
+ >{};
+
+}// result_of
+}// v2
+}// assign
+}// boost
+
+#endif

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,19 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_ER_2010_HPP
+
+#include <boost/assign/v2/put/pipe/functor/container.hpp>
+#include <boost/assign/v2/put/pipe/functor/keyword.hpp>
+#include <boost/assign/v2/put/pipe/functor/forward.hpp>
+#include <boost/assign/v2/put/pipe/functor/operator.hpp>
+#include <boost/assign/v2/put/pipe/functor/sub.hpp>
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor/container.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor/container.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,282 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CONTAINER_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CONTAINER_ER_2010_HPP
+#include <boost/mpl/vector/vector0.hpp>
+#include <boost/mpl/size.hpp>
+#include <boost/mpl/push_back.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/unpack_args.hpp>
+
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/fusion.hpp>
+#include <boost/assign/v2/ref/list_tuple.hpp>
+
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <utility>
+#include <boost/assign/v2/temporary/variadic_vector.hpp>
+#else
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repetition.hpp>
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+#endif
+
+namespace boost{
+ struct use_default;
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<
+ typename Pars = boost::mpl::vector0<>,
+ typename SeqArgs = boost::mpl::vector0<>,
+ bool enable_pars = (boost::mpl::size<SeqArgs>::value == 0)
+ >
+ class container;
+
+ template<typename Pars, typename SeqArgs, bool enable_pars>
+ struct container_result_helper
+ {
+
+ template<typename V>
+ struct apply
+ {
+ typedef typename boost::mpl::push_back<
+ SeqArgs,
+ V
+ >::type new_;
+ typedef put_pipe_aux::container<
+ Pars,
+ new_
+ > type;
+ };
+
+ };
+
+#if! BOOST_ASSIGN_V2_ENABLE_CPP0X
+ typedef ref::list_tuple_aux::na_type na_type;
+#endif
+
+ template<typename Pars, typename SeqArgs, bool enable_pars>
+ struct container_result
+ {
+ typedef container_result_helper<
+ Pars,
+ SeqArgs,
+ enable_pars
+ > helper_;
+
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+
+ template<typename...Args>
+ struct apply : helper_::template apply<
+ typename boost::mpl::detail::variadic_vector<
+ Args...
+ >::type
+ >
+ {};
+
+#else
+
+ template<typename V>
+ struct apply : helper_::template apply<V>{};
+
+#endif
+
+ };
+
+
+ template<typename Pars, typename SeqArgs, bool enable_pars>
+ class container
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//do nothing
+#else
+ : public functor_aux::crtp_unary_and_up<
+ container<Pars, SeqArgs, enable_pars>,
+ container_result<Pars, SeqArgs, enable_pars>
+ >
+#endif
+ {
+ typedef boost::use_default tag2_;
+ typedef ref::assign_copy::nth_result_of::fusion<tag2_> meta1_;
+ typedef ref::nth_result_of::list_tuple meta2_;
+
+ public:
+
+ BOOST_STATIC_CONSTANT(
+ std::size_t,
+ static_pars_size = boost::mpl::size<Pars>::value
+ );
+
+ BOOST_STATIC_CONSTANT(
+ std::size_t,
+ seq_args_size = boost::mpl::size<SeqArgs>::value
+ );
+
+ typedef typename boost::mpl::apply1<
+ meta1_,
+ Pars
+ >::type pars_cont_type;
+ typedef typename boost::mpl::apply1<
+ meta2_,
+ SeqArgs
+ >::type seq_args_cont_type;
+
+ container(){}
+ explicit container(
+ pars_cont_type const& p,
+ seq_args_cont_type const& s
+ ) : pars_cont( p ),
+ seq_args_cont( s ){}
+
+ // operator%
+
+ template<typename T>
+ struct modulo_result
+ {
+ typedef typename boost::mpl::push_back<
+ Pars,
+ T const
+ >::type new_;
+ typedef container<new_, SeqArgs> type;
+ };
+
+ template<typename T>
+ typename boost::lazy_enable_if_c<
+ enable_pars,
+ modulo_result<T>
+ >::type
+ operator%(T const& t)const
+ {
+ typedef typename modulo_result<T>::type result_;
+ return result_(
+ this->pars_cont( t ),
+ this->seq_args_cont
+ );
+ }
+
+ // operator()
+
+ template<
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+ typename...Args
+#else
+ typename VArgs
+#endif
+ >
+ struct result : container_result<
+ Pars,
+ SeqArgs,
+ enable_pars
+ >::template apply<
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+ Args...
+#else
+ VArgs
+#endif
+ >{};
+
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+
+ public:
+
+ template<typename ...Args>
+ typename result<Args...>::type
+ operator()(Args&&...args )const
+ {
+ typedef typename result<Args...>::type result_;
+ return result_(
+ this->pars_cont,
+ this->seq_args_cont(
+ std::forward<Args>( args )...
+ )
+ );
+ }
+
+#else
+ protected:
+
+ typedef functor_aux::crtp_unary_and_up<
+ container,
+ container_result<Pars, SeqArgs, enable_pars>
+ > super_t;
+
+ typedef boost::mpl::vector0<> v0_;
+
+ public:
+
+ typename result<v0_>::type
+ operator()()const
+ {
+ typedef typename result<v0_>::type result_;
+ return result_(
+ this->pars_cont,
+ this->seq_args_cont()
+ );
+ }
+
+ using super_t::operator();
+
+#define MACRO1( z, n, data )\
+ ( BOOST_PP_CAT(_,n) )\
+/**/
+#define MACRO2(z, N1, data)\
+ template<BOOST_PP_ENUM_PARAMS(N1, typename U)>\
+ typename result<\
+ boost::mpl::vector<\
+ BOOST_PP_ENUM_PARAMS(N1, U)\
+ >\
+ >::type\
+ impl( BOOST_PP_ENUM_BINARY_PARAMS(N1, U, &_) )const{\
+ typedef boost::mpl::vector<\
+ BOOST_PP_ENUM_PARAMS(N1, U)\
+ > v_;\
+ typedef typename result<v_>::type result_;\
+ return result_(\
+ this->pars_cont,\
+ this->seq_args_cont( BOOST_PP_ENUM_PARAMS(N1, _) )\
+ );\
+ }\
+/**/
+BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+ MACRO2,
+ ~
+)
+#undef MACRO1
+#undef MACRO2
+
+#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+
+ pars_cont_type const& pars()const
+ {
+ return this->pars_cont;
+ }
+ seq_args_cont_type const& seq_args()const
+ {
+ return this->seq_args_cont;
+ }
+
+ protected:
+
+ pars_cont_type pars_cont;
+ seq_args_cont_type seq_args_cont;
+
+ };
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_CONTAINER_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp03/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp03/forward.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,108 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP03_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP03_FORWARD_ER_2010_HPP
+#include <boost/preprocessor/repetition.hpp>
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/ref/list_tuple.hpp>
+#include <boost/assign/v2/detail/config/limit_arity.hpp>
+#include <boost/tuple/tuple.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ // --- Tuple --- //
+
+#define MACRO1(z, I, data) ::boost::get<I>( data )
+#define MACRO(z, N, data)\
+ template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
+ void forward(\
+ F const& f,\
+ ::boost::tuples::tuple<BOOST_PP_ENUM_PARAMS(N, T)> const& t\
+ )\
+ {\
+ f( BOOST_PP_ENUM(N, MACRO1, t) );\
+ }\
+/**/
+BOOST_PP_REPEAT(
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
+ MACRO,
+ ~
+)
+#undef MACRO1
+#undef MACRO
+ // --- List --- //
+
+#define params(T) BOOST_PP_ENUM_PARAMS(BOOST_ASSIGN_V2_LIMIT_ARITY,T)
+
+ template<
+ typename F,
+ int N, typename L, params(typename T)
+ >
+ void forward(
+ F const& f ,
+ boost::mpl::int_<N>,
+ ref::list_tuple_aux::container<N, L, params(T)> const& list
+ )
+ {}
+
+ template<
+ typename F,
+ int I, int N, typename L, params(typename T)
+ >
+ void forward(
+ F const& f ,
+ boost::mpl::int_<I>,
+ ref::list_tuple_aux::container<N, L, params(T)> const& list
+ )
+ {
+ {
+ typedef boost::mpl::int_<I> int_;
+ forward( f, list.get( int_() ) );
+ }
+ {
+ typedef boost::mpl::int_<I+1> next_;
+ forward( f, next_(), list );
+ }
+ }
+
+ // ------------ //
+
+ template<typename F, typename L>
+ void forward(
+ F const& f ,
+ ref::list_tuple_aux::container<
+ 0,
+ L
+ > const& list
+ ){}
+
+ template<typename F, int N, typename L, params(typename T)>
+ void forward(
+ F const& f,
+ ref::list_tuple_aux::container<N, L, params(T)> const& list
+ )
+ {
+ typedef boost::mpl::int_<0> int_;
+ forward(f, int_(), list);
+ }
+
+#undef params
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp0x/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor/cpp0x/forward.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,103 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP0X_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP0X_FORWARD_ER_2010_HPP
+#include <boost/mpl/size.hpp>
+#include <boost/assign/v2/ref/tuple/cpp0x.hpp>
+#include <boost/assign/v2/ref/list_tuple.hpp>
+#include <boost/assign/v2/temporary/variadic_args_to_indices.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ // --- Tuple --- //
+
+ template<typename F, typename T, typename I, I ...Values>
+ void forward(
+ F const& f,
+ T const& t,
+ ::boost::mpl::er2010::indices<I, Values...>
+ )
+ {
+ f( get<Values>( t )... );
+ }
+
+ template<typename F, typename ...Args>
+ void forward(
+ F const& f,
+ ref::tuple_aux::container<Args...> const& t
+ )
+ {
+ typedef typename ::boost::mpl::er2010::args_to_indices<
+ int,
+ Args...
+ >::type indices_;
+ forward( f, t, indices_() );
+ }
+
+ // --- List --- //
+
+ template<
+ typename F,
+ int N, typename L, typename...Args
+ >
+ void forward(
+ F const& f ,
+ boost::mpl::int_<N>,
+ ref::list_tuple_aux::container<N, L, Args...> const& list
+ )
+ {}
+
+ template<
+ typename F,
+ int I, int N, typename L, typename...Args
+ >
+ void forward(
+ F const& f ,
+ boost::mpl::int_<I>,
+ ref::list_tuple_aux::container<N, L, Args...> const& list
+ )
+ {
+ {
+ typedef boost::mpl::int_<I> int_;
+ forward( f, list.get( int_() ) );
+ }
+ {
+ typedef boost::mpl::int_<I+1> next_;
+ forward( f, next_(), list );
+ }
+ }
+
+ // ------------ //
+
+ template<typename F, typename L>
+ void forward(
+ F const& f ,
+ ref::list_tuple_aux::container<0, L> const& list
+ ){}
+
+ template<typename F, int N, typename L, typename...Args>
+ void forward(
+ F const& f,
+ ref::list_tuple_aux::container<N, L, Args...> const& list
+ )
+ {
+ typedef boost::mpl::int_<0> int_;
+ forward(f, int_(), list);
+ }
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor/forward.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,20 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_ADAPTOR_FUNCTOR_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_ADAPTOR_FUNCTOR_FORWARD_ER_2010_HPP
+
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <boost/assign/v2/put/pipe/functor/cpp0x/forward.hpp>
+#else
+#include <boost/assign/v2/put/pipe/functor/cpp03/forward.hpp>
+#endif
+
+#endif // BOOST_ASSIGN_V2_ADAPTOR_FUNCTOR_FORWARD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor/keyword.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor/keyword.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,27 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_KEYWORD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_KEYWORD_ER_2010_HPP
+#include <boost/assign/v2/put/pipe/functor/container.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace{
+
+ put_pipe_aux::container<> const _put
+ = put_pipe_aux::container<>();
+
+}
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_KEYWORD_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/functor/operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/functor/operator.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,47 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_OPERATOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_OPERATOR_ER_2010_HPP
+#include <boost/assign/v2/put/pipe/forward_pars.hpp>
+#include <boost/assign/v2/put/pipe/functor/container.hpp>
+#include <boost/assign/v2/put/pipe/functor/forward.hpp>
+#include <boost/assign/v2/put/sub/functor.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<
+ typename V,
+ typename Pars,
+ typename SeqArgs,
+ bool enable_pars
+ >
+ V& operator|(
+ V& v,
+ put_pipe_aux::container<Pars, SeqArgs, enable_pars> const& c
+ ){
+ forward(
+ forward_pars<Pars>(
+ put( v ),
+ c.pars()
+ ),
+ c.seq_args()
+ );
+ return v;
+ }
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif

Added: sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp 2011-01-08 20:54:04 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,64 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_RANGE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_RANGE_ER_2010_HPP
+#include <boost/range/algorithm/for_each.hpp>
+#include <boost/assign/v2/put/sub/functor.hpp>
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_range_aux
+{
+ template<typename From>
+ class adaptor1 : ref::wrapper<ref::assign_tag::copy, From const>
+ {
+ typedef ref::wrapper<ref::assign_tag::copy, From const> super_t;
+
+ public:
+
+ adaptor1(From const& from) : super_t(from){}
+
+ From const& from()const{ return this->unwrap(); }
+
+ private:
+ adaptor1();
+ };
+
+ struct adaptor2
+ {
+ adaptor2(){}
+ template<typename From>
+ adaptor1<From> operator()(const From& from)const
+ {
+ typedef adaptor1<From> result_;
+ return result_( from );
+ }
+ };
+
+ template<typename To,typename From>
+ To& operator|(To& to, put_range_aux::adaptor1<From> const& h)
+ {
+ // TODO remove
+ // typedef typename put_range_aux::deduce_operation<To>::type tag_;
+ // put_range_aux::put_range( tag_(), h.from(), to );
+
+ ::boost::for_each( h.from(), put( to ) );
+ return to;
+ }
+
+}// put_range_aux
+ put_range_aux::adaptor2 const _put_range = put_range_aux::adaptor2();
+}// v2
+}// assign
+}// boost
+
+#endif


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