Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71788 - sandbox/assign_v2/boost/assign/v2/interpreter/cpp03
From: erwann.rogard_at_[hidden]
Date: 2011-05-07 15:44:12


Author: e_r
Date: 2011-05-07 15:44:11 EDT (Sat, 07 May 2011)
New Revision: 71788
URL: http://svn.boost.org/trac/boost/changeset/71788

Log:
upd assign_v2
Added:
   sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/
   sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp (contents, props changed)

Added: sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp 2011-05-07 15:44:11 EDT (Sat, 07 May 2011)
@@ -0,0 +1,95 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2011 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_INTERPRETER_CPP03_CSV_ER_2011_HPP
+#define BOOST_ASSIGN_V2_INTERPRETER_CPP03_CSV_ER_2011_HPP
+#include <boost/preprocessor/arithmetic.hpp>
+#include <boost/preprocessor/control.hpp>
+#include <boost/preprocessor/repetition.hpp>
+// This is to ensure that cpp03/csv.hpp compiles as standalone (but it's
+// better, instead, to simply include the header below)
+#include <boost/assign/v2/interpreter/csv.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace interpreter_aux{
+
+ template<typename D, typename C, typename F, typename MTag, typename DTag>
+ void csv(
+ interpreter_crtp<D, C, F, MTag, DTag> const& interpreter
+ )/*<-*/
+ {
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+ template<
+ typename D, typename C, typename F, typename MTag, typename DTag,
+ typename R
+ >
+ void invoke(
+ interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,
+ as_arg_list_adapter<R> const & adapter
+ )/*<-*/
+ {
+ interpreter.as_arg_list( adapter );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+ template<
+ typename D, typename C, typename F, typename MTag, typename DTag,
+ typename T
+ >
+ void invoke(
+ interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,
+ T& t
+ )/*<-*/
+ {
+ interpreter( t );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+#define BOOST_ASSIGN_V2_MACRO(z, N, is_const)\
+ template<\
+ typename D, typename C, typename F, typename MTag, typename DTag,\
+ BOOST_PP_ENUM_PARAMS(N, typename T)\
+ >\
+ void csv(\
+ interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,\
+ BOOST_PP_ENUM_BINARY_PARAMS(\
+ N, T, BOOST_PP_EXPR_IF(is_const, const) & _\
+ )\
+ )\
+ {\
+ invoke( interpreter, _0 );\
+ csv(\
+ interpreter\
+ BOOST_PP_COMMA_IF( BOOST_PP_DEC(N) )\
+ BOOST_PP_ENUM_SHIFTED_PARAMS(N, _ )\
+ );\
+ }\
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+ BOOST_ASSIGN_V2_MACRO,
+ 0
+)
+BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+ BOOST_ASSIGN_V2_MACRO,
+ 1
+)
+#undef BOOST_ASSIGN_V2_MACRO
+
+}// interpreter_aux
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_INTERPRETER_CPP03_CSV_ER_2011_HPP


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