Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68332 - in sandbox/assign_v2/boost/assign/v2/put/pipe: csv functor pars
From: erwann.rogard_at_[hidden]
Date: 2011-01-20 20:12:36


Author: e_r
Date: 2011-01-20 20:12:33 EST (Thu, 20 Jan 2011)
New Revision: 68332
URL: http://svn.boost.org/trac/boost/changeset/68332

Log:
assign_v2
Added:
   sandbox/assign_v2/boost/assign/v2/put/pipe/csv/size_type.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/put/pipe/pars/
   sandbox/assign_v2/boost/assign/v2/put/pipe/pars/forward.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/put/pipe/pars/size_type.hpp (contents, props changed)

Added: sandbox/assign_v2/boost/assign/v2/put/pipe/csv/size_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/csv/size_type.hpp 2011-01-20 20:12:33 EST (Thu, 20 Jan 2011)
@@ -0,0 +1,26 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_SIZE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_SIZE_TYPE_ER_2010_HPP
+#include <boost/assign/v2/ref/fusion/size_type.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ typedef ref::fusion_aux::size_type csv_size_type;
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif

Added: sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp 2011-01-20 20:12:33 EST (Thu, 20 Jan 2011)
@@ -0,0 +1,26 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_SIZE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_SIZE_TYPE_ER_2010_HPP
+#include <boost/assign/v2/ref/list_tuple/size_type.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ typedef ref::list_tuple_aux::get_size_type size_type;
+
+}// put_pipe_aux
+}// v2
+}// assign
+}// boost
+
+#endif

Added: sandbox/assign_v2/boost/assign/v2/put/pipe/pars/forward.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/pars/forward.hpp 2011-01-20 20:12:33 EST (Thu, 20 Jan 2011)
@@ -0,0 +1,88 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_PARS_FORWARD_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_PARS_FORWARD_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>
+#include <boost/assign/v2/put/pipe/pars/size_type.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ template<pars_size_type 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<pars_size_type 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/assign_v2/boost/assign/v2/put/pipe/pars/size_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/pars/size_type.hpp 2011-01-20 20:12:33 EST (Thu, 20 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_PARS_SIZE_TYPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_PARS_SIZE_TYPE_ER_2010_HPP
+#include <boost/assign/v2/ref/fusion/size_type.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_pipe_aux{
+
+ // pars are kept in a fusion_aux::container<>
+ typedef ref::fusion_aux::size_type pars_size_type;
+
+}// put_pipe_aux
+}// 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