Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r72449 - in sandbox/assign_v2/boost/assign/v2/deque: cpp03 csv_deque
From: erwann.rogard_at_[hidden]
Date: 2011-06-06 21:26:11


Author: e_r
Date: 2011-06-06 21:26:10 EDT (Mon, 06 Jun 2011)
New Revision: 72449
URL: http://svn.boost.org/trac/boost/changeset/72449

Log:
upd assign_v2
Added:
   sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque_basic.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque_ext.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/deque/csv_deque/
   sandbox/assign_v2/boost/assign/v2/deque/csv_deque/csv_deque_basic.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/deque/csv_deque/csv_deque_ext.hpp (contents, props changed)
   sandbox/assign_v2/boost/assign/v2/deque/csv_deque/result_of.hpp (contents, props changed)

Added: sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque_basic.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque_basic.hpp 2011-06-06 21:26:10 EDT (Mon, 06 Jun 2011)
@@ -0,0 +1,111 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_DEQUE_CPP03_CSV_DEQUE_BASIC_ER_2011_HPP
+#define BOOST_ASSIGN_V2_DEQUE_CPP03_CSV_DEQUE_BASIC_ER_2011_HPP
+#include <boost/assign/v2/deque/csv_deque/csv_deque_basic.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace interpreter_aux{
+
+#define BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC(z, N, is_const)\
+ template<typename T, typename Options BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
+ typename result_of::csv_deque_option<T, Options>::type\
+ csv_deque(\
+ BOOST_PP_ENUM_BINARY_PARAMS(N, T, BOOST_PP_EXPR_IF(is_const, const)& _)\
+ )\
+ {\
+ return csv(\
+ deque<T, Options>( _nil )\
+ BOOST_PP_ENUM_TRAILING_PARAMS(N, _)\
+ );\
+ }\
+ template<typename T BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
+ typename result_of::csv_deque<T>::type\
+ csv_deque(\
+ BOOST_PP_ENUM_BINARY_PARAMS(N, T, BOOST_PP_EXPR_IF(is_const, const)& _)\
+ )\
+ {\
+ return csv( deque<T>( _nil ) BOOST_PP_ENUM_TRAILING_PARAMS(N, _) );\
+ }\
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+ 0, // case empty
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+ BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC,
+ 0
+)
+BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+ BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC,
+ 1
+)
+#undef BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC
+
+#define BOOST_ASSIGN_V2_MACRO(z, i, data)\
+ T const& BOOST_PP_CAT(_,i)\
+/**/
+
+#define BOOST_ASSIGN_V2_REST_PARAMS(N)\
+ BOOST_PP_COMMA_IF(BOOST_PP_DEC(N))\
+ BOOST_PP_ENUM_SHIFTED(\
+ N,\
+ BOOST_ASSIGN_V2_MACRO,\
+ ~\
+ )\
+/**/
+
+#define BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC_IMPLICIT(z, N, is_const)\
+ template<typename T, typename Options>\
+ typename result_of::csv_deque_option<T, Options>::type\
+ csv_deque(\
+ T const& _0\
+ BOOST_ASSIGN_V2_REST_PARAMS(N)\
+ )\
+ {\
+ typedef typename csv_deque_deduce_value<T>::type t_;\
+ return csv(\
+ deque<t_, Options>( _nil ), \
+ BOOST_PP_ENUM_PARAMS(N, _)\
+ );\
+ }\
+ template<typename T>\
+ typename result_of::csv_deque<T>::type\
+ csv_deque(\
+ T const& _0\
+ BOOST_ASSIGN_V2_REST_PARAMS(N)\
+ )\
+ {\
+ typedef typename csv_deque_deduce_value<T>::type t_;\
+ return csv( deque<t_>( _nil ), BOOST_PP_ENUM_PARAMS(N, _) );\
+ }\
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
+ BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC_IMPLICIT,
+ ~
+)
+
+#undef BOOST_ASSIGN_V2_MACRO
+#undef BOOST_ASSIGN_V2_REST_PARAMS
+#undef BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_BASIC_IMPLICIT
+
+}// interpreter_aux
+using interpreter_aux::csv_deque;
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_DEQUE_CPP03_CSV_DEQUE_BASIC_ER_2011_HPP

Added: sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque_ext.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque_ext.hpp 2011-06-06 21:26:10 EDT (Mon, 06 Jun 2011)
@@ -0,0 +1,117 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_DEQUE_CPP03_CSV_DEQUE_EXT_ER_2011_HPP
+#define BOOST_ASSIGN_V2_DEQUE_CPP03_CSV_DEQUE_EXT_ER_2011_HPP
+#include <boost/assign/v2/deque/csv_deque/csv_deque_ext.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace interpreter_aux{
+
+#define BOOST_ASSIGN_V2_CSV_DEQUE_NESTED_ITER(z, N, SeqU)\
+ template<\
+ typename T, int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
+ >\
+ typename boost::lazy_enable_if_c<\
+ I == BOOST_PP_SEQ_SIZE(SeqU),\
+ result_of::csv_deque<T>\
+ >::type\
+ csv_deque\
+ (\
+ BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
+ )\
+ {\
+ return csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
+ deque<T>( _nil )\
+ BOOST_PP_ENUM_TRAILING_PARAMS(\
+ BOOST_PP_MUL( N, BOOST_PP_SEQ_SIZE(SeqU) ),\
+ _\
+ )\
+ );\
+ }\
+ template<\
+ typename T, typename Options,\
+ int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
+ >\
+ typename boost::lazy_enable_if_c<\
+ I == BOOST_PP_SEQ_SIZE(SeqU),\
+ result_of::csv_deque_option<T, Options>\
+ >::type csv_deque\
+ (\
+ BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
+ )\
+ {\
+ return csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
+ deque<T>( _nil ) % Options()\
+ BOOST_PP_ENUM_TRAILING_PARAMS(\
+ BOOST_PP_MUL( N, BOOST_PP_SEQ_SIZE(SeqU) ),\
+ _\
+ )\
+ );\
+ }\
+/**/
+
+#define BOOST_ASSIGN_V2_CSV_DEQUE_ITER(r, SeqU)\
+ BOOST_PP_REPEAT_FROM_TO(\
+ 1,\
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),\
+ BOOST_ASSIGN_V2_CSV_DEQUE_NESTED_ITER,\
+ SeqU\
+ )\
+/**/
+
+#define BOOST_ASSIGN_V2_CSV_DEQUE_CONST_NON_CONST_OVERLOAD(z, I, data)\
+ BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
+ BOOST_ASSIGN_V2_CSV_DEQUE_ITER,\
+ BOOST_ASSIGN_V2_CSV_SEQ1(I)\
+ )\
+/**/
+
+#define BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD(z, I, pos)\
+ BOOST_ASSIGN_V2_CSV_DEQUE_ITER(\
+ ~,\
+ BOOST_ASSIGN_V2_CSV_SEQ2(pos, I)\
+ )\
+/**/
+
+BOOST_PP_REPEAT_FROM_TO(
+ 1, // TODO zero for empty case
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
+ BOOST_ASSIGN_V2_CSV_DEQUE_CONST_NON_CONST_OVERLOAD,
+ ~
+)
+
+BOOST_PP_REPEAT_FROM_TO(
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
+ BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD,
+ 0
+)
+
+BOOST_PP_REPEAT_FROM_TO(
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
+ BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
+ BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD,
+ 1
+)
+
+#undef BOOST_ASSIGN_V2_CSV_DEQUE_NESTED_ITER
+#undef BOOST_ASSIGN_V2_CSV_DEQUE_ITER
+#undef BOOST_ASSIGN_V2_CSV_DEQUE_CONST_NON_CONST_OVERLOAD
+#undef BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD
+
+}// interpreter_aux
+using interpreter_aux::csv_deque;
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_DEQUE_CPP03_CSV_DEQUE_ER_2011_HPP

Added: sandbox/assign_v2/boost/assign/v2/deque/csv_deque/csv_deque_basic.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/deque/csv_deque/csv_deque_basic.hpp 2011-06-06 21:26:10 EDT (Mon, 06 Jun 2011)
@@ -0,0 +1,84 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_DEQUE_CSV_DEQUE_BASIC_ER_2011_HPP
+#define BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_BASIC_ER_2011_HPP
+#include <boost/assign/v2/deque/csv_deque/result_of.hpp>
+#include <boost/assign/v2/interpreter/csv/csv_basic.hpp>
+#include <boost/assign/v2/option/list.hpp>
+#include <boost/assign/v2/support/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/support/pp/ignore.hpp>
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <utility>
+#endif
+
+namespace boost{
+namespace assign{
+namespace v2{
+//[syntax_csv_deque_basic
+namespace interpreter_aux{
+//<-
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+
+ // Explicit value
+ template<typename T, typename... Args>
+ typename result_of::csv_deque<T>::type
+ csv_deque(Args&& ... args)/*<-*/
+ {
+ typename result_of::csv_deque<T>::type result;
+ return csv(
+ result,
+ std::forward<Args>( args )...
+ );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+ template<typename T, typename Options, typename... Args>
+ typename result_of::csv_deque_option<T, Options>::type
+ csv_deque(Args&& ... args)/*<-*/
+ {
+ typename result_of::csv_deque_option<T, Options>::type result;
+ return csv( result, std::forward<Args>( args )... );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+ // Deduced value
+ template<typename T, typename... Args>
+ typename result_of::csv_deque<T>::type
+ csv_deque(T&& _0, Args&& ... args)/*<-*/
+ {
+ typename result_of::csv_deque<T>::type result;
+ return csv(
+ result,
+ std::forward<T>( _0 ),
+ std::forward<Args>( args )...
+ );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+//<-
+#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+
+}// interpreter_aux
+//<-
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+ using interpreter_aux::csv_deque;
+//<-
+#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+//]
+}// v2
+}// assign
+}// boost
+
+#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <boost/assign/v2/deque/cpp03/csv_deque_basic.hpp>
+#endif
+
+#endif // BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_BASIC_ER_2011_HPP

Added: sandbox/assign_v2/boost/assign/v2/deque/csv_deque/csv_deque_ext.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/deque/csv_deque/csv_deque_ext.hpp 2011-06-06 21:26:10 EDT (Mon, 06 Jun 2011)
@@ -0,0 +1,68 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_DEQUE_CSV_DEQUE_EXT_ER_2011_HPP
+#define BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_EXT_ER_2011_HPP
+#include <boost/assign/v2/deque/csv_deque/result_of.hpp>
+#include <boost/assign/v2/interpreter/csv/csv_ext.hpp>
+#include <boost/assign/v2/option/list.hpp>
+#include <boost/assign/v2/support/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/support/pp/ignore.hpp>
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <utility>
+#endif
+
+namespace boost{
+namespace assign{
+namespace v2{
+//[syntax_csv_deque_ext
+namespace interpreter_aux{
+//<-
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+
+ template<typename T, int I, typename...Types, typename... Args>
+ typename result_of::csv_deque<T>::type
+ csv_deque(Args&& ... args)/*<-*/
+ {
+ typename result_of::csv_deque<T>::type result;
+ return csv<I, Types...>( result, std::forward<Args>( args )...);
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+ template<typename T,
+ typename Options, int I, typename...Types, typename... Args>
+ typename result_of::csv_deque_option<T, Options>::type
+ csv_deque(Args&& ... args)/*<-*/
+ {
+ typename result_of::csv_deque_option<T, Options>::type result;
+ return csv<I, Types...>( result, std::forward<Args>( args )... );
+ }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+//<-
+#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+
+}// interpreter_aux
+//<-
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+ using interpreter_aux::csv_deque;
+//<-
+#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
+//]
+}// v2
+}// assign
+}// boost
+
+#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <boost/assign/v2/deque/cpp03/csv_deque_ext.hpp>
+#endif
+
+#endif // BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_ER_2011_HPP

Added: sandbox/assign_v2/boost/assign/v2/deque/csv_deque/result_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/assign_v2/boost/assign/v2/deque/csv_deque/result_of.hpp 2011-06-06 21:26:10 EDT (Mon, 06 Jun 2011)
@@ -0,0 +1,59 @@
+//////////////////////////////////////////////////////////////////////////////
+// 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_DEQUE_CSV_DEQUE_RESULT_OF_ER_2011_HPP
+#define BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_RESULT_OF_ER_2011_HPP
+#include <boost/assign/v2/deque/deque.hpp>
+#include <boost/type_traits/decay.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+//[syntax_result_of_csv_deque
+namespace interpreter_aux{
+
+ template<typename T>
+ struct csv_deque_deduce_value/*<-*/ : boost::decay<
+ typename boost::remove_cv<
+ typename boost::remove_reference<T>::type
+ >::type
+ >{}/*->*/;
+
+namespace result_of{
+
+ template<typename T>
+ struct csv_deque
+ : result_of::deque<
+ typename csv_deque_deduce_value<T>::type
+ >
+ {};
+
+ template<typename T, typename O>
+ struct csv_deque_option/*<-*/
+ : modulo_result<
+ typename result_of::csv_deque<T>::type,
+ O
+ >
+ {}/*->*/;
+
+}// result_of
+}// interpreter_aux
+namespace result_of{
+
+ using interpreter_aux::result_of::csv_deque;
+
+}// result_of
+//]
+}// v2
+}// assign
+}// boost
+
+#endif // BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_RESULT_OF_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