Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r72763 - in trunk: boost/preprocessor boost/preprocessor/array boost/preprocessor/config boost/preprocessor/facilities boost/preprocessor/iteration boost/preprocessor/iteration/detail/iter boost/preprocessor/list boost/preprocessor/seq boost/preprocessor/seq/detail boost/preprocessor/tuple boost/preprocessor/variadic libs/preprocessor/doc libs/preprocessor/doc/headers libs/preprocessor/doc/headers/array libs/preprocessor/doc/headers/config libs/preprocessor/doc/headers/facilities libs/preprocessor/doc/headers/list libs/preprocessor/doc/headers/seq libs/preprocessor/doc/headers/tuple libs/preprocessor/doc/headers/variadic libs/preprocessor/doc/ref libs/preprocessor/doc/topics libs/preprocessor/test
From: pmenso57_at_[hidden]
Date: 2011-06-26 09:07:31


Author: pmenso57
Date: 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
New Revision: 72763
URL: http://svn.boost.org/trac/boost/changeset/72763

Log:
limited variadic support
Added:
   trunk/boost/preprocessor/array/enum.hpp (contents, props changed)
   trunk/boost/preprocessor/array/to_list.hpp (contents, props changed)
   trunk/boost/preprocessor/array/to_seq.hpp (contents, props changed)
   trunk/boost/preprocessor/array/to_tuple.hpp (contents, props changed)
   trunk/boost/preprocessor/facilities/overload.hpp (contents, props changed)
   trunk/boost/preprocessor/list/to_array.hpp (contents, props changed)
   trunk/boost/preprocessor/list/to_seq.hpp (contents, props changed)
   trunk/boost/preprocessor/seq/detail/binary_transform.hpp (contents, props changed)
   trunk/boost/preprocessor/seq/to_list.hpp (contents, props changed)
   trunk/boost/preprocessor/tuple/enum.hpp (contents, props changed)
   trunk/boost/preprocessor/tuple/size.hpp (contents, props changed)
   trunk/boost/preprocessor/tuple/to_array.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/
   trunk/boost/preprocessor/variadic.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/elem.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/size.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/to_array.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/to_list.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/to_seq.hpp (contents, props changed)
   trunk/boost/preprocessor/variadic/to_tuple.hpp (contents, props changed)
   trunk/libs/preprocessor/doc/headers/array/enum.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/array/to_list.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/array/to_seq.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/array/to_tuple.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/config/variadics.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/facilities/overload.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/list/to_array.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/list/to_seq.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/seq/to_list.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/tuple/enum.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/tuple/size.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/tuple/to_array.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/
   trunk/libs/preprocessor/doc/headers/variadic.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/elem.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/size.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/to_array.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/to_list.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/to_seq.html (contents, props changed)
   trunk/libs/preprocessor/doc/headers/variadic/to_tuple.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/array_enum.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/array_to_list.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/array_to_seq.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/array_to_tuple.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/limit_variadic.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/list_to_array.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/list_to_array_d.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/list_to_seq.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/list_to_seq_r.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/overload.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/seq_to_list.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/tuple_enum.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/tuple_size.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/tuple_to_array.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadic_elem.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadic_size.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadic_to_array.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadic_to_list.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadic_to_seq.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadic_to_tuple.html (contents, props changed)
   trunk/libs/preprocessor/doc/ref/variadics.html (contents, props changed)
   trunk/libs/preprocessor/doc/topics/variadic_macros.html (contents, props changed)
   trunk/libs/preprocessor/test/arithmetic.c (contents, props changed)
   trunk/libs/preprocessor/test/array.c (contents, props changed)
   trunk/libs/preprocessor/test/comparison.c (contents, props changed)
   trunk/libs/preprocessor/test/control.c (contents, props changed)
   trunk/libs/preprocessor/test/debug.c (contents, props changed)
   trunk/libs/preprocessor/test/facilities.c (contents, props changed)
   trunk/libs/preprocessor/test/list.c (contents, props changed)
   trunk/libs/preprocessor/test/logical.c (contents, props changed)
   trunk/libs/preprocessor/test/selection.c (contents, props changed)
   trunk/libs/preprocessor/test/seq.c (contents, props changed)
   trunk/libs/preprocessor/test/slot.c (contents, props changed)
   trunk/libs/preprocessor/test/tuple.c (contents, props changed)
   trunk/libs/preprocessor/test/variadic.c (contents, props changed)
   trunk/libs/preprocessor/test/variadic.cpp (contents, props changed)
Text files modified:
   trunk/boost/preprocessor/array.hpp | 13
   trunk/boost/preprocessor/cat.hpp | 4
   trunk/boost/preprocessor/config/config.hpp | 43 ++
   trunk/boost/preprocessor/config/limits.hpp | 3
   trunk/boost/preprocessor/facilities.hpp | 10
   trunk/boost/preprocessor/iteration/detail/iter/forward1.hpp | 6
   trunk/boost/preprocessor/iteration/detail/iter/forward2.hpp | 6
   trunk/boost/preprocessor/iteration/detail/iter/forward3.hpp | 6
   trunk/boost/preprocessor/iteration/detail/iter/forward4.hpp | 6
   trunk/boost/preprocessor/iteration/detail/iter/forward5.hpp | 6
   trunk/boost/preprocessor/iteration/iterate.hpp | 6
   trunk/boost/preprocessor/library.hpp | 10
   trunk/boost/preprocessor/list.hpp | 2
   trunk/boost/preprocessor/seq.hpp | 10
   trunk/boost/preprocessor/tuple.hpp | 4
   trunk/boost/preprocessor/tuple/eat.hpp | 115 +++++--
   trunk/boost/preprocessor/tuple/elem.hpp | 516 +++++++++++------------------------
   trunk/boost/preprocessor/tuple/rem.hpp | 158 +++++++---
   trunk/boost/preprocessor/tuple/reverse.hpp | 126 ++++++--
   trunk/boost/preprocessor/tuple/to_list.hpp | 126 ++++++--
   trunk/boost/preprocessor/tuple/to_seq.hpp | 132 ++++++--
   trunk/libs/preprocessor/doc/headers.html | 428 +++++++++++++++--------------
   trunk/libs/preprocessor/doc/headers/array.html | 13
   trunk/libs/preprocessor/doc/headers/config/limits.html | 68 ++--
   trunk/libs/preprocessor/doc/headers/facilities.html | 10
   trunk/libs/preprocessor/doc/headers/list.html | 11
   trunk/libs/preprocessor/doc/headers/seq.html | 157 +++++-----
   trunk/libs/preprocessor/doc/headers/tuple.html | 29 +
   trunk/libs/preprocessor/doc/headers/tuple/eat.html | 21
   trunk/libs/preprocessor/doc/headers/tuple/elem.html | 21
   trunk/libs/preprocessor/doc/headers/tuple/rem.html | 24
   trunk/libs/preprocessor/doc/headers/tuple/reverse.html | 21
   trunk/libs/preprocessor/doc/headers/tuple/to_list.html | 21
   trunk/libs/preprocessor/doc/headers/tuple/to_seq.html | 21
   trunk/libs/preprocessor/doc/ref.html | 576 ++++++++++++++++++++-------------------
   trunk/libs/preprocessor/doc/ref/limit_tuple.html | 15
   trunk/libs/preprocessor/doc/ref/seq_cat.html | 27 -
   trunk/libs/preprocessor/doc/ref/seq_cat_s.html | 19
   trunk/libs/preprocessor/doc/ref/seq_elem.html | 40 --
   trunk/libs/preprocessor/doc/ref/seq_first_n.html | 29 -
   trunk/libs/preprocessor/doc/ref/seq_nil.html | 41 --
   trunk/libs/preprocessor/doc/ref/seq_rest_n.html | 75 ----
   trunk/libs/preprocessor/doc/ref/tuple_eat.html | 54 +-
   trunk/libs/preprocessor/doc/ref/tuple_elem.html | 44 +-
   trunk/libs/preprocessor/doc/ref/tuple_rem.html | 45 +-
   trunk/libs/preprocessor/doc/ref/tuple_rem_ctor.html | 43 +-
   trunk/libs/preprocessor/doc/ref/tuple_reverse.html | 43 +-
   trunk/libs/preprocessor/doc/ref/tuple_to_list.html | 41 +-
   trunk/libs/preprocessor/doc/ref/tuple_to_seq.html | 106 +++---
   trunk/libs/preprocessor/doc/syntax.html | 54 ++-
   trunk/libs/preprocessor/doc/topics.html | 8
   trunk/libs/preprocessor/test/Jamfile.v2 | 157 ++++++++++
   trunk/libs/preprocessor/test/array.cpp | 68 ++++
   trunk/libs/preprocessor/test/iteration.h | 1
   trunk/libs/preprocessor/test/list.cpp | 7
   trunk/libs/preprocessor/test/seq.cpp | 5
   trunk/libs/preprocessor/test/test.h | 5
   trunk/libs/preprocessor/test/tuple.cpp | 86 +++++
   58 files changed, 2060 insertions(+), 1682 deletions(-)

Modified: trunk/boost/preprocessor/array.hpp
==============================================================================
--- trunk/boost/preprocessor/array.hpp (original)
+++ trunk/boost/preprocessor/array.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -14,6 +15,7 @@
 #
 # include <boost/preprocessor/array/data.hpp>
 # include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/array/enum.hpp>
 # include <boost/preprocessor/array/insert.hpp>
 # include <boost/preprocessor/array/pop_back.hpp>
 # include <boost/preprocessor/array/pop_front.hpp>
@@ -23,5 +25,8 @@
 # include <boost/preprocessor/array/replace.hpp>
 # include <boost/preprocessor/array/reverse.hpp>
 # include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/array/to_list.hpp>
+# include <boost/preprocessor/array/to_seq.hpp>
+# include <boost/preprocessor/array/to_tuple.hpp>
 #
 # endif

Added: trunk/boost/preprocessor/array/enum.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/array/enum.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,33 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_ENUM_HPP
+# define BOOST_PREPROCESSOR_ARRAY_ENUM_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_ARRAY_ENUM */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_ARRAY_ENUM_I(BOOST_PP_TUPLE_REM_CTOR, array)
+# define BOOST_PP_ARRAY_ENUM_I(m, args) BOOST_PP_ARRAY_ENUM_II(m, args)
+# define BOOST_PP_ARRAY_ENUM_II(m, args) BOOST_PP_CAT(m ## args,)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_ARRAY_ENUM_I(array)
+# define BOOST_PP_ARRAY_ENUM_I(array) BOOST_PP_TUPLE_REM_CTOR ## array
+# else
+# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_TUPLE_REM_CTOR array
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/array/to_list.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/array/to_list.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,33 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_TO_LIST_HPP
+# define BOOST_PREPROCESSOR_ARRAY_TO_LIST_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/to_list.hpp>
+#
+# /* BOOST_PP_ARRAY_TO_LIST */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_ARRAY_TO_LIST(array) BOOST_PP_ARRAY_TO_LIST_I(BOOST_PP_TUPLE_TO_LIST, array)
+# define BOOST_PP_ARRAY_TO_LIST_I(m, args) BOOST_PP_ARRAY_TO_LIST_II(m, args)
+# define BOOST_PP_ARRAY_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_ARRAY_TO_LIST(array) BOOST_PP_ARRAY_TO_LIST_I(array)
+# define BOOST_PP_ARRAY_TO_LIST_I(array) BOOST_PP_TUPLE_TO_LIST ## array
+# else
+# define BOOST_PP_ARRAY_TO_LIST(array) BOOST_PP_TUPLE_TO_LIST array
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/array/to_seq.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/array/to_seq.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,33 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_TO_SEQ_HPP
+# define BOOST_PREPROCESSOR_ARRAY_TO_SEQ_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/to_seq.hpp>
+#
+# /* BOOST_PP_ARRAY_TO_SEQ */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_ARRAY_TO_SEQ(array) BOOST_PP_ARRAY_TO_SEQ_I(BOOST_PP_TUPLE_TO_SEQ, array)
+# define BOOST_PP_ARRAY_TO_SEQ_I(m, args) BOOST_PP_ARRAY_TO_SEQ_II(m, args)
+# define BOOST_PP_ARRAY_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_ARRAY_TO_SEQ(array) BOOST_PP_ARRAY_TO_SEQ_I(array)
+# define BOOST_PP_ARRAY_TO_SEQ_I(array) BOOST_PP_TUPLE_TO_SEQ ## array
+# else
+# define BOOST_PP_ARRAY_TO_SEQ(array) BOOST_PP_TUPLE_TO_SEQ array
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/array/to_tuple.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/array/to_tuple.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_ARRAY_TO_TUPLE_HPP
+# define BOOST_PREPROCESSOR_ARRAY_TO_TUPLE_HPP
+#
+# include <boost/preprocessor/array/data.hpp>
+#
+# /* BOOST_PP_ARRAY_TO_TUPLE */
+#
+# define BOOST_PP_ARRAY_TO_TUPLE BOOST_PP_ARRAY_DATA
+#
+# endif

Modified: trunk/boost/preprocessor/cat.hpp
==============================================================================
--- trunk/boost/preprocessor/cat.hpp (original)
+++ trunk/boost/preprocessor/cat.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -28,8 +28,8 @@
 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
 # define BOOST_PP_CAT_I(a, b) a ## b
 # else
-# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(a ## b)
-# define BOOST_PP_CAT_II(res) res
+# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b)
+# define BOOST_PP_CAT_II(p, res) res
 # endif
 #
 # endif

Modified: trunk/boost/preprocessor/config/config.hpp
==============================================================================
--- trunk/boost/preprocessor/config/config.hpp (original)
+++ trunk/boost/preprocessor/config/config.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -67,4 +68,38 @@
 # endif
 # endif
 #
+# /* BOOST_PP_VARIADICS */
+#
+# if !defined BOOST_PP_VARIADICS
+# /* variadic support explicitly disabled for all untested compilers */
+# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
+# define BOOST_PP_VARIADICS 0
+# /* VC++ (C/C++) */
+# elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__
+# if _MSC_VER >= 1400
+# define BOOST_PP_VARIADICS 1
+# define BOOST_PP_VARIADICS_MSVC 1
+# else
+# define BOOST_PP_VARIADICS 0
+# endif
+# /* Wave (C/C++), GCC (C++) */
+# elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
+# define BOOST_PP_VARIADICS 1
+# /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
+# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
+# define BOOST_PP_VARIADICS 1
+# else
+# define BOOST_PP_VARIADICS 0
+# endif
+# elif !BOOST_PP_VARIADICS + 1 < 2
+# undef BOOST_PP_VARIADICS
+# define BOOST_PP_VARIADICS 1
+# if defined _MSC_VER && _MSC_VER >= 1400 && !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)
+# define BOOST_PP_VARIADICS_MSVC 1
+# endif
+# else
+# undef BOOST_PP_VARIADICS
+# define BOOST_PP_VARIADICS 0
+# endif
+#
 # endif

Modified: trunk/boost/preprocessor/config/limits.hpp
==============================================================================
--- trunk/boost/preprocessor/config/limits.hpp (original)
+++ trunk/boost/preprocessor/config/limits.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -8,6 +8,7 @@
 # */
 #
 # /* Revised by Paul Mensonides (2002) */
+# /* Revised by Edward Diener (2011) */
 #
 # /* See http://www.boost.org for most recent version. */
 #
@@ -15,7 +16,7 @@
 # define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP
 #
 # define BOOST_PP_LIMIT_MAG 256
-# define BOOST_PP_LIMIT_TUPLE 25
+# define BOOST_PP_LIMIT_TUPLE 64
 # define BOOST_PP_LIMIT_DIM 3
 # define BOOST_PP_LIMIT_REPEAT 256
 # define BOOST_PP_LIMIT_WHILE 256

Modified: trunk/boost/preprocessor/facilities.hpp
==============================================================================
--- trunk/boost/preprocessor/facilities.hpp (original)
+++ trunk/boost/preprocessor/facilities.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -17,5 +18,6 @@
 # include <boost/preprocessor/facilities/expand.hpp>
 # include <boost/preprocessor/facilities/identity.hpp>
 # include <boost/preprocessor/facilities/intercept.hpp>
+# include <boost/preprocessor/facilities/overload.hpp>
 #
 # endif

Added: trunk/boost/preprocessor/facilities/overload.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/facilities/overload.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
+# define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/variadic/size.hpp>
+#
+# /* BOOST_PP_OVERLOAD */
+#
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__))
+# endif
+#
+# endif

Modified: trunk/boost/preprocessor/iteration/detail/iter/forward1.hpp
==============================================================================
--- trunk/boost/preprocessor/iteration/detail/iter/forward1.hpp (original)
+++ trunk/boost/preprocessor/iteration/detail/iter/forward1.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -17,7 +17,7 @@
 # include <boost/preprocessor/iteration/detail/bounds/lower1.hpp>
 # define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
 # include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
-# define BOOST_PP_ITERATION_FLAGS_1 0
+# define BOOST_PP_ITERATION_FLAGS_1() 0
 # undef BOOST_PP_ITERATION_LIMITS
 # elif defined(BOOST_PP_ITERATION_PARAMS_1)
 # define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1)
@@ -26,9 +26,9 @@
 # include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
 # define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
 # if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4
-# define BOOST_PP_ITERATION_FLAGS_1 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
+# define BOOST_PP_ITERATION_FLAGS_1() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
 # else
-# define BOOST_PP_ITERATION_FLAGS_1 0
+# define BOOST_PP_ITERATION_FLAGS_1() 0
 # endif
 # else
 # error BOOST_PP_ERROR: depth #1 iteration boundaries or filename not defined

Modified: trunk/boost/preprocessor/iteration/detail/iter/forward2.hpp
==============================================================================
--- trunk/boost/preprocessor/iteration/detail/iter/forward2.hpp (original)
+++ trunk/boost/preprocessor/iteration/detail/iter/forward2.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -17,7 +17,7 @@
 # include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>
 # define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
 # include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
-# define BOOST_PP_ITERATION_FLAGS_2 0
+# define BOOST_PP_ITERATION_FLAGS_2() 0
 # undef BOOST_PP_ITERATION_LIMITS
 # elif defined(BOOST_PP_ITERATION_PARAMS_2)
 # define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)
@@ -26,9 +26,9 @@
 # include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
 # define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
 # if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4
-# define BOOST_PP_ITERATION_FLAGS_2 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
+# define BOOST_PP_ITERATION_FLAGS_2() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
 # else
-# define BOOST_PP_ITERATION_FLAGS_2 0
+# define BOOST_PP_ITERATION_FLAGS_2() 0
 # endif
 # else
 # error BOOST_PP_ERROR: depth #2 iteration boundaries or filename not defined

Modified: trunk/boost/preprocessor/iteration/detail/iter/forward3.hpp
==============================================================================
--- trunk/boost/preprocessor/iteration/detail/iter/forward3.hpp (original)
+++ trunk/boost/preprocessor/iteration/detail/iter/forward3.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -17,7 +17,7 @@
 # include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>
 # define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
 # include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
-# define BOOST_PP_ITERATION_FLAGS_3 0
+# define BOOST_PP_ITERATION_FLAGS_3() 0
 # undef BOOST_PP_ITERATION_LIMITS
 # elif defined(BOOST_PP_ITERATION_PARAMS_3)
 # define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)
@@ -26,9 +26,9 @@
 # include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
 # define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
 # if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4
-# define BOOST_PP_ITERATION_FLAGS_3 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
+# define BOOST_PP_ITERATION_FLAGS_3() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
 # else
-# define BOOST_PP_ITERATION_FLAGS_3 0
+# define BOOST_PP_ITERATION_FLAGS_3() 0
 # endif
 # else
 # error BOOST_PP_ERROR: depth #3 iteration boundaries or filename not defined

Modified: trunk/boost/preprocessor/iteration/detail/iter/forward4.hpp
==============================================================================
--- trunk/boost/preprocessor/iteration/detail/iter/forward4.hpp (original)
+++ trunk/boost/preprocessor/iteration/detail/iter/forward4.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -17,7 +17,7 @@
 # include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>
 # define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
 # include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
-# define BOOST_PP_ITERATION_FLAGS_4 0
+# define BOOST_PP_ITERATION_FLAGS_4() 0
 # undef BOOST_PP_ITERATION_LIMITS
 # elif defined(BOOST_PP_ITERATION_PARAMS_4)
 # define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)
@@ -26,9 +26,9 @@
 # include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
 # define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
 # if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4
-# define BOOST_PP_ITERATION_FLAGS_4 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
+# define BOOST_PP_ITERATION_FLAGS_4() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
 # else
-# define BOOST_PP_ITERATION_FLAGS_4 0
+# define BOOST_PP_ITERATION_FLAGS_4() 0
 # endif
 # else
 # error BOOST_PP_ERROR: depth #4 iteration boundaries or filename not defined

Modified: trunk/boost/preprocessor/iteration/detail/iter/forward5.hpp
==============================================================================
--- trunk/boost/preprocessor/iteration/detail/iter/forward5.hpp (original)
+++ trunk/boost/preprocessor/iteration/detail/iter/forward5.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -17,7 +17,7 @@
 # include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>
 # define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
 # include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
-# define BOOST_PP_ITERATION_FLAGS_5 0
+# define BOOST_PP_ITERATION_FLAGS_5() 0
 # undef BOOST_PP_ITERATION_LIMITS
 # elif defined(BOOST_PP_ITERATION_PARAMS_5)
 # define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)
@@ -26,9 +26,9 @@
 # include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
 # define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
 # if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4
-# define BOOST_PP_ITERATION_FLAGS_5 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
+# define BOOST_PP_ITERATION_FLAGS_5() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
 # else
-# define BOOST_PP_ITERATION_FLAGS_5 0
+# define BOOST_PP_ITERATION_FLAGS_5() 0
 # endif
 # else
 # error BOOST_PP_ERROR: depth #5 iteration boundaries or filename not defined

Modified: trunk/boost/preprocessor/iteration/iterate.hpp
==============================================================================
--- trunk/boost/preprocessor/iteration/iterate.hpp (original)
+++ trunk/boost/preprocessor/iteration/iterate.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -35,7 +35,7 @@
 #
 # /* BOOST_PP_ITERATION_FLAGS */
 #
-# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH()))
+# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())())
 #
 # /* BOOST_PP_FRAME_ITERATION */
 #
@@ -48,7 +48,7 @@
 #
 # /* BOOST_PP_FRAME_FLAGS */
 #
-# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i))
+# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i)())
 #
 # /* BOOST_PP_RELATIVE_ITERATION */
 #
@@ -67,7 +67,7 @@
 #
 # /* BOOST_PP_RELATIVE_FLAGS */
 #
-# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_))
+# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)())
 #
 # /* BOOST_PP_ITERATE */
 #

Modified: trunk/boost/preprocessor/library.hpp
==============================================================================
--- trunk/boost/preprocessor/library.hpp (original)
+++ trunk/boost/preprocessor/library.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -30,5 +31,6 @@
 # include <boost/preprocessor/slot.hpp>
 # include <boost/preprocessor/stringize.hpp>
 # include <boost/preprocessor/tuple.hpp>
+# include <boost/preprocessor/variadic.hpp>
 #
 # endif

Modified: trunk/boost/preprocessor/list.hpp
==============================================================================
--- trunk/boost/preprocessor/list.hpp (original)
+++ trunk/boost/preprocessor/list.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -29,6 +29,8 @@
 # include <boost/preprocessor/list/rest_n.hpp>
 # include <boost/preprocessor/list/reverse.hpp>
 # include <boost/preprocessor/list/size.hpp>
+# include <boost/preprocessor/list/to_array.hpp>
+# include <boost/preprocessor/list/to_seq.hpp>
 # include <boost/preprocessor/list/to_tuple.hpp>
 # include <boost/preprocessor/list/transform.hpp>
 #

Added: trunk/boost/preprocessor/list/to_array.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/list/to_array.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,123 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP
+# define BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP
+#
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/arithmetic/inc.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/control/while.hpp>
+# include <boost/preprocessor/list/adt.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_LIST_TO_ARRAY */
+#
+# define BOOST_PP_LIST_TO_ARRAY(list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE, list)
+
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_LIST_TO_ARRAY_I(w, list) \
+ BOOST_PP_LIST_TO_ARRAY_II(((BOOST_PP_TUPLE_REM_CTOR( \
+ 3, \
+ w(BOOST_PP_LIST_TO_ARRAY_P, BOOST_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \
+ )))) \
+ /**/
+# define BOOST_PP_LIST_TO_ARRAY_II(p) BOOST_PP_LIST_TO_ARRAY_II_B(p)
+# define BOOST_PP_LIST_TO_ARRAY_II_B(p) BOOST_PP_LIST_TO_ARRAY_II_C ## p
+# define BOOST_PP_LIST_TO_ARRAY_II_C(p) BOOST_PP_LIST_TO_ARRAY_III p
+# else
+# define BOOST_PP_LIST_TO_ARRAY_I(w, list) \
+ BOOST_PP_LIST_TO_ARRAY_II(BOOST_PP_TUPLE_REM_CTOR( \
+ 3, \
+ w(BOOST_PP_LIST_TO_ARRAY_P, BOOST_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \
+ )) \
+ /**/
+# define BOOST_PP_LIST_TO_ARRAY_II(im) BOOST_PP_LIST_TO_ARRAY_III(im)
+# endif
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_LIST_TO_ARRAY_III(list, size, tuple) (BOOST_PP_DEC(size), BOOST_PP_LIST_TO_ARRAY_IV tuple)
+# define BOOST_PP_LIST_TO_ARRAY_IV(_, ...) (__VA_ARGS__)
+# else
+# define BOOST_PP_LIST_TO_ARRAY_III(list, size, tuple) (BOOST_PP_DEC(size), BOOST_PP_LIST_TO_ARRAY_IV_ ## size tuple)
+# define BOOST_PP_LIST_TO_ARRAY_IV_2(_, e0) (e0)
+# define BOOST_PP_LIST_TO_ARRAY_IV_3(_, e0, e1) (e0, e1)
+# define BOOST_PP_LIST_TO_ARRAY_IV_4(_, e0, e1, e2) (e0, e1, e2)
+# define BOOST_PP_LIST_TO_ARRAY_IV_5(_, e0, e1, e2, e3) (e0, e1, e2, e3)
+# define BOOST_PP_LIST_TO_ARRAY_IV_6(_, e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4)
+# define BOOST_PP_LIST_TO_ARRAY_IV_7(_, e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5)
+# define BOOST_PP_LIST_TO_ARRAY_IV_8(_, e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6)
+# define BOOST_PP_LIST_TO_ARRAY_IV_9(_, e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7)
+# define BOOST_PP_LIST_TO_ARRAY_IV_10(_, e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8)
+# define BOOST_PP_LIST_TO_ARRAY_IV_11(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
+# define BOOST_PP_LIST_TO_ARRAY_IV_12(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
+# define BOOST_PP_LIST_TO_ARRAY_IV_13(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
+# define BOOST_PP_LIST_TO_ARRAY_IV_14(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
+# define BOOST_PP_LIST_TO_ARRAY_IV_15(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
+# define BOOST_PP_LIST_TO_ARRAY_IV_16(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
+# define BOOST_PP_LIST_TO_ARRAY_IV_17(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
+# define BOOST_PP_LIST_TO_ARRAY_IV_18(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
+# define BOOST_PP_LIST_TO_ARRAY_IV_19(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
+# define BOOST_PP_LIST_TO_ARRAY_IV_20(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
+# define BOOST_PP_LIST_TO_ARRAY_IV_21(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
+# define BOOST_PP_LIST_TO_ARRAY_IV_22(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
+# define BOOST_PP_LIST_TO_ARRAY_IV_23(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
+# define BOOST_PP_LIST_TO_ARRAY_IV_24(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
+# define BOOST_PP_LIST_TO_ARRAY_IV_25(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
+# define BOOST_PP_LIST_TO_ARRAY_IV_26(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
+# define BOOST_PP_LIST_TO_ARRAY_IV_27(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
+# define BOOST_PP_LIST_TO_ARRAY_IV_28(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
+# define BOOST_PP_LIST_TO_ARRAY_IV_29(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
+# define BOOST_PP_LIST_TO_ARRAY_IV_30(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
+# define BOOST_PP_LIST_TO_ARRAY_IV_31(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
+# define BOOST_PP_LIST_TO_ARRAY_IV_32(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
+# define BOOST_PP_LIST_TO_ARRAY_IV_33(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
+# define BOOST_PP_LIST_TO_ARRAY_IV_34(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
+# define BOOST_PP_LIST_TO_ARRAY_IV_35(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
+# define BOOST_PP_LIST_TO_ARRAY_IV_36(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
+# define BOOST_PP_LIST_TO_ARRAY_IV_37(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
+# define BOOST_PP_LIST_TO_ARRAY_IV_38(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
+# define BOOST_PP_LIST_TO_ARRAY_IV_39(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
+# define BOOST_PP_LIST_TO_ARRAY_IV_40(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
+# define BOOST_PP_LIST_TO_ARRAY_IV_41(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
+# define BOOST_PP_LIST_TO_ARRAY_IV_42(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
+# define BOOST_PP_LIST_TO_ARRAY_IV_43(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
+# define BOOST_PP_LIST_TO_ARRAY_IV_44(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
+# define BOOST_PP_LIST_TO_ARRAY_IV_45(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
+# define BOOST_PP_LIST_TO_ARRAY_IV_46(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
+# define BOOST_PP_LIST_TO_ARRAY_IV_47(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
+# define BOOST_PP_LIST_TO_ARRAY_IV_48(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
+# define BOOST_PP_LIST_TO_ARRAY_IV_49(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
+# define BOOST_PP_LIST_TO_ARRAY_IV_50(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
+# define BOOST_PP_LIST_TO_ARRAY_IV_51(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
+# define BOOST_PP_LIST_TO_ARRAY_IV_52(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
+# define BOOST_PP_LIST_TO_ARRAY_IV_53(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
+# define BOOST_PP_LIST_TO_ARRAY_IV_54(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
+# define BOOST_PP_LIST_TO_ARRAY_IV_55(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
+# define BOOST_PP_LIST_TO_ARRAY_IV_56(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
+# define BOOST_PP_LIST_TO_ARRAY_IV_57(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
+# define BOOST_PP_LIST_TO_ARRAY_IV_58(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
+# define BOOST_PP_LIST_TO_ARRAY_IV_59(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
+# define BOOST_PP_LIST_TO_ARRAY_IV_60(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
+# define BOOST_PP_LIST_TO_ARRAY_IV_61(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
+# define BOOST_PP_LIST_TO_ARRAY_IV_62(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
+# define BOOST_PP_LIST_TO_ARRAY_IV_63(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
+# define BOOST_PP_LIST_TO_ARRAY_IV_64(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
+# endif
+# define BOOST_PP_LIST_TO_ARRAY_P(d, state) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(3, 0, state))
+# define BOOST_PP_LIST_TO_ARRAY_O(d, state) BOOST_PP_LIST_TO_ARRAY_O_I state
+# define BOOST_PP_LIST_TO_ARRAY_O_I(list, size, tuple) (BOOST_PP_LIST_REST(list), BOOST_PP_INC(size), (BOOST_PP_TUPLE_REM(size) tuple, BOOST_PP_LIST_FIRST(list)))
+#
+# /* BOOST_PP_LIST_TO_ARRAY_D */
+#
+# define BOOST_PP_LIST_TO_ARRAY_D(d, list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE_ ## d, list)
+#
+# endif /* BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP */

Added: trunk/boost/preprocessor/list/to_seq.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/list/to_seq.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* Revised by Paul Mensonides (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP
+# define BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP
+#
+# include <boost/preprocessor/list/for_each.hpp>
+#
+# /* BOOST_PP_LIST_TO_SEQ */
+#
+# define BOOST_PP_LIST_TO_SEQ(list) \
+ BOOST_PP_LIST_FOR_EACH(BOOST_PP_LIST_TO_SEQ_MACRO, ~, list) \
+ /**/
+# define BOOST_PP_LIST_TO_SEQ_MACRO(r, data, elem) (elem)
+#
+# /* BOOST_PP_LIST_TO_SEQ_R */
+#
+# define BOOST_PP_LIST_TO_SEQ_R(r, list) \
+ BOOST_PP_LIST_FOR_EACH_R(r, BOOST_PP_LIST_TO_SEQ_MACRO, ~, list) \
+ /**/
+#
+# endif /* BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP */

Modified: trunk/boost/preprocessor/seq.hpp
==============================================================================
--- trunk/boost/preprocessor/seq.hpp (original)
+++ trunk/boost/preprocessor/seq.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -35,6 +36,7 @@
 # include <boost/preprocessor/seq/size.hpp>
 # include <boost/preprocessor/seq/subseq.hpp>
 # include <boost/preprocessor/seq/to_array.hpp>
+# include <boost/preprocessor/seq/to_list.hpp>
 # include <boost/preprocessor/seq/to_tuple.hpp>
 # include <boost/preprocessor/seq/transform.hpp>
 #

Added: trunk/boost/preprocessor/seq/detail/binary_transform.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/seq/detail/binary_transform.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,40 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP
+# define BOOST_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/eat.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_SEQ_BINARY_TRANSFORM */
+#
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_SEQ_BINARY_TRANSFORM(seq) BOOST_PP_SEQ_BINARY_TRANSFORM_I(, seq)
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_I(p, seq) BOOST_PP_SEQ_BINARY_TRANSFORM_II(p ## seq)
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_II(seq) BOOST_PP_SEQ_BINARY_TRANSFORM_III(seq)
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_III(seq) BOOST_PP_CAT(BOOST_PP_SEQ_BINARY_TRANSFORM_A seq, 0)
+# else
+# define BOOST_PP_SEQ_BINARY_TRANSFORM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_BINARY_TRANSFORM_A seq, 0)
+# endif
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_A(...) (BOOST_PP_REM, __VA_ARGS__)() BOOST_PP_SEQ_BINARY_TRANSFORM_B
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_B(...) (BOOST_PP_REM, __VA_ARGS__)() BOOST_PP_SEQ_BINARY_TRANSFORM_A
+# else
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_A(e) (BOOST_PP_REM, e)() BOOST_PP_SEQ_BINARY_TRANSFORM_B
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_B(e) (BOOST_PP_REM, e)() BOOST_PP_SEQ_BINARY_TRANSFORM_A
+# endif
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_A0 (BOOST_PP_EAT, ?)
+# define BOOST_PP_SEQ_BINARY_TRANSFORM_B0 (BOOST_PP_EAT, ?)
+#
+# endif

Added: trunk/boost/preprocessor/seq/to_list.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/seq/to_list.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_SEQ_TO_LIST_HPP
+# define BOOST_PREPROCESSOR_SEQ_TO_LIST_HPP
+#
+# include <boost/preprocessor/punctuation/comma.hpp>
+# include <boost/preprocessor/punctuation/paren.hpp>
+# include <boost/preprocessor/seq/detail/binary_transform.hpp>
+#
+# /* BOOST_PP_SEQ_TO_LIST */
+#
+# define BOOST_PP_SEQ_TO_LIST(seq) BOOST_PP_SEQ_TO_LIST_I(BOOST_PP_SEQ_BINARY_TRANSFORM(seq))
+# define BOOST_PP_SEQ_TO_LIST_I(bseq) BOOST_PP_SEQ_TO_LIST_A bseq BOOST_PP_NIL BOOST_PP_SEQ_TO_LIST_B bseq
+# define BOOST_PP_SEQ_TO_LIST_A(m, e) m(BOOST_PP_LPAREN() e BOOST_PP_COMMA() BOOST_PP_SEQ_TO_LIST_A_ID)
+# define BOOST_PP_SEQ_TO_LIST_A_ID() BOOST_PP_SEQ_TO_LIST_A
+# define BOOST_PP_SEQ_TO_LIST_B(m, e) m(BOOST_PP_RPAREN() BOOST_PP_SEQ_TO_LIST_B_ID)
+# define BOOST_PP_SEQ_TO_LIST_B_ID() BOOST_PP_SEQ_TO_LIST_B
+#
+# endif

Modified: trunk/boost/preprocessor/tuple.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple.hpp (original)
+++ trunk/boost/preprocessor/tuple.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -8,6 +8,7 @@
 # */
 #
 # /* Revised by Paul Mensonides (2002) */
+# /* Revised by Edward Diener (2011) */
 #
 # /* See http://www.boost.org for most recent version. */
 #
@@ -16,8 +17,11 @@
 #
 # include <boost/preprocessor/tuple/eat.hpp>
 # include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/tuple/enum.hpp>
 # include <boost/preprocessor/tuple/rem.hpp>
 # include <boost/preprocessor/tuple/reverse.hpp>
+# include <boost/preprocessor/tuple/size.hpp>
+# include <boost/preprocessor/tuple/to_array.hpp>
 # include <boost/preprocessor/tuple/to_list.hpp>
 # include <boost/preprocessor/tuple/to_seq.hpp>
 #

Modified: trunk/boost/preprocessor/tuple/eat.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple/eat.hpp (original)
+++ trunk/boost/preprocessor/tuple/eat.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,7 +7,8 @@
 # * http://www.boost.org/LICENSE_1_0.txt)
 # */
 #
-# /* Revised by Paul Mensonides (2002) */
+# /* Revised by Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
 #
 # /* See http://www.boost.org for most recent version. */
 #
@@ -16,42 +17,90 @@
 #
 # include <boost/preprocessor/config/config.hpp>
 #
-# /* BOOST_PP_TUPLE_EAT */
+# /* BOOST_PP_EAT */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size)
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_EAT(...)
 # else
-# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size))
-# define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par
+# define BOOST_PP_EAT(x)
 # endif
 #
-# define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size
+# /* BOOST_PP_TUPLE_EAT */
 #
-# define BOOST_PP_TUPLE_EAT_0()
-# define BOOST_PP_TUPLE_EAT_1(a)
-# define BOOST_PP_TUPLE_EAT_2(a, b)
-# define BOOST_PP_TUPLE_EAT_3(a, b, c)
-# define BOOST_PP_TUPLE_EAT_4(a, b, c, d)
-# define BOOST_PP_TUPLE_EAT_5(a, b, c, d, e)
-# define BOOST_PP_TUPLE_EAT_6(a, b, c, d, e, f)
-# define BOOST_PP_TUPLE_EAT_7(a, b, c, d, e, f, g)
-# define BOOST_PP_TUPLE_EAT_8(a, b, c, d, e, f, g, h)
-# define BOOST_PP_TUPLE_EAT_9(a, b, c, d, e, f, g, h, i)
-# define BOOST_PP_TUPLE_EAT_10(a, b, c, d, e, f, g, h, i, j)
-# define BOOST_PP_TUPLE_EAT_11(a, b, c, d, e, f, g, h, i, j, k)
-# define BOOST_PP_TUPLE_EAT_12(a, b, c, d, e, f, g, h, i, j, k, l)
-# define BOOST_PP_TUPLE_EAT_13(a, b, c, d, e, f, g, h, i, j, k, l, m)
-# define BOOST_PP_TUPLE_EAT_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n)
-# define BOOST_PP_TUPLE_EAT_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-# define BOOST_PP_TUPLE_EAT_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
-# define BOOST_PP_TUPLE_EAT_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)
-# define BOOST_PP_TUPLE_EAT_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r)
-# define BOOST_PP_TUPLE_EAT_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s)
-# define BOOST_PP_TUPLE_EAT_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t)
-# define BOOST_PP_TUPLE_EAT_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u)
-# define BOOST_PP_TUPLE_EAT_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v)
-# define BOOST_PP_TUPLE_EAT_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w)
-# define BOOST_PP_TUPLE_EAT_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x)
-# define BOOST_PP_TUPLE_EAT_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y)
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_EAT
+# else
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size)
+# else
+# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size))
+# define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par
+# endif
+# define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size
+# endif
+# define BOOST_PP_TUPLE_EAT_1(e0)
+# define BOOST_PP_TUPLE_EAT_2(e0, e1)
+# define BOOST_PP_TUPLE_EAT_3(e0, e1, e2)
+# define BOOST_PP_TUPLE_EAT_4(e0, e1, e2, e3)
+# define BOOST_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4)
+# define BOOST_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5)
+# define BOOST_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6)
+# define BOOST_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7)
+# define BOOST_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8)
+# define BOOST_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
+# define BOOST_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
+# define BOOST_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
+# define BOOST_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
+# define BOOST_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
+# define BOOST_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
+# define BOOST_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
+# define BOOST_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
+# define BOOST_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
+# define BOOST_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
+# define BOOST_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
+# define BOOST_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
+# define BOOST_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
+# define BOOST_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
+# define BOOST_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
+# define BOOST_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
+# define BOOST_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
+# define BOOST_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
+# define BOOST_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
+# define BOOST_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
+# define BOOST_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
+# define BOOST_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
+# define BOOST_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
+# define BOOST_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
+# define BOOST_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
+# define BOOST_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
+# define BOOST_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
+# define BOOST_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
+# define BOOST_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
+# define BOOST_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
+# define BOOST_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
+# define BOOST_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
+# define BOOST_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
+# define BOOST_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
+# define BOOST_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
+# define BOOST_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
+# define BOOST_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
+# define BOOST_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
+# define BOOST_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
+# define BOOST_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
+# define BOOST_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
+# define BOOST_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
+# define BOOST_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
+# define BOOST_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
+# define BOOST_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
+# define BOOST_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
+# define BOOST_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
+# define BOOST_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
+# define BOOST_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
+# define BOOST_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
+# define BOOST_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
+# define BOOST_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
+# define BOOST_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
+# define BOOST_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
+# define BOOST_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63)
 #
 # endif

Modified: trunk/boost/preprocessor/tuple/elem.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple/elem.hpp (original)
+++ trunk/boost/preprocessor/tuple/elem.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,30 +7,177 @@
 # * http://www.boost.org/LICENSE_1_0.txt)
 # */
 #
-# /* Revised by Paul Mensonides (2002) */
+# /* Revised by Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
 #
 # /* See http://www.boost.org for most recent version. */
 #
 # ifndef BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
 # define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
 #
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/config/config.hpp>
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_ELEM(size, index, tuple) BOOST_PP_TUPLE_ELEM_I(size, index, tuple)
+# include <boost/preprocessor/facilities/overload.hpp>
+# include <boost/preprocessor/tuple/rem.hpp>
+# include <boost/preprocessor/variadic/elem.hpp>
+#
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
+# define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
+# define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
+# else
+# define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__)
+# endif
+# define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
+# define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
 # else
-# define BOOST_PP_TUPLE_ELEM(size, index, tuple) BOOST_PP_TUPLE_ELEM_OO((size, index, tuple))
-# define BOOST_PP_TUPLE_ELEM_OO(par) BOOST_PP_TUPLE_ELEM_I ## par
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n), BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size), tuple))
+# define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
+# define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I_OO((size, n, tuple))
+# define BOOST_PP_TUPLE_ELEM_I_OO(par) BOOST_PP_TUPLE_ELEM_I ## par
+# define BOOST_PP_TUPLE_ELEM_I(size, n, tuple) BOOST_PP_TUPLE_ELEM_II((n, BOOST_PP_TUPLE_ELEM_E_ ## size ## tuple))
+# define BOOST_PP_TUPLE_ELEM_II(par) BOOST_PP_TUPLE_ELEM_III_OO(par)
+# define BOOST_PP_TUPLE_ELEM_III_OO(par) BOOST_PP_TUPLE_ELEM_III ## par
+# define BOOST_PP_TUPLE_ELEM_III(n, etuple) BOOST_PP_TUPLE_ELEM_ ## n ## etuple
+# else
+# define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size) tuple)
+# define BOOST_PP_TUPLE_ELEM_I(x) x
+# endif
+# define BOOST_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ?, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ?, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ?, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ?, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ?, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ?, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ?, ?)
+# define BOOST_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ?)
+# define BOOST_PP_TUPLE_ELEM_E_64
+# define BOOST_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0
+# define BOOST_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1
+# define BOOST_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2
+# define BOOST_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3
+# define BOOST_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4
+# define BOOST_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5
+# define BOOST_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6
+# define BOOST_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7
+# define BOOST_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8
+# define BOOST_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9
+# define BOOST_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10
+# define BOOST_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11
+# define BOOST_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12
+# define BOOST_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13
+# define BOOST_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14
+# define BOOST_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15
+# define BOOST_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16
+# define BOOST_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17
+# define BOOST_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18
+# define BOOST_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19
+# define BOOST_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20
+# define BOOST_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21
+# define BOOST_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22
+# define BOOST_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23
+# define BOOST_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24
+# define BOOST_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25
+# define BOOST_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26
+# define BOOST_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27
+# define BOOST_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28
+# define BOOST_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29
+# define BOOST_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30
+# define BOOST_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31
+# define BOOST_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32
+# define BOOST_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33
+# define BOOST_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34
+# define BOOST_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35
+# define BOOST_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36
+# define BOOST_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37
+# define BOOST_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38
+# define BOOST_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39
+# define BOOST_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40
+# define BOOST_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41
+# define BOOST_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42
+# define BOOST_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43
+# define BOOST_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44
+# define BOOST_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45
+# define BOOST_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46
+# define BOOST_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47
+# define BOOST_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48
+# define BOOST_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49
+# define BOOST_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50
+# define BOOST_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51
+# define BOOST_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52
+# define BOOST_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53
+# define BOOST_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54
+# define BOOST_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55
+# define BOOST_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56
+# define BOOST_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57
+# define BOOST_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58
+# define BOOST_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59
+# define BOOST_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60
+# define BOOST_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61
+# define BOOST_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62
+# define BOOST_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63
 # endif
 #
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i ## t
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_II(BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i t)
-# define BOOST_PP_TUPLE_ELEM_II(res) res
-# else
-# define BOOST_PP_TUPLE_ELEM_I(s, i, t) BOOST_PP_TUPLE_ELEM_ ## s ## _ ## i t
-# endif
+# /* directly used elsewhere in Boost... */
 #
 # define BOOST_PP_TUPLE_ELEM_1_0(a) a
 #
@@ -41,345 +188,4 @@
 # define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b
 # define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c
 #
-# define BOOST_PP_TUPLE_ELEM_4_0(a, b, c, d) a
-# define BOOST_PP_TUPLE_ELEM_4_1(a, b, c, d) b
-# define BOOST_PP_TUPLE_ELEM_4_2(a, b, c, d) c
-# define BOOST_PP_TUPLE_ELEM_4_3(a, b, c, d) d
-#
-# define BOOST_PP_TUPLE_ELEM_5_0(a, b, c, d, e) a
-# define BOOST_PP_TUPLE_ELEM_5_1(a, b, c, d, e) b
-# define BOOST_PP_TUPLE_ELEM_5_2(a, b, c, d, e) c
-# define BOOST_PP_TUPLE_ELEM_5_3(a, b, c, d, e) d
-# define BOOST_PP_TUPLE_ELEM_5_4(a, b, c, d, e) e
-#
-# define BOOST_PP_TUPLE_ELEM_6_0(a, b, c, d, e, f) a
-# define BOOST_PP_TUPLE_ELEM_6_1(a, b, c, d, e, f) b
-# define BOOST_PP_TUPLE_ELEM_6_2(a, b, c, d, e, f) c
-# define BOOST_PP_TUPLE_ELEM_6_3(a, b, c, d, e, f) d
-# define BOOST_PP_TUPLE_ELEM_6_4(a, b, c, d, e, f) e
-# define BOOST_PP_TUPLE_ELEM_6_5(a, b, c, d, e, f) f
-#
-# define BOOST_PP_TUPLE_ELEM_7_0(a, b, c, d, e, f, g) a
-# define BOOST_PP_TUPLE_ELEM_7_1(a, b, c, d, e, f, g) b
-# define BOOST_PP_TUPLE_ELEM_7_2(a, b, c, d, e, f, g) c
-# define BOOST_PP_TUPLE_ELEM_7_3(a, b, c, d, e, f, g) d
-# define BOOST_PP_TUPLE_ELEM_7_4(a, b, c, d, e, f, g) e
-# define BOOST_PP_TUPLE_ELEM_7_5(a, b, c, d, e, f, g) f
-# define BOOST_PP_TUPLE_ELEM_7_6(a, b, c, d, e, f, g) g
-#
-# define BOOST_PP_TUPLE_ELEM_8_0(a, b, c, d, e, f, g, h) a
-# define BOOST_PP_TUPLE_ELEM_8_1(a, b, c, d, e, f, g, h) b
-# define BOOST_PP_TUPLE_ELEM_8_2(a, b, c, d, e, f, g, h) c
-# define BOOST_PP_TUPLE_ELEM_8_3(a, b, c, d, e, f, g, h) d
-# define BOOST_PP_TUPLE_ELEM_8_4(a, b, c, d, e, f, g, h) e
-# define BOOST_PP_TUPLE_ELEM_8_5(a, b, c, d, e, f, g, h) f
-# define BOOST_PP_TUPLE_ELEM_8_6(a, b, c, d, e, f, g, h) g
-# define BOOST_PP_TUPLE_ELEM_8_7(a, b, c, d, e, f, g, h) h
-#
-# define BOOST_PP_TUPLE_ELEM_9_0(a, b, c, d, e, f, g, h, i) a
-# define BOOST_PP_TUPLE_ELEM_9_1(a, b, c, d, e, f, g, h, i) b
-# define BOOST_PP_TUPLE_ELEM_9_2(a, b, c, d, e, f, g, h, i) c
-# define BOOST_PP_TUPLE_ELEM_9_3(a, b, c, d, e, f, g, h, i) d
-# define BOOST_PP_TUPLE_ELEM_9_4(a, b, c, d, e, f, g, h, i) e
-# define BOOST_PP_TUPLE_ELEM_9_5(a, b, c, d, e, f, g, h, i) f
-# define BOOST_PP_TUPLE_ELEM_9_6(a, b, c, d, e, f, g, h, i) g
-# define BOOST_PP_TUPLE_ELEM_9_7(a, b, c, d, e, f, g, h, i) h
-# define BOOST_PP_TUPLE_ELEM_9_8(a, b, c, d, e, f, g, h, i) i
-#
-# define BOOST_PP_TUPLE_ELEM_10_0(a, b, c, d, e, f, g, h, i, j) a
-# define BOOST_PP_TUPLE_ELEM_10_1(a, b, c, d, e, f, g, h, i, j) b
-# define BOOST_PP_TUPLE_ELEM_10_2(a, b, c, d, e, f, g, h, i, j) c
-# define BOOST_PP_TUPLE_ELEM_10_3(a, b, c, d, e, f, g, h, i, j) d
-# define BOOST_PP_TUPLE_ELEM_10_4(a, b, c, d, e, f, g, h, i, j) e
-# define BOOST_PP_TUPLE_ELEM_10_5(a, b, c, d, e, f, g, h, i, j) f
-# define BOOST_PP_TUPLE_ELEM_10_6(a, b, c, d, e, f, g, h, i, j) g
-# define BOOST_PP_TUPLE_ELEM_10_7(a, b, c, d, e, f, g, h, i, j) h
-# define BOOST_PP_TUPLE_ELEM_10_8(a, b, c, d, e, f, g, h, i, j) i
-# define BOOST_PP_TUPLE_ELEM_10_9(a, b, c, d, e, f, g, h, i, j) j
-#
-# define BOOST_PP_TUPLE_ELEM_11_0(a, b, c, d, e, f, g, h, i, j, k) a
-# define BOOST_PP_TUPLE_ELEM_11_1(a, b, c, d, e, f, g, h, i, j, k) b
-# define BOOST_PP_TUPLE_ELEM_11_2(a, b, c, d, e, f, g, h, i, j, k) c
-# define BOOST_PP_TUPLE_ELEM_11_3(a, b, c, d, e, f, g, h, i, j, k) d
-# define BOOST_PP_TUPLE_ELEM_11_4(a, b, c, d, e, f, g, h, i, j, k) e
-# define BOOST_PP_TUPLE_ELEM_11_5(a, b, c, d, e, f, g, h, i, j, k) f
-# define BOOST_PP_TUPLE_ELEM_11_6(a, b, c, d, e, f, g, h, i, j, k) g
-# define BOOST_PP_TUPLE_ELEM_11_7(a, b, c, d, e, f, g, h, i, j, k) h
-# define BOOST_PP_TUPLE_ELEM_11_8(a, b, c, d, e, f, g, h, i, j, k) i
-# define BOOST_PP_TUPLE_ELEM_11_9(a, b, c, d, e, f, g, h, i, j, k) j
-# define BOOST_PP_TUPLE_ELEM_11_10(a, b, c, d, e, f, g, h, i, j, k) k
-#
-# define BOOST_PP_TUPLE_ELEM_12_0(a, b, c, d, e, f, g, h, i, j, k, l) a
-# define BOOST_PP_TUPLE_ELEM_12_1(a, b, c, d, e, f, g, h, i, j, k, l) b
-# define BOOST_PP_TUPLE_ELEM_12_2(a, b, c, d, e, f, g, h, i, j, k, l) c
-# define BOOST_PP_TUPLE_ELEM_12_3(a, b, c, d, e, f, g, h, i, j, k, l) d
-# define BOOST_PP_TUPLE_ELEM_12_4(a, b, c, d, e, f, g, h, i, j, k, l) e
-# define BOOST_PP_TUPLE_ELEM_12_5(a, b, c, d, e, f, g, h, i, j, k, l) f
-# define BOOST_PP_TUPLE_ELEM_12_6(a, b, c, d, e, f, g, h, i, j, k, l) g
-# define BOOST_PP_TUPLE_ELEM_12_7(a, b, c, d, e, f, g, h, i, j, k, l) h
-# define BOOST_PP_TUPLE_ELEM_12_8(a, b, c, d, e, f, g, h, i, j, k, l) i
-# define BOOST_PP_TUPLE_ELEM_12_9(a, b, c, d, e, f, g, h, i, j, k, l) j
-# define BOOST_PP_TUPLE_ELEM_12_10(a, b, c, d, e, f, g, h, i, j, k, l) k
-# define BOOST_PP_TUPLE_ELEM_12_11(a, b, c, d, e, f, g, h, i, j, k, l) l
-#
-# define BOOST_PP_TUPLE_ELEM_13_0(a, b, c, d, e, f, g, h, i, j, k, l, m) a
-# define BOOST_PP_TUPLE_ELEM_13_1(a, b, c, d, e, f, g, h, i, j, k, l, m) b
-# define BOOST_PP_TUPLE_ELEM_13_2(a, b, c, d, e, f, g, h, i, j, k, l, m) c
-# define BOOST_PP_TUPLE_ELEM_13_3(a, b, c, d, e, f, g, h, i, j, k, l, m) d
-# define BOOST_PP_TUPLE_ELEM_13_4(a, b, c, d, e, f, g, h, i, j, k, l, m) e
-# define BOOST_PP_TUPLE_ELEM_13_5(a, b, c, d, e, f, g, h, i, j, k, l, m) f
-# define BOOST_PP_TUPLE_ELEM_13_6(a, b, c, d, e, f, g, h, i, j, k, l, m) g
-# define BOOST_PP_TUPLE_ELEM_13_7(a, b, c, d, e, f, g, h, i, j, k, l, m) h
-# define BOOST_PP_TUPLE_ELEM_13_8(a, b, c, d, e, f, g, h, i, j, k, l, m) i
-# define BOOST_PP_TUPLE_ELEM_13_9(a, b, c, d, e, f, g, h, i, j, k, l, m) j
-# define BOOST_PP_TUPLE_ELEM_13_10(a, b, c, d, e, f, g, h, i, j, k, l, m) k
-# define BOOST_PP_TUPLE_ELEM_13_11(a, b, c, d, e, f, g, h, i, j, k, l, m) l
-# define BOOST_PP_TUPLE_ELEM_13_12(a, b, c, d, e, f, g, h, i, j, k, l, m) m
-#
-# define BOOST_PP_TUPLE_ELEM_14_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n) a
-# define BOOST_PP_TUPLE_ELEM_14_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n) b
-# define BOOST_PP_TUPLE_ELEM_14_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n) c
-# define BOOST_PP_TUPLE_ELEM_14_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n) d
-# define BOOST_PP_TUPLE_ELEM_14_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n) e
-# define BOOST_PP_TUPLE_ELEM_14_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n) f
-# define BOOST_PP_TUPLE_ELEM_14_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n) g
-# define BOOST_PP_TUPLE_ELEM_14_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n) h
-# define BOOST_PP_TUPLE_ELEM_14_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n) i
-# define BOOST_PP_TUPLE_ELEM_14_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n) j
-# define BOOST_PP_TUPLE_ELEM_14_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n) k
-# define BOOST_PP_TUPLE_ELEM_14_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n) l
-# define BOOST_PP_TUPLE_ELEM_14_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n) m
-# define BOOST_PP_TUPLE_ELEM_14_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n) n
-#
-# define BOOST_PP_TUPLE_ELEM_15_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) a
-# define BOOST_PP_TUPLE_ELEM_15_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) b
-# define BOOST_PP_TUPLE_ELEM_15_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) c
-# define BOOST_PP_TUPLE_ELEM_15_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) d
-# define BOOST_PP_TUPLE_ELEM_15_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) e
-# define BOOST_PP_TUPLE_ELEM_15_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) f
-# define BOOST_PP_TUPLE_ELEM_15_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) g
-# define BOOST_PP_TUPLE_ELEM_15_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) h
-# define BOOST_PP_TUPLE_ELEM_15_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) i
-# define BOOST_PP_TUPLE_ELEM_15_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) j
-# define BOOST_PP_TUPLE_ELEM_15_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) k
-# define BOOST_PP_TUPLE_ELEM_15_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) l
-# define BOOST_PP_TUPLE_ELEM_15_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) m
-# define BOOST_PP_TUPLE_ELEM_15_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) n
-# define BOOST_PP_TUPLE_ELEM_15_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) o
-#
-# define BOOST_PP_TUPLE_ELEM_16_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) a
-# define BOOST_PP_TUPLE_ELEM_16_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) b
-# define BOOST_PP_TUPLE_ELEM_16_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) c
-# define BOOST_PP_TUPLE_ELEM_16_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) d
-# define BOOST_PP_TUPLE_ELEM_16_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) e
-# define BOOST_PP_TUPLE_ELEM_16_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) f
-# define BOOST_PP_TUPLE_ELEM_16_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) g
-# define BOOST_PP_TUPLE_ELEM_16_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) h
-# define BOOST_PP_TUPLE_ELEM_16_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) i
-# define BOOST_PP_TUPLE_ELEM_16_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) j
-# define BOOST_PP_TUPLE_ELEM_16_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) k
-# define BOOST_PP_TUPLE_ELEM_16_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) l
-# define BOOST_PP_TUPLE_ELEM_16_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) m
-# define BOOST_PP_TUPLE_ELEM_16_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) n
-# define BOOST_PP_TUPLE_ELEM_16_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) o
-# define BOOST_PP_TUPLE_ELEM_16_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) p
-#
-# define BOOST_PP_TUPLE_ELEM_17_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) a
-# define BOOST_PP_TUPLE_ELEM_17_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) b
-# define BOOST_PP_TUPLE_ELEM_17_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) c
-# define BOOST_PP_TUPLE_ELEM_17_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) d
-# define BOOST_PP_TUPLE_ELEM_17_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) e
-# define BOOST_PP_TUPLE_ELEM_17_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) f
-# define BOOST_PP_TUPLE_ELEM_17_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) g
-# define BOOST_PP_TUPLE_ELEM_17_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) h
-# define BOOST_PP_TUPLE_ELEM_17_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) i
-# define BOOST_PP_TUPLE_ELEM_17_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) j
-# define BOOST_PP_TUPLE_ELEM_17_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) k
-# define BOOST_PP_TUPLE_ELEM_17_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) l
-# define BOOST_PP_TUPLE_ELEM_17_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) m
-# define BOOST_PP_TUPLE_ELEM_17_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) n
-# define BOOST_PP_TUPLE_ELEM_17_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) o
-# define BOOST_PP_TUPLE_ELEM_17_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) p
-# define BOOST_PP_TUPLE_ELEM_17_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) q
-#
-# define BOOST_PP_TUPLE_ELEM_18_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) a
-# define BOOST_PP_TUPLE_ELEM_18_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) b
-# define BOOST_PP_TUPLE_ELEM_18_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) c
-# define BOOST_PP_TUPLE_ELEM_18_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) d
-# define BOOST_PP_TUPLE_ELEM_18_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) e
-# define BOOST_PP_TUPLE_ELEM_18_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) f
-# define BOOST_PP_TUPLE_ELEM_18_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) g
-# define BOOST_PP_TUPLE_ELEM_18_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) h
-# define BOOST_PP_TUPLE_ELEM_18_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) i
-# define BOOST_PP_TUPLE_ELEM_18_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) j
-# define BOOST_PP_TUPLE_ELEM_18_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) k
-# define BOOST_PP_TUPLE_ELEM_18_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) l
-# define BOOST_PP_TUPLE_ELEM_18_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) m
-# define BOOST_PP_TUPLE_ELEM_18_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) n
-# define BOOST_PP_TUPLE_ELEM_18_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) o
-# define BOOST_PP_TUPLE_ELEM_18_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) p
-# define BOOST_PP_TUPLE_ELEM_18_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) q
-# define BOOST_PP_TUPLE_ELEM_18_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) r
-#
-# define BOOST_PP_TUPLE_ELEM_19_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) a
-# define BOOST_PP_TUPLE_ELEM_19_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) b
-# define BOOST_PP_TUPLE_ELEM_19_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) c
-# define BOOST_PP_TUPLE_ELEM_19_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) d
-# define BOOST_PP_TUPLE_ELEM_19_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) e
-# define BOOST_PP_TUPLE_ELEM_19_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) f
-# define BOOST_PP_TUPLE_ELEM_19_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) g
-# define BOOST_PP_TUPLE_ELEM_19_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) h
-# define BOOST_PP_TUPLE_ELEM_19_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) i
-# define BOOST_PP_TUPLE_ELEM_19_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) j
-# define BOOST_PP_TUPLE_ELEM_19_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) k
-# define BOOST_PP_TUPLE_ELEM_19_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) l
-# define BOOST_PP_TUPLE_ELEM_19_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) m
-# define BOOST_PP_TUPLE_ELEM_19_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) n
-# define BOOST_PP_TUPLE_ELEM_19_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) o
-# define BOOST_PP_TUPLE_ELEM_19_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) p
-# define BOOST_PP_TUPLE_ELEM_19_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) q
-# define BOOST_PP_TUPLE_ELEM_19_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) r
-# define BOOST_PP_TUPLE_ELEM_19_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) s
-#
-# define BOOST_PP_TUPLE_ELEM_20_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) a
-# define BOOST_PP_TUPLE_ELEM_20_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) b
-# define BOOST_PP_TUPLE_ELEM_20_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) c
-# define BOOST_PP_TUPLE_ELEM_20_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) d
-# define BOOST_PP_TUPLE_ELEM_20_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) e
-# define BOOST_PP_TUPLE_ELEM_20_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) f
-# define BOOST_PP_TUPLE_ELEM_20_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) g
-# define BOOST_PP_TUPLE_ELEM_20_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) h
-# define BOOST_PP_TUPLE_ELEM_20_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) i
-# define BOOST_PP_TUPLE_ELEM_20_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) j
-# define BOOST_PP_TUPLE_ELEM_20_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) k
-# define BOOST_PP_TUPLE_ELEM_20_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) l
-# define BOOST_PP_TUPLE_ELEM_20_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) m
-# define BOOST_PP_TUPLE_ELEM_20_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) n
-# define BOOST_PP_TUPLE_ELEM_20_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) o
-# define BOOST_PP_TUPLE_ELEM_20_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) p
-# define BOOST_PP_TUPLE_ELEM_20_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) q
-# define BOOST_PP_TUPLE_ELEM_20_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) r
-# define BOOST_PP_TUPLE_ELEM_20_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) s
-# define BOOST_PP_TUPLE_ELEM_20_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) t
-#
-# define BOOST_PP_TUPLE_ELEM_21_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) a
-# define BOOST_PP_TUPLE_ELEM_21_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) b
-# define BOOST_PP_TUPLE_ELEM_21_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) c
-# define BOOST_PP_TUPLE_ELEM_21_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) d
-# define BOOST_PP_TUPLE_ELEM_21_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) e
-# define BOOST_PP_TUPLE_ELEM_21_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) f
-# define BOOST_PP_TUPLE_ELEM_21_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) g
-# define BOOST_PP_TUPLE_ELEM_21_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) h
-# define BOOST_PP_TUPLE_ELEM_21_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) i
-# define BOOST_PP_TUPLE_ELEM_21_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) j
-# define BOOST_PP_TUPLE_ELEM_21_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) k
-# define BOOST_PP_TUPLE_ELEM_21_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) l
-# define BOOST_PP_TUPLE_ELEM_21_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) m
-# define BOOST_PP_TUPLE_ELEM_21_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) n
-# define BOOST_PP_TUPLE_ELEM_21_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) o
-# define BOOST_PP_TUPLE_ELEM_21_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) p
-# define BOOST_PP_TUPLE_ELEM_21_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) q
-# define BOOST_PP_TUPLE_ELEM_21_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) r
-# define BOOST_PP_TUPLE_ELEM_21_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) s
-# define BOOST_PP_TUPLE_ELEM_21_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) t
-# define BOOST_PP_TUPLE_ELEM_21_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) u
-#
-# define BOOST_PP_TUPLE_ELEM_22_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) a
-# define BOOST_PP_TUPLE_ELEM_22_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) b
-# define BOOST_PP_TUPLE_ELEM_22_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) c
-# define BOOST_PP_TUPLE_ELEM_22_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) d
-# define BOOST_PP_TUPLE_ELEM_22_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) e
-# define BOOST_PP_TUPLE_ELEM_22_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) f
-# define BOOST_PP_TUPLE_ELEM_22_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) g
-# define BOOST_PP_TUPLE_ELEM_22_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) h
-# define BOOST_PP_TUPLE_ELEM_22_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) i
-# define BOOST_PP_TUPLE_ELEM_22_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) j
-# define BOOST_PP_TUPLE_ELEM_22_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) k
-# define BOOST_PP_TUPLE_ELEM_22_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) l
-# define BOOST_PP_TUPLE_ELEM_22_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) m
-# define BOOST_PP_TUPLE_ELEM_22_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) n
-# define BOOST_PP_TUPLE_ELEM_22_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) o
-# define BOOST_PP_TUPLE_ELEM_22_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) p
-# define BOOST_PP_TUPLE_ELEM_22_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) q
-# define BOOST_PP_TUPLE_ELEM_22_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) r
-# define BOOST_PP_TUPLE_ELEM_22_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) s
-# define BOOST_PP_TUPLE_ELEM_22_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) t
-# define BOOST_PP_TUPLE_ELEM_22_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) u
-# define BOOST_PP_TUPLE_ELEM_22_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) v
-#
-# define BOOST_PP_TUPLE_ELEM_23_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) a
-# define BOOST_PP_TUPLE_ELEM_23_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) b
-# define BOOST_PP_TUPLE_ELEM_23_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) c
-# define BOOST_PP_TUPLE_ELEM_23_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) d
-# define BOOST_PP_TUPLE_ELEM_23_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) e
-# define BOOST_PP_TUPLE_ELEM_23_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) f
-# define BOOST_PP_TUPLE_ELEM_23_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) g
-# define BOOST_PP_TUPLE_ELEM_23_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) h
-# define BOOST_PP_TUPLE_ELEM_23_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) i
-# define BOOST_PP_TUPLE_ELEM_23_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) j
-# define BOOST_PP_TUPLE_ELEM_23_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) k
-# define BOOST_PP_TUPLE_ELEM_23_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) l
-# define BOOST_PP_TUPLE_ELEM_23_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) m
-# define BOOST_PP_TUPLE_ELEM_23_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) n
-# define BOOST_PP_TUPLE_ELEM_23_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) o
-# define BOOST_PP_TUPLE_ELEM_23_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) p
-# define BOOST_PP_TUPLE_ELEM_23_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) q
-# define BOOST_PP_TUPLE_ELEM_23_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) r
-# define BOOST_PP_TUPLE_ELEM_23_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) s
-# define BOOST_PP_TUPLE_ELEM_23_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) t
-# define BOOST_PP_TUPLE_ELEM_23_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) u
-# define BOOST_PP_TUPLE_ELEM_23_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) v
-# define BOOST_PP_TUPLE_ELEM_23_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) w
-#
-# define BOOST_PP_TUPLE_ELEM_24_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) a
-# define BOOST_PP_TUPLE_ELEM_24_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) b
-# define BOOST_PP_TUPLE_ELEM_24_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) c
-# define BOOST_PP_TUPLE_ELEM_24_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) d
-# define BOOST_PP_TUPLE_ELEM_24_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) e
-# define BOOST_PP_TUPLE_ELEM_24_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) f
-# define BOOST_PP_TUPLE_ELEM_24_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) g
-# define BOOST_PP_TUPLE_ELEM_24_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) h
-# define BOOST_PP_TUPLE_ELEM_24_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) i
-# define BOOST_PP_TUPLE_ELEM_24_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) j
-# define BOOST_PP_TUPLE_ELEM_24_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) k
-# define BOOST_PP_TUPLE_ELEM_24_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) l
-# define BOOST_PP_TUPLE_ELEM_24_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) m
-# define BOOST_PP_TUPLE_ELEM_24_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) n
-# define BOOST_PP_TUPLE_ELEM_24_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) o
-# define BOOST_PP_TUPLE_ELEM_24_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) p
-# define BOOST_PP_TUPLE_ELEM_24_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) q
-# define BOOST_PP_TUPLE_ELEM_24_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) r
-# define BOOST_PP_TUPLE_ELEM_24_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) s
-# define BOOST_PP_TUPLE_ELEM_24_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) t
-# define BOOST_PP_TUPLE_ELEM_24_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) u
-# define BOOST_PP_TUPLE_ELEM_24_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) v
-# define BOOST_PP_TUPLE_ELEM_24_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) w
-# define BOOST_PP_TUPLE_ELEM_24_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) x
-#
-# define BOOST_PP_TUPLE_ELEM_25_0(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) a
-# define BOOST_PP_TUPLE_ELEM_25_1(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) b
-# define BOOST_PP_TUPLE_ELEM_25_2(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) c
-# define BOOST_PP_TUPLE_ELEM_25_3(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) d
-# define BOOST_PP_TUPLE_ELEM_25_4(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) e
-# define BOOST_PP_TUPLE_ELEM_25_5(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) f
-# define BOOST_PP_TUPLE_ELEM_25_6(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) g
-# define BOOST_PP_TUPLE_ELEM_25_7(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) h
-# define BOOST_PP_TUPLE_ELEM_25_8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) i
-# define BOOST_PP_TUPLE_ELEM_25_9(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) j
-# define BOOST_PP_TUPLE_ELEM_25_10(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) k
-# define BOOST_PP_TUPLE_ELEM_25_11(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) l
-# define BOOST_PP_TUPLE_ELEM_25_12(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) m
-# define BOOST_PP_TUPLE_ELEM_25_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) n
-# define BOOST_PP_TUPLE_ELEM_25_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) o
-# define BOOST_PP_TUPLE_ELEM_25_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) p
-# define BOOST_PP_TUPLE_ELEM_25_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) q
-# define BOOST_PP_TUPLE_ELEM_25_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) r
-# define BOOST_PP_TUPLE_ELEM_25_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) s
-# define BOOST_PP_TUPLE_ELEM_25_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) t
-# define BOOST_PP_TUPLE_ELEM_25_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) u
-# define BOOST_PP_TUPLE_ELEM_25_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) v
-# define BOOST_PP_TUPLE_ELEM_25_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) w
-# define BOOST_PP_TUPLE_ELEM_25_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) x
-# define BOOST_PP_TUPLE_ELEM_25_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) y
-#
 # endif

Added: trunk/boost/preprocessor/tuple/enum.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/tuple/enum.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_TUPLE_ENUM_HPP
+# define BOOST_PREPROCESSOR_TUPLE_ENUM_HPP
+#
+# include <boost/preprocessor/tuple/rem.hpp>
+#
+# /* BOOST_PP_TUPLE_ENUM */
+#
+# define BOOST_PP_TUPLE_ENUM BOOST_PP_TUPLE_REM_CTOR
+#
+# endif

Modified: trunk/boost/preprocessor/tuple/rem.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple/rem.hpp (original)
+++ trunk/boost/preprocessor/tuple/rem.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -12,61 +13,122 @@
 # ifndef BOOST_PREPROCESSOR_TUPLE_REM_HPP
 # define BOOST_PREPROCESSOR_TUPLE_REM_HPP
 #
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/overload.hpp>
 #
-# /* BOOST_PP_TUPLE_REM */
+# /* BOOST_PP_REM */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_I(size)
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_REM(...) __VA_ARGS__
 # else
-# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_OO((size))
-# define BOOST_PP_TUPLE_REM_OO(par) BOOST_PP_TUPLE_REM_I ## par
+# define BOOST_PP_REM(x) x
 # endif
 #
-# define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size
-#
-# define BOOST_PP_TUPLE_REM_0()
-# define BOOST_PP_TUPLE_REM_1(a) a
-# define BOOST_PP_TUPLE_REM_2(a, b) a, b
-# define BOOST_PP_TUPLE_REM_3(a, b, c) a, b, c
-# define BOOST_PP_TUPLE_REM_4(a, b, c, d) a, b, c, d
-# define BOOST_PP_TUPLE_REM_5(a, b, c, d, e) a, b, c, d, e
-# define BOOST_PP_TUPLE_REM_6(a, b, c, d, e, f) a, b, c, d, e, f
-# define BOOST_PP_TUPLE_REM_7(a, b, c, d, e, f, g) a, b, c, d, e, f, g
-# define BOOST_PP_TUPLE_REM_8(a, b, c, d, e, f, g, h) a, b, c, d, e, f, g, h
-# define BOOST_PP_TUPLE_REM_9(a, b, c, d, e, f, g, h, i) a, b, c, d, e, f, g, h, i
-# define BOOST_PP_TUPLE_REM_10(a, b, c, d, e, f, g, h, i, j) a, b, c, d, e, f, g, h, i, j
-# define BOOST_PP_TUPLE_REM_11(a, b, c, d, e, f, g, h, i, j, k) a, b, c, d, e, f, g, h, i, j, k
-# define BOOST_PP_TUPLE_REM_12(a, b, c, d, e, f, g, h, i, j, k, l) a, b, c, d, e, f, g, h, i, j, k, l
-# define BOOST_PP_TUPLE_REM_13(a, b, c, d, e, f, g, h, i, j, k, l, m) a, b, c, d, e, f, g, h, i, j, k, l, m
-# define BOOST_PP_TUPLE_REM_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) a, b, c, d, e, f, g, h, i, j, k, l, m, n
-# define BOOST_PP_TUPLE_REM_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o
-# define BOOST_PP_TUPLE_REM_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p
-# define BOOST_PP_TUPLE_REM_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q
-# define BOOST_PP_TUPLE_REM_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r
-# define BOOST_PP_TUPLE_REM_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s
-# define BOOST_PP_TUPLE_REM_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t
-# define BOOST_PP_TUPLE_REM_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u
-# define BOOST_PP_TUPLE_REM_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v
-# define BOOST_PP_TUPLE_REM_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w
-# define BOOST_PP_TUPLE_REM_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x
-# define BOOST_PP_TUPLE_REM_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y
-#
-# /* BOOST_PP_TUPLE_REM_CTOR */
+# /* BOOST_PP_TUPLE_REM */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_TUPLE_REM(size) BOOST_PP_REM
 # else
-# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_D(size, tuple)
-# define BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_I(size)
+# else
+# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_OO((size))
+# define BOOST_PP_TUPLE_REM_OO(par) BOOST_PP_TUPLE_REM_I ## par
+# endif
+# define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size
 # endif
+# define BOOST_PP_TUPLE_REM_1(e0) e0
+# define BOOST_PP_TUPLE_REM_2(e0, e1) e0, e1
+# define BOOST_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2
+# define BOOST_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3
+# define BOOST_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4
+# define BOOST_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5
+# define BOOST_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6
+# define BOOST_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7
+# define BOOST_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8
+# define BOOST_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9
+# define BOOST_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10
+# define BOOST_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11
+# define BOOST_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12
+# define BOOST_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13
+# define BOOST_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14
+# define BOOST_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15
+# define BOOST_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16
+# define BOOST_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17
+# define BOOST_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18
+# define BOOST_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19
+# define BOOST_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20
+# define BOOST_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21
+# define BOOST_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22
+# define BOOST_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23
+# define BOOST_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24
+# define BOOST_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25
+# define BOOST_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26
+# define BOOST_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27
+# define BOOST_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28
+# define BOOST_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29
+# define BOOST_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30
+# define BOOST_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31
+# define BOOST_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32
+# define BOOST_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33
+# define BOOST_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34
+# define BOOST_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35
+# define BOOST_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36
+# define BOOST_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37
+# define BOOST_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38
+# define BOOST_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39
+# define BOOST_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40
+# define BOOST_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41
+# define BOOST_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42
+# define BOOST_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43
+# define BOOST_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44
+# define BOOST_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45
+# define BOOST_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46
+# define BOOST_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47
+# define BOOST_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48
+# define BOOST_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49
+# define BOOST_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50
+# define BOOST_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51
+# define BOOST_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52
+# define BOOST_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53
+# define BOOST_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54
+# define BOOST_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55
+# define BOOST_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56
+# define BOOST_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57
+# define BOOST_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58
+# define BOOST_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59
+# define BOOST_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60
+# define BOOST_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61
+# define BOOST_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62
+# define BOOST_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63
+#
+# /* BOOST_PP_TUPLE_REM_CTOR */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
+# define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args)
+# define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,)
+# else
+# define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__)
+# endif
+# define BOOST_PP_TUPLE_REM_CTOR_O_1(tuple) BOOST_PP_REM tuple
+# define BOOST_PP_TUPLE_REM_CTOR_O_2(size, tuple) BOOST_PP_TUPLE_REM_CTOR_O_1(tuple)
 # else
-# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) BOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple))
-# define BOOST_PP_TUPLE_REM_CTOR_OO(par) BOOST_PP_TUPLE_REM_CTOR_II ## par
-# define BOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
+# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
+# else
+# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_D(size, tuple)
+# define BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
+# endif
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
+# else
+# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) BOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple))
+# define BOOST_PP_TUPLE_REM_CTOR_OO(par) BOOST_PP_TUPLE_REM_CTOR_II ## par
+# define BOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
+# endif
 # endif
 #
 # endif

Modified: trunk/boost/preprocessor/tuple/reverse.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple/reverse.hpp (original)
+++ trunk/boost/preprocessor/tuple/reverse.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,56 +7,108 @@
 # * http://www.boost.org/LICENSE_1_0.txt)
 # */
 #
-# /* Revised by Paul Mensonides (2002) */
+# /* Revised by Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
 #
 # /* See http://www.boost.org for most recent version. */
 #
 # ifndef BOOST_PREPROCESSOR_TUPLE_REVERSE_HPP
 # define BOOST_PREPROCESSOR_TUPLE_REVERSE_HPP
 #
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/overload.hpp>
 #
 # /* BOOST_PP_TUPLE_REVERSE */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_REVERSE(size, tuple) BOOST_PP_TUPLE_REVERSE_I(size, tuple)
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_ ## s t
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_REVERSE(...) BOOST_PP_TUPLE_REVERSE_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REVERSE_O_, __VA_ARGS__), (__VA_ARGS__))
+# define BOOST_PP_TUPLE_REVERSE_I(m, args) BOOST_PP_TUPLE_REVERSE_II(m, args)
+# define BOOST_PP_TUPLE_REVERSE_II(m, args) BOOST_PP_CAT(m ## args,)
 # else
-# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_II(BOOST_PP_TUPLE_REVERSE_ ## s t)
-# define BOOST_PP_TUPLE_REVERSE_II(res) res
+# define BOOST_PP_TUPLE_REVERSE(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REVERSE_O_, __VA_ARGS__)(__VA_ARGS__)
 # endif
+# define BOOST_PP_TUPLE_REVERSE_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_REVERSE_, BOOST_PP_VARIADIC_SIZE tuple) tuple
+# define BOOST_PP_TUPLE_REVERSE_O_2(size, tuple) BOOST_PP_TUPLE_REVERSE_O_1(tuple)
 # else
-# define BOOST_PP_TUPLE_REVERSE(size, tuple) BOOST_PP_TUPLE_REVERSE_OO((size, tuple))
-# define BOOST_PP_TUPLE_REVERSE_OO(par) BOOST_PP_TUPLE_REVERSE_I ## par
-# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_ ## s ## t
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_REVERSE(size, tuple) BOOST_PP_TUPLE_REVERSE_I(size, tuple)
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_ ## s t
+# else
+# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_II(BOOST_PP_TUPLE_REVERSE_ ## s t)
+# define BOOST_PP_TUPLE_REVERSE_II(res) res
+# endif
+# else
+# define BOOST_PP_TUPLE_REVERSE(size, tuple) BOOST_PP_TUPLE_REVERSE_OO((size, tuple))
+# define BOOST_PP_TUPLE_REVERSE_OO(par) BOOST_PP_TUPLE_REVERSE_I ## par
+# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_ ## s ## t
+# endif
 # endif
-#
-# define BOOST_PP_TUPLE_REVERSE_0() ()
-# define BOOST_PP_TUPLE_REVERSE_1(a) (a)
-# define BOOST_PP_TUPLE_REVERSE_2(a, b) (b, a)
-# define BOOST_PP_TUPLE_REVERSE_3(a, b, c) (c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_4(a, b, c, d) (d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_5(a, b, c, d, e) (e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_6(a, b, c, d, e, f) (f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_7(a, b, c, d, e, f, g) (g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_8(a, b, c, d, e, f, g, h) (h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_9(a, b, c, d, e, f, g, h, i) (i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_10(a, b, c, d, e, f, g, h, i, j) (j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_11(a, b, c, d, e, f, g, h, i, j, k) (k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_12(a, b, c, d, e, f, g, h, i, j, k, l) (l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_13(a, b, c, d, e, f, g, h, i, j, k, l, m) (m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) (n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) (o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) (p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) (q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) (r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) (s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) (t, s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) (u, t, s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) (v, u, t, s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) (w, v, u, t, s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) (x, w, v, u, t, s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
-# define BOOST_PP_TUPLE_REVERSE_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) (y, x, w, v, u, t, s, r, q, p, o, n, m, l, k, j, i, h, g, f, e, d, c, b, a)
+# define BOOST_PP_TUPLE_REVERSE_1(e0) (e0)
+# define BOOST_PP_TUPLE_REVERSE_2(e0, e1) (e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_3(e0, e1, e2) (e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_4(e0, e1, e2, e3) (e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_5(e0, e1, e2, e3, e4) (e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_6(e0, e1, e2, e3, e4, e5) (e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_7(e0, e1, e2, e3, e4, e5, e6) (e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_8(e0, e1, e2, e3, e4, e5, e6, e7) (e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define BOOST_PP_TUPLE_REVERSE_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e63, e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
 #
 # endif

Added: trunk/boost/preprocessor/tuple/size.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/tuple/size.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_TUPLE_SIZE_HPP
+# define BOOST_PREPROCESSOR_TUPLE_SIZE_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/variadic/size.hpp>
+#
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,)
+# else
+# define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_VARIADIC_SIZE tuple
+# endif
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/tuple/to_array.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/tuple/to_array.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,37 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_TUPLE_TO_ARRAY_HPP
+# define BOOST_PREPROCESSOR_TUPLE_TO_ARRAY_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/overload.hpp>
+# include <boost/preprocessor/variadic/size.hpp>
+#
+# /* BOOST_PP_TUPLE_TO_ARRAY */
+#
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_ARRAY_, __VA_ARGS__), (__VA_ARGS__))
+# define BOOST_PP_TUPLE_TO_ARRAY_I(m, args) BOOST_PP_TUPLE_TO_ARRAY_II(m, args)
+# define BOOST_PP_TUPLE_TO_ARRAY_II(m, args) BOOST_PP_CAT(m ## args,)
+# else
+# define BOOST_PP_TUPLE_TO_ARRAY(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_ARRAY_, __VA_ARGS__)(__VA_ARGS__)
+# endif
+# define BOOST_PP_TUPLE_TO_ARRAY_1(tuple) (BOOST_PP_VARIADIC_SIZE tuple, tuple)
+# define BOOST_PP_TUPLE_TO_ARRAY_2(size, tuple) (size, tuple)
+# else
+# define BOOST_PP_TUPLE_TO_ARRAY(size, tuple) (size, tuple)
+# endif
+#
+# endif

Modified: trunk/boost/preprocessor/tuple/to_list.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple/to_list.hpp (original)
+++ trunk/boost/preprocessor/tuple/to_list.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,56 +7,110 @@
 # * http://www.boost.org/LICENSE_1_0.txt)
 # */
 #
-# /* Revised by Paul Mensonides (2002) */
+# /* Revised by Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
 #
 # /* See http://www.boost.org for most recent version. */
 #
 # ifndef BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
 # define BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
 #
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/overload.hpp>
+# include <boost/preprocessor/variadic/size.hpp>
 #
 # /* BOOST_PP_TUPLE_TO_LIST */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_I(size, tuple)
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s t
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
+# define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
+# define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
 # else
-# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_II(BOOST_PP_TUPLE_TO_LIST_ ## s t)
-# define BOOST_PP_TUPLE_TO_LIST_II(res) res
+# define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
 # endif
+# define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_VARIADIC_SIZE tuple) tuple
+# define BOOST_PP_TUPLE_TO_LIST_O_2(size, tuple) BOOST_PP_TUPLE_TO_LIST_O_1(tuple)
 # else
-# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_OO((size, tuple))
-# define BOOST_PP_TUPLE_TO_LIST_OO(par) BOOST_PP_TUPLE_TO_LIST_I ## par
-# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s ## t
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_I(size, tuple)
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s t
+# else
+# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_II(BOOST_PP_TUPLE_TO_LIST_ ## s t)
+# define BOOST_PP_TUPLE_TO_LIST_II(res) res
+# endif
+# else
+# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_OO((size, tuple))
+# define BOOST_PP_TUPLE_TO_LIST_OO(par) BOOST_PP_TUPLE_TO_LIST_I ## par
+# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s ## t
+# endif
 # endif
 #
-# define BOOST_PP_TUPLE_TO_LIST_0() BOOST_PP_NIL
-# define BOOST_PP_TUPLE_TO_LIST_1(a) (a, BOOST_PP_NIL)
-# define BOOST_PP_TUPLE_TO_LIST_2(a, b) (a, (b, BOOST_PP_NIL))
-# define BOOST_PP_TUPLE_TO_LIST_3(a, b, c) (a, (b, (c, BOOST_PP_NIL)))
-# define BOOST_PP_TUPLE_TO_LIST_4(a, b, c, d) (a, (b, (c, (d, BOOST_PP_NIL))))
-# define BOOST_PP_TUPLE_TO_LIST_5(a, b, c, d, e) (a, (b, (c, (d, (e, BOOST_PP_NIL)))))
-# define BOOST_PP_TUPLE_TO_LIST_6(a, b, c, d, e, f) (a, (b, (c, (d, (e, (f, BOOST_PP_NIL))))))
-# define BOOST_PP_TUPLE_TO_LIST_7(a, b, c, d, e, f, g) (a, (b, (c, (d, (e, (f, (g, BOOST_PP_NIL)))))))
-# define BOOST_PP_TUPLE_TO_LIST_8(a, b, c, d, e, f, g, h) (a, (b, (c, (d, (e, (f, (g, (h, BOOST_PP_NIL))))))))
-# define BOOST_PP_TUPLE_TO_LIST_9(a, b, c, d, e, f, g, h, i) (a, (b, (c, (d, (e, (f, (g, (h, (i, BOOST_PP_NIL)))))))))
-# define BOOST_PP_TUPLE_TO_LIST_10(a, b, c, d, e, f, g, h, i, j) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, BOOST_PP_NIL))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_11(a, b, c, d, e, f, g, h, i, j, k) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, BOOST_PP_NIL)))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_12(a, b, c, d, e, f, g, h, i, j, k, l) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, BOOST_PP_NIL))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_13(a, b, c, d, e, f, g, h, i, j, k, l, m) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, BOOST_PP_NIL)))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, BOOST_PP_NIL))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, BOOST_PP_NIL)))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, BOOST_PP_NIL))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, BOOST_PP_NIL)))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, BOOST_PP_NIL))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, BOOST_PP_NIL)))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, (t, BOOST_PP_NIL))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, (t, (u, BOOST_PP_NIL)))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, (t, (u, (v, BOOST_PP_NIL))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, (t, (u, (v, (w, BOOST_PP_NIL)))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, (t, (u, (v, (w, (x, BOOST_PP_NIL))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) (a, (b, (c, (d, (e, (f, (g, (h, (i, (j, (k, (l, (m, (n, (o, (p, (q, (r, (s, (t, (u, (v, (w, (x, (y, BOOST_PP_NIL)))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_1(e0) (e0, BOOST_PP_NIL)
+# define BOOST_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, BOOST_PP_NIL))
+# define BOOST_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, BOOST_PP_NIL)))
+# define BOOST_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, BOOST_PP_NIL))))
+# define BOOST_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, BOOST_PP_NIL)))))
+# define BOOST_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, BOOST_PP_NIL))))))
+# define BOOST_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, BOOST_PP_NIL)))))))
+# define BOOST_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, BOOST_PP_NIL))))))))
+# define BOOST_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, BOOST_PP_NIL)))))))))
+# define BOOST_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, BOOST_PP_NIL))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, BOOST_PP_NIL)))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, BOOST_PP_NIL))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, BOOST_PP_NIL)))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, BOOST_PP_NIL))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, BOOST_PP_NIL)))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, BOOST_PP_NIL))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, BOOST_PP_NIL)))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, BOOST_PP_NIL))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, BOOST_PP_NIL)))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, BOOST_PP_NIL))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, BOOST_PP_NIL)))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, BOOST_PP_NIL))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, BOOST_PP_NIL)))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, BOOST_PP_NIL))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, BOOST_PP_NIL)))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, BOOST_PP_NIL))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, BOOST_PP_NIL)))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, BOOST_PP_NIL))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, BOOST_PP_NIL)))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, BOOST_PP_NIL))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, BOOST_PP_NIL)))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, BOOST_PP_NIL))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, BOOST_PP_NIL)))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, BOOST_PP_NIL))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define BOOST_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, (e63, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 #
 # endif

Modified: trunk/boost/preprocessor/tuple/to_seq.hpp
==============================================================================
--- trunk/boost/preprocessor/tuple/to_seq.hpp (original)
+++ trunk/boost/preprocessor/tuple/to_seq.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,10 @@
 # /* **************************************************************************
 # * *
-# * (C) Copyright Paul Mensonides 2002.
-# * Distributed under 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)
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * Distributed under 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) *
 # * *
 # ************************************************************************** */
 #
@@ -12,49 +13,102 @@
 # ifndef BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP
 # define BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP
 #
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/facilities/overload.hpp>
+# include <boost/preprocessor/variadic/size.hpp>
 #
 # /* BOOST_PP_TUPLE_TO_SEQ */
 #
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-# define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_I(size, tuple)
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s t
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__), (__VA_ARGS__))
+# define BOOST_PP_TUPLE_TO_SEQ_I(m, args) BOOST_PP_TUPLE_TO_SEQ_II(m, args)
+# define BOOST_PP_TUPLE_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,)
 # else
-# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_II(BOOST_PP_TUPLE_TO_SEQ_ ## s t)
-# define BOOST_PP_TUPLE_TO_SEQ_II(res) res
+# define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__)(__VA_ARGS__)
 # endif
+# define BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_SEQ_, BOOST_PP_VARIADIC_SIZE tuple) tuple
+# define BOOST_PP_TUPLE_TO_SEQ_O_2(size, tuple) BOOST_PP_TUPLE_TO_SEQ_O_1(tuple)
 # else
-# define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_OO((size, tuple))
-# define BOOST_PP_TUPLE_TO_SEQ_OO(par) BOOST_PP_TUPLE_TO_SEQ_I ## par
-# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s ## t
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
+# define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_I(size, tuple)
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s t
+# else
+# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_II(BOOST_PP_TUPLE_TO_SEQ_ ## s t)
+# define BOOST_PP_TUPLE_TO_SEQ_II(res) res
+# endif
+# else
+# define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_OO((size, tuple))
+# define BOOST_PP_TUPLE_TO_SEQ_OO(par) BOOST_PP_TUPLE_TO_SEQ_I ## par
+# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s ## t
+# endif
 # endif
 #
-# define BOOST_PP_TUPLE_TO_SEQ_0()
-# define BOOST_PP_TUPLE_TO_SEQ_1(a) (a)
-# define BOOST_PP_TUPLE_TO_SEQ_2(a, b) (a)(b)
-# define BOOST_PP_TUPLE_TO_SEQ_3(a, b, c) (a)(b)(c)
-# define BOOST_PP_TUPLE_TO_SEQ_4(a, b, c, d) (a)(b)(c)(d)
-# define BOOST_PP_TUPLE_TO_SEQ_5(a, b, c, d, e) (a)(b)(c)(d)(e)
-# define BOOST_PP_TUPLE_TO_SEQ_6(a, b, c, d, e, f) (a)(b)(c)(d)(e)(f)
-# define BOOST_PP_TUPLE_TO_SEQ_7(a, b, c, d, e, f, g) (a)(b)(c)(d)(e)(f)(g)
-# define BOOST_PP_TUPLE_TO_SEQ_8(a, b, c, d, e, f, g, h) (a)(b)(c)(d)(e)(f)(g)(h)
-# define BOOST_PP_TUPLE_TO_SEQ_9(a, b, c, d, e, f, g, h, i) (a)(b)(c)(d)(e)(f)(g)(h)(i)
-# define BOOST_PP_TUPLE_TO_SEQ_10(a, b, c, d, e, f, g, h, i, j) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)
-# define BOOST_PP_TUPLE_TO_SEQ_11(a, b, c, d, e, f, g, h, i, j, k) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)
-# define BOOST_PP_TUPLE_TO_SEQ_12(a, b, c, d, e, f, g, h, i, j, k, l) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)
-# define BOOST_PP_TUPLE_TO_SEQ_13(a, b, c, d, e, f, g, h, i, j, k, l, m) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)
-# define BOOST_PP_TUPLE_TO_SEQ_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)
-# define BOOST_PP_TUPLE_TO_SEQ_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)
-# define BOOST_PP_TUPLE_TO_SEQ_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)
-# define BOOST_PP_TUPLE_TO_SEQ_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)
-# define BOOST_PP_TUPLE_TO_SEQ_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)
-# define BOOST_PP_TUPLE_TO_SEQ_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)
-# define BOOST_PP_TUPLE_TO_SEQ_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)
-# define BOOST_PP_TUPLE_TO_SEQ_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)
-# define BOOST_PP_TUPLE_TO_SEQ_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)
-# define BOOST_PP_TUPLE_TO_SEQ_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)
-# define BOOST_PP_TUPLE_TO_SEQ_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)
-# define BOOST_PP_TUPLE_TO_SEQ_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)
+# define BOOST_PP_TUPLE_TO_SEQ_1(e0) (e0)
+# define BOOST_PP_TUPLE_TO_SEQ_2(e0, e1) (e0)(e1)
+# define BOOST_PP_TUPLE_TO_SEQ_3(e0, e1, e2) (e0)(e1)(e2)
+# define BOOST_PP_TUPLE_TO_SEQ_4(e0, e1, e2, e3) (e0)(e1)(e2)(e3)
+# define BOOST_PP_TUPLE_TO_SEQ_5(e0, e1, e2, e3, e4) (e0)(e1)(e2)(e3)(e4)
+# define BOOST_PP_TUPLE_TO_SEQ_6(e0, e1, e2, e3, e4, e5) (e0)(e1)(e2)(e3)(e4)(e5)
+# define BOOST_PP_TUPLE_TO_SEQ_7(e0, e1, e2, e3, e4, e5, e6) (e0)(e1)(e2)(e3)(e4)(e5)(e6)
+# define BOOST_PP_TUPLE_TO_SEQ_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)
+# define BOOST_PP_TUPLE_TO_SEQ_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)
+# define BOOST_PP_TUPLE_TO_SEQ_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)
+# define BOOST_PP_TUPLE_TO_SEQ_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)
+# define BOOST_PP_TUPLE_TO_SEQ_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)
+# define BOOST_PP_TUPLE_TO_SEQ_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)
+# define BOOST_PP_TUPLE_TO_SEQ_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)
+# define BOOST_PP_TUPLE_TO_SEQ_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)
+# define BOOST_PP_TUPLE_TO_SEQ_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)
+# define BOOST_PP_TUPLE_TO_SEQ_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)
+# define BOOST_PP_TUPLE_TO_SEQ_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)
+# define BOOST_PP_TUPLE_TO_SEQ_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)
+# define BOOST_PP_TUPLE_TO_SEQ_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)
+# define BOOST_PP_TUPLE_TO_SEQ_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)
+# define BOOST_PP_TUPLE_TO_SEQ_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)
+# define BOOST_PP_TUPLE_TO_SEQ_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)
+# define BOOST_PP_TUPLE_TO_SEQ_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)
+# define BOOST_PP_TUPLE_TO_SEQ_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)
+# define BOOST_PP_TUPLE_TO_SEQ_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)
+# define BOOST_PP_TUPLE_TO_SEQ_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)
+# define BOOST_PP_TUPLE_TO_SEQ_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)
+# define BOOST_PP_TUPLE_TO_SEQ_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)
+# define BOOST_PP_TUPLE_TO_SEQ_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)
+# define BOOST_PP_TUPLE_TO_SEQ_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)
+# define BOOST_PP_TUPLE_TO_SEQ_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)
+# define BOOST_PP_TUPLE_TO_SEQ_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)
+# define BOOST_PP_TUPLE_TO_SEQ_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)
+# define BOOST_PP_TUPLE_TO_SEQ_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)
+# define BOOST_PP_TUPLE_TO_SEQ_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)
+# define BOOST_PP_TUPLE_TO_SEQ_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)
+# define BOOST_PP_TUPLE_TO_SEQ_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)
+# define BOOST_PP_TUPLE_TO_SEQ_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)
+# define BOOST_PP_TUPLE_TO_SEQ_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)
+# define BOOST_PP_TUPLE_TO_SEQ_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)
+# define BOOST_PP_TUPLE_TO_SEQ_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)
+# define BOOST_PP_TUPLE_TO_SEQ_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)
+# define BOOST_PP_TUPLE_TO_SEQ_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)
+# define BOOST_PP_TUPLE_TO_SEQ_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)
+# define BOOST_PP_TUPLE_TO_SEQ_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)
+# define BOOST_PP_TUPLE_TO_SEQ_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)
+# define BOOST_PP_TUPLE_TO_SEQ_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)
+# define BOOST_PP_TUPLE_TO_SEQ_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)
+# define BOOST_PP_TUPLE_TO_SEQ_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)
+# define BOOST_PP_TUPLE_TO_SEQ_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)
+# define BOOST_PP_TUPLE_TO_SEQ_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)
+# define BOOST_PP_TUPLE_TO_SEQ_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)
+# define BOOST_PP_TUPLE_TO_SEQ_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)
+# define BOOST_PP_TUPLE_TO_SEQ_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)
+# define BOOST_PP_TUPLE_TO_SEQ_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)
+# define BOOST_PP_TUPLE_TO_SEQ_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)
+# define BOOST_PP_TUPLE_TO_SEQ_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)
+# define BOOST_PP_TUPLE_TO_SEQ_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)
+# define BOOST_PP_TUPLE_TO_SEQ_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)
+# define BOOST_PP_TUPLE_TO_SEQ_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)
+# define BOOST_PP_TUPLE_TO_SEQ_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)
+# define BOOST_PP_TUPLE_TO_SEQ_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62)
+# define BOOST_PP_TUPLE_TO_SEQ_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62)(e63)
 #
 # endif

Added: trunk/boost/preprocessor/variadic.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,23 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_HPP
+#
+# include <boost/preprocessor/variadic/elem.hpp>
+# include <boost/preprocessor/variadic/size.hpp>
+# include <boost/preprocessor/variadic/to_array.hpp>
+# include <boost/preprocessor/variadic/to_list.hpp>
+# include <boost/preprocessor/variadic/to_seq.hpp>
+# include <boost/preprocessor/variadic/to_tuple.hpp>
+#
+# endif

Added: trunk/boost/preprocessor/variadic/elem.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic/elem.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,93 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_VARIADIC_ELEM */
+#
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
+# else
+# define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,)
+# endif
+# define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
+# define BOOST_PP_VARIADIC_ELEM_1(e0, e1, ...) e1
+# define BOOST_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2
+# define BOOST_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3
+# define BOOST_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4
+# define BOOST_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5
+# define BOOST_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6
+# define BOOST_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7
+# define BOOST_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8
+# define BOOST_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9
+# define BOOST_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10
+# define BOOST_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11
+# define BOOST_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12
+# define BOOST_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13
+# define BOOST_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14
+# define BOOST_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15
+# define BOOST_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16
+# define BOOST_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17
+# define BOOST_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18
+# define BOOST_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19
+# define BOOST_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20
+# define BOOST_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21
+# define BOOST_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22
+# define BOOST_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23
+# define BOOST_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24
+# define BOOST_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25
+# define BOOST_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26
+# define BOOST_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27
+# define BOOST_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28
+# define BOOST_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29
+# define BOOST_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30
+# define BOOST_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31
+# define BOOST_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32
+# define BOOST_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33
+# define BOOST_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34
+# define BOOST_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35
+# define BOOST_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36
+# define BOOST_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37
+# define BOOST_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38
+# define BOOST_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39
+# define BOOST_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40
+# define BOOST_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41
+# define BOOST_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42
+# define BOOST_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43
+# define BOOST_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44
+# define BOOST_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45
+# define BOOST_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46
+# define BOOST_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47
+# define BOOST_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48
+# define BOOST_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49
+# define BOOST_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50
+# define BOOST_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51
+# define BOOST_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52
+# define BOOST_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53
+# define BOOST_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54
+# define BOOST_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55
+# define BOOST_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56
+# define BOOST_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57
+# define BOOST_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58
+# define BOOST_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59
+# define BOOST_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60
+# define BOOST_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61
+# define BOOST_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62
+# define BOOST_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/variadic/size.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic/size.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_VARIADIC_SIZE */
+#
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
+# else
+# define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
+# endif
+# define BOOST_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/variadic/to_array.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic/to_array.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/to_array.hpp>
+# if BOOST_PP_VARIADICS_MSVC
+# include <boost/preprocessor/variadic/size.hpp>
+# endif
+#
+# /* BOOST_PP_VARIADIC_TO_ARRAY */
+#
+# if BOOST_PP_VARIADICS
+# if BOOST_PP_VARIADICS_MSVC
+# define BOOST_PP_VARIADIC_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY_2(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),(__VA_ARGS__))
+# else
+# define BOOST_PP_VARIADIC_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY((__VA_ARGS__))
+# endif
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/variadic/to_list.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic/to_list.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_LIST_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_TO_LIST_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/to_list.hpp>
+#
+# /* BOOST_PP_VARIADIC_TO_LIST */
+#
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_VARIADIC_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST((__VA_ARGS__))
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/variadic/to_seq.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic/to_seq.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_SEQ_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_TO_SEQ_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+# include <boost/preprocessor/tuple/to_seq.hpp>
+#
+# /* BOOST_PP_VARIADIC_TO_SEQ */
+#
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_VARIADIC_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ((__VA_ARGS__))
+# endif
+#
+# endif

Added: trunk/boost/preprocessor/variadic/to_tuple.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/preprocessor/variadic/to_tuple.hpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,24 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * Distributed under 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP
+# define BOOST_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP
+#
+# include <boost/preprocessor/config/config.hpp>
+#
+# /* BOOST_PP_VARIADIC_TO_TUPLE */
+#
+# if BOOST_PP_VARIADICS
+# define BOOST_PP_VARIADIC_TO_TUPLE(...) (__VA_ARGS__)
+# endif
+#
+# endif

Modified: trunk/libs/preprocessor/doc/headers.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers.html (original)
+++ trunk/libs/preprocessor/doc/headers.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,209 +1,226 @@
 <html>
- <head>
- <title>headers.html</title>
- <link rel="stylesheet" type="text/css" href="styles.css">
- <base target="desc">
- <style>
+<head>
+ <title>headers.html</title>
+ <link rel="stylesheet" type="text/css" href="styles.css">
+ <base target="desc">
+ <style>
                                 .ps { margin-left: 30px; }
- </style>
- </head>
- <body>
- <h4>
- Headers <small>[back]</small>
- </h4>
- <ul>
- <li>../</li>
- <li class="ps">
- preprocessor.hpp</li>
- <li>arithmetic.hpp</li>
- <li>arithmetic/</li>
- <li class="ps">add.hpp</li>
- <li class="ps">dec.hpp</li>
- <li class="ps">div.hpp</li>
- <li class="ps">inc.hpp</li>
- <li class="ps">mod.hpp</li>
- <li class="ps">mul.hpp</li>
- <li class="ps">sub.hpp</li>
- <li>array.hpp</li>
- <li>array/</li>
- <li class="ps">data.hpp</li>
- <li class="ps">elem.hpp</li>
- <li class="ps">insert.hpp</li>
- <li class="ps">pop_back.hpp</li>
- <li class="ps">pop_front.hpp</li>
- <li class="ps">push_back.hpp</li>
- <li class="ps">push_front.hpp</li>
- <li class="ps">remove.hpp</li>
- <li class="ps">replace.hpp</li>
- <li class="ps">reverse.hpp</li>
- <li class="ps">size.hpp</li>
- <li>assert_msg.hpp*</li>
- <li>cat.hpp</li>
- <li>comma.hpp*</li>
- <li>comma_if.hpp*</li>
- <li>comparison.hpp</li>
- <li>comparison/</li>
- <li class="ps">equal.hpp</li>
- <li class="ps">greater.hpp</li>
- <li class="ps">greater_equal.hpp</li>
- <li class="ps">less.hpp</li>
- <li class="ps">less_equal.hpp</li>
- <li class="ps">not_equal.hpp</li>
- <li>config/</li>
- <li class="ps">limits.hpp</li>
- <li>control.hpp</li>
- <li>control/</li>
- <li class="ps">deduce_d.hpp</li>
- <li class="ps">expr_if.hpp</li>
- <li class="ps">expr_iif.hpp</li>
- <li class="ps">if.hpp</li>
- <li class="ps">iif.hpp</li>
- <li class="ps">while.hpp</li>
- <li>debug.hpp</li>
- <li>debug/</li>
- <li class="ps">assert.hpp</li>
- <li class="ps">line.hpp</li>
- <li>dec.hpp*</li>
- <li>empty.hpp*</li>
- <li>enum.hpp*</li>
- <li>enum_params.hpp*</li>
- <li>enum_params_with_a_default.hpp*</li>
- <li>enum_params_with_defaults.hpp*</li>
- <li>enum_shifted.hpp*</li>
- <li>enum_shifted_params.hpp*</li>
- <li>expand.hpp*</li>
- <li>expr_if.hpp*</li>
- <li>facilities.hpp</li>
- <li>facilities/</li>
- <li class="ps">apply.hpp</li>
- <li class="ps">empty.hpp</li>
- <li class="ps">expand.hpp</li>
- <li class="ps">identity.hpp</li>
- <li class="ps">intercept.hpp</li>
- <li>for.hpp*</li>
- <li>identity.hpp*</li>
- <li>if.hpp*</li>
- <li>inc.hpp*</li>
- <li>iterate.hpp*</li>
- <li>iteration.hpp</li>
- <li>iteration/</li>
- <li class="ps">iterate.hpp</li>
- <li class="ps">local.hpp</li>
- <li class="ps">self.hpp</li>
- <li>library.hpp</li>
- <li>limits.hpp*</li>
- <li>list.hpp</li>
- <li>list/</li>
- <li class="ps">adt.hpp</li>
- <li class="ps">append.hpp</li>
- <li class="ps">at.hpp</li>
- <li class="ps">cat.hpp</li>
- <li class="ps">enum.hpp</li>
- <li class="ps">filter.hpp</li>
- <li class="ps">first_n.hpp</li>
- <li class="ps">fold_left.hpp</li>
- <li class="ps">fold_right.hpp</li>
- <li class="ps">for_each.hpp</li>
- <li class="ps">for_each_i.hpp</li>
- <li class="ps">for_each_product.hpp</li>
- <li class="ps">rest_n.hpp</li>
- <li class="ps">reverse.hpp</li>
- <li class="ps">size.hpp</li>
- <li class="ps">to_tuple.hpp</li>
- <li class="ps">transform.hpp</li>
- <li>logical.hpp</li>
- <li>logical/</li>
- <li class="ps">and.hpp</li>
- <li class="ps">bitand.hpp</li>
- <li class="ps">bitnor.hpp</li>
- <li class="ps">bitor.hpp</li>
- <li class="ps">bitxor.hpp</li>
- <li class="ps">bool.hpp</li>
- <li class="ps">compl.hpp</li>
- <li class="ps">nor.hpp</li>
- <li class="ps">not.hpp</li>
- <li class="ps">or.hpp</li>
- <li class="ps">xor.hpp</li>
- <li>max.hpp*</li>
- <li>min.hpp*</li>
- <li>punctuation.hpp</li>
- <li>punctuation/</li>
- <li class="ps">comma.hpp</li>
- <li class="ps">comma_if.hpp</li>
- <li class="ps">paren.hpp</li>
- <li class="ps">paren_if.hpp</li>
- <li>repeat.hpp*</li>
- <li>repeat_2nd.hpp*</li>
- <li>repeat_3rd.hpp*</li>
- <li>repeat_from_to.hpp*</li>
- <li>repeat_from_to_2nd.hpp*</li>
- <li>repeat_from_to_3rd.hpp*</li>
- <li>repetition.hpp</li>
- <li>repetition/</li>
- <li class="ps">deduce_r.hpp</li>
- <li class="ps">deduce_z.hpp</li>
- <li class="ps">enum.hpp</li>
- <li class="ps">enum_binary_params.hpp</li>
- <li class="ps">enum_params.hpp</li>
- <li class="ps">enum_params_with_a_default.hpp</li>
- <li class="ps">enum_params_with_defaults.hpp</li>
- <li class="ps">enum_shifted_binary_params.hpp</li>
- <li class="ps">enum_shifted_params.hpp</li>
- <li class="ps">enum_shifted.hpp</li>
- <li class="ps">enum_trailing.hpp</li>
- <li class="ps">enum_trailing_binary_params.hpp</li>
- <li class="ps">enum_trailing_params.hpp</li>
- <li class="ps">for.hpp</li>
- <li class="ps">repeat.hpp</li>
- <li class="ps">repeat_from_to.hpp</li>
- <li>selection.hpp</li>
- <li>selection/</li>
- <li class="ps">max.hpp</li>
- <li class="ps">min.hpp</li>
- <li>seq.hpp</li>
- <li>seq/</li>
- <li class="ps">cat.hpp</li>
- <li class="ps">elem.hpp</li>
- <li class="ps">enum.hpp</li>
- <li class="ps">filter.hpp</li>
- <li class="ps">first_n.hpp</li>
- <li class="ps">fold_left.hpp</li>
- <li class="ps">fold_right.hpp</li>
- <li class="ps">for_each.hpp</li>
- <li class="ps">for_each_i.hpp</li>
- <li class="ps">for_each_product.hpp</li>
- <li class="ps">insert.hpp</li>
- <li class="ps">pop_back.hpp</li>
- <li class="ps">pop_front.hpp</li>
- <li class="ps">push_back.hpp</li>
- <li class="ps">push_front.hpp</li>
- <li class="ps">remove.hpp</li>
- <li class="ps">replace.hpp</li>
- <li class="ps">rest_n.hpp</li>
- <li class="ps">reverse.hpp</li>
- <li class="ps">seq.hpp</li>
- <li class="ps">size.hpp</li>
- <li class="ps">subseq.hpp</li>
- <li class="ps">to_array.hpp</li>
- <li class="ps">to_tuple.hpp</li>
- <li class="ps">transform.hpp</li>
- <li>slot.hpp</li>
- <li>slot/</li>
- <li class="ps">counter.hpp</li>
- <li class="ps">slot.hpp</li>
- <li>tuple.hpp</li>
- <li>tuple/</li>
- <li class="ps">elem.hpp</li>
- <li class="ps">eat.hpp</li>
- <li class="ps">rem.hpp</li>
- <li class="ps">reverse.hpp</li>
- <li class="ps">to_list.hpp</li>
- <li class="ps">to_seq.hpp</li>
- <li>stringize.hpp</li>
- <li>while.hpp*</li>
- <li>wstringize.hpp</li>
- </ul>
-
+ </style>
+</head>
+<body>
+<h4> Headers <small>[back]</small>
+</h4>
+<ul>
+ <li>../</li>
+ <li class="ps"> preprocessor.hpp</li>
+ <li>arithmetic.hpp</li>
+ <li>arithmetic/</li>
+ <li class="ps">add.hpp</li>
+ <li class="ps">dec.hpp</li>
+ <li class="ps">div.hpp</li>
+ <li class="ps">inc.hpp</li>
+ <li class="ps">mod.hpp</li>
+ <li class="ps">mul.hpp</li>
+ <li class="ps">sub.hpp</li>
+ <li>array.hpp</li>
+ <li>array/</li>
+ <li class="ps">data.hpp</li>
+ <li class="ps">elem.hpp</li>
+ <li class="ps">enum.hpp</li>
+ <li class="ps">insert.hpp</li>
+ <li class="ps">pop_back.hpp</li>
+ <li class="ps">pop_front.hpp</li>
+ <li class="ps">push_back.hpp</li>
+ <li class="ps">push_front.hpp</li>
+ <li class="ps">remove.hpp</li>
+ <li class="ps">replace.hpp</li>
+ <li class="ps">reverse.hpp</li>
+ <li class="ps">size.hpp</li>
+ <li class="ps">to_list.hpp</li>
+ <li class="ps">to_seq.hpp</li>
+ <li class="ps">to_tuple.hpp</li>
+ <li>assert_msg.hpp*</li>
+ <li>cat.hpp</li>
+ <li>comma.hpp*</li>
+ <li>comma_if.hpp*</li>
+ <li>comparison.hpp</li>
+ <li>comparison/</li>
+ <li class="ps">equal.hpp</li>
+ <li class="ps">greater.hpp</li>
+ <li class="ps">greater_equal.hpp</li>
+ <li class="ps">less.hpp</li>
+ <li class="ps">less_equal.hpp</li>
+ <li class="ps">not_equal.hpp</li>
+ <li>config/</li>
+ <li class="ps">limits.hpp</li>
+ <li class="ps">variadics.hpp</li>
+ <li>control.hpp</li>
+ <li>control/</li>
+ <li class="ps">deduce_d.hpp</li>
+ <li class="ps">expr_if.hpp</li>
+ <li class="ps">expr_iif.hpp</li>
+ <li class="ps">if.hpp</li>
+ <li class="ps">iif.hpp</li>
+ <li class="ps">while.hpp</li>
+ <li>debug.hpp</li>
+ <li>debug/</li>
+ <li class="ps">assert.hpp</li>
+ <li class="ps">line.hpp</li>
+ <li>dec.hpp*</li>
+ <li>empty.hpp*</li>
+ <li>enum.hpp*</li>
+ <li>enum_params.hpp*</li>
+ <li>enum_params_with_a_default.hpp*</li>
+ <li>enum_params_with_defaults.hpp*</li>
+ <li>enum_shifted.hpp*</li>
+ <li>enum_shifted_params.hpp*</li>
+ <li>expand.hpp*</li>
+ <li>expr_if.hpp*</li>
+ <li>facilities.hpp</li>
+ <li>facilities/</li>
+ <li class="ps">apply.hpp</li>
+ <li class="ps">empty.hpp</li>
+ <li class="ps">expand.hpp</li>
+ <li class="ps">identity.hpp</li>
+ <li class="ps">intercept.hpp</li>
+ <li class="ps">overload.hpp (v)</li>
+ <li>for.hpp*</li>
+ <li>identity.hpp*</li>
+ <li>if.hpp*</li>
+ <li>inc.hpp*</li>
+ <li>iterate.hpp*</li>
+ <li>iteration.hpp</li>
+ <li>iteration/</li>
+ <li class="ps">iterate.hpp</li>
+ <li class="ps">local.hpp</li>
+ <li class="ps">self.hpp</li>
+ <li>library.hpp</li>
+ <li>limits.hpp*</li>
+ <li>list.hpp</li>
+ <li>list/</li>
+ <li class="ps">adt.hpp</li>
+ <li class="ps">append.hpp</li>
+ <li class="ps">at.hpp</li>
+ <li class="ps">cat.hpp</li>
+ <li class="ps">enum.hpp</li>
+ <li class="ps">filter.hpp</li>
+ <li class="ps">first_n.hpp</li>
+ <li class="ps">fold_left.hpp</li>
+ <li class="ps">fold_right.hpp</li>
+ <li class="ps">for_each.hpp</li>
+ <li class="ps">for_each_i.hpp</li>
+ <li class="ps">for_each_product.hpp</li>
+ <li class="ps">rest_n.hpp</li>
+ <li class="ps">reverse.hpp</li>
+ <li class="ps">size.hpp</li>
+ <li class="ps">to_array.hpp</li>
+ <li class="ps">to_seq.hpp</li>
+ <li class="ps">to_tuple.hpp</li>
+ <li class="ps">transform.hpp</li>
+ <li>logical.hpp</li>
+ <li>logical/</li>
+ <li class="ps">and.hpp</li>
+ <li class="ps">bitand.hpp</li>
+ <li class="ps">bitnor.hpp</li>
+ <li class="ps">bitor.hpp</li>
+ <li class="ps">bitxor.hpp</li>
+ <li class="ps">bool.hpp</li>
+ <li class="ps">compl.hpp</li>
+ <li class="ps">nor.hpp</li>
+ <li class="ps">not.hpp</li>
+ <li class="ps">or.hpp</li>
+ <li class="ps">xor.hpp</li>
+ <li>max.hpp*</li>
+ <li>min.hpp*</li>
+ <li>punctuation.hpp</li>
+ <li>punctuation/</li>
+ <li class="ps">comma.hpp</li>
+ <li class="ps">comma_if.hpp</li>
+ <li class="ps">paren.hpp</li>
+ <li class="ps">paren_if.hpp</li>
+ <li>repeat.hpp*</li>
+ <li>repeat_2nd.hpp*</li>
+ <li>repeat_3rd.hpp*</li>
+ <li>repeat_from_to.hpp*</li>
+ <li>repeat_from_to_2nd.hpp*</li>
+ <li>repeat_from_to_3rd.hpp*</li>
+ <li>repetition.hpp</li>
+ <li>repetition/</li>
+ <li class="ps">deduce_r.hpp</li>
+ <li class="ps">deduce_z.hpp</li>
+ <li class="ps">enum.hpp</li>
+ <li class="ps">enum_binary_params.hpp</li>
+ <li class="ps">enum_params.hpp</li>
+ <li class="ps">enum_params_with_a_default.hpp</li>
+ <li class="ps">enum_params_with_defaults.hpp</li>
+ <li class="ps">enum_shifted_binary_params.hpp</li>
+ <li class="ps">enum_shifted_params.hpp</li>
+ <li class="ps">enum_shifted.hpp</li>
+ <li class="ps">enum_trailing.hpp</li>
+ <li class="ps">enum_trailing_binary_params.hpp</li>
+ <li class="ps">enum_trailing_params.hpp</li>
+ <li class="ps">for.hpp</li>
+ <li class="ps">repeat.hpp</li>
+ <li class="ps">repeat_from_to.hpp</li>
+ <li>selection.hpp</li>
+ <li>selection/</li>
+ <li class="ps">max.hpp</li>
+ <li class="ps">min.hpp</li>
+ <li>seq.hpp</li>
+ <li>seq/</li>
+ <li class="ps">cat.hpp</li>
+ <li class="ps">elem.hpp</li>
+ <li class="ps">enum.hpp</li>
+ <li class="ps">filter.hpp</li>
+ <li class="ps">first_n.hpp</li>
+ <li class="ps">fold_left.hpp</li>
+ <li class="ps">fold_right.hpp</li>
+ <li class="ps">for_each.hpp</li>
+ <li class="ps">for_each_i.hpp</li>
+ <li class="ps">for_each_product.hpp</li>
+ <li class="ps">insert.hpp</li>
+ <li class="ps">pop_back.hpp</li>
+ <li class="ps">pop_front.hpp</li>
+ <li class="ps">push_back.hpp</li>
+ <li class="ps">push_front.hpp</li>
+ <li class="ps">remove.hpp</li>
+ <li class="ps">replace.hpp</li>
+ <li class="ps">rest_n.hpp</li>
+ <li class="ps">reverse.hpp</li>
+ <li class="ps">seq.hpp</li>
+ <li class="ps">size.hpp</li>
+ <li class="ps">subseq.hpp</li>
+ <li class="ps">to_array.hpp</li>
+ <li class="ps">to_list.hpp</li>
+ <li class="ps">to_tuple.hpp</li>
+ <li class="ps">transform.hpp</li>
+ <li>slot.hpp</li>
+ <li>slot/</li>
+ <li class="ps">counter.hpp</li>
+ <li class="ps">slot.hpp</li>
+ <li>tuple.hpp</li>
+ <li>tuple/</li>
+ <li class="ps">eat.hpp (v)</li>
+ <li class="ps">elem.hpp (v)</li>
+ <li class="ps">enum.hpp (v)</li>
+ <li class="ps">rem.hpp (v)</li>
+ <li class="ps">reverse.hpp (v)</li>
+ <li class="ps">size.hpp (v)</li>
+ <li class="ps">to_array.hpp (v)</li>
+ <li class="ps">to_list.hpp (v)</li>
+ <li class="ps">to_seq.hpp (v)</li>
+ <li>stringize.hpp</li>
+ <li>variadic.hpp</li>
+ <li>variadic/</li>
+ <li class="ps">elem.hpp (v)</li>
+ <li class="ps">size.hpp (v)</li>
+ <li class="ps">to_array.hpp (v)</li>
+ <li class="ps">to_list.hpp (v)</li>
+ <li class="ps">to_seq.hpp (v)</li>
+ <li class="ps">to_tuple.hpp (v)</li>
+ <li>while.hpp*</li>
+ <li>wstringize.hpp</li>
+</ul>
 <!--
 © Copyright Housemarque Oy 2002
 © Copyright Paul Mensonides 2002
@@ -211,6 +228,5 @@
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 -->
-
- </body>
+</body>
 </html>

Modified: trunk/libs/preprocessor/doc/headers/array.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/array.html (original)
+++ trunk/libs/preprocessor/doc/headers/array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
 <head>
- <title>array.hpp</title>
+ <title>array.hpp</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
 </head>
 <body>
- <div style="margin-left: 0px;">
+ <div style="margin-left: 0px;">
                 The <b>array.hpp</b> includes the headers in the <i>array</i> folder.
         </div>
         <h4>Usage</h4>
@@ -15,6 +15,7 @@
                 <ul>
                         <li><boost/preprocessor/array/data.hpp></li>
                         <li><boost/preprocessor/array/elem.hpp></li>
+ <li><boost/preprocessor/array/enum.hpp></li>
                         <li><boost/preprocessor/array/insert.hpp></li>
                         <li><boost/preprocessor/array/pop_back.hpp></li>
                         <li><boost/preprocessor/array/pop_front.hpp></li>
@@ -24,17 +25,19 @@
                         <li><boost/preprocessor/array/replace.hpp></li>
                         <li><boost/preprocessor/array/reverse.hpp></li>
                         <li><boost/preprocessor/array/size.hpp></li>
+ <li><boost/preprocessor/array/to_list.hpp></li>
+ <li><boost/preprocessor/array/to_seq.hpp></li>
+ <li><boost/preprocessor/array/to_tuple.hpp></li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
 </body>
 </html>

Added: trunk/libs/preprocessor/doc/headers/array/enum.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/array/enum.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,24 @@
+<html>
+<head>
+ <title>array/enum.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/enum.hpp</b> header
+defines a macro to convert an <i>array</i> to its comma-separated elements. </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/enum.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+ <li>BOOST_PP_ARRAY_ENUM</li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/headers/array/to_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/array/to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,24 @@
+<html>
+<head>
+ <title>array/to_list.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/to_list.hpp</b> header
+defines a macro that converts an <i>array</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/to_list.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+ <li>BOOST_PP_ARRAY_TO_LIST</li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/headers/array/to_seq.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/array/to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,24 @@
+<html>
+<head>
+ <title>array/to_seq.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/to_seq.hpp</b> header
+defines a macro that converts an <i>array</i> to a <i>seq.</i> </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/to_seq.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+ <li>BOOST_PP_ARRAY_TO_SEQ</li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/headers/array/to_tuple.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/array/to_tuple.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,24 @@
+<html>
+ <head>
+ <title>array/to_tuple.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>array/to_tuple.hpp</b> header
+defines a macro that converts an <i>array </i>to a <i>tuple</i>. </div>
+<h4>Usage</h4>
+<div class="code"> #include <b>&lt;boost/preprocessor/array/to_tuple.hpp&gt;</b>
+</div>
+<h4>Contents</h4>
+<ul>
+ <li>BOOST_PP_ARRAY_TO_TUPLE</li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Modified: trunk/libs/preprocessor/doc/headers/config/limits.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/config/limits.html (original)
+++ trunk/libs/preprocessor/doc/headers/config/limits.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,44 +1,44 @@
 <html>
- <head>
- <title>config/limits.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
- The <b>config/limits.hpp</b> header defines various library limits.
- </div>
- <h4>
- Usage
- </h4>
- <div class="code">
- #include <b>&lt;boost/preprocessor/config/limits.hpp&gt;</b>
- </div>
- <h4>
- Contents
- </h4>
- <ul>
- <li>BOOST_PP_LIMIT_DIM</li>
- <li>BOOST_PP_LIMIT_FOR</li>
- <li>BOOST_PP_LIMIT_ITERATION</li>
- <li>BOOST_PP_LIMIT_ITERATION_DIM</li>
- <li>BOOST_PP_LIMIT_MAG</li>
- <li>BOOST_PP_LIMIT_REPEAT</li>
- <li>BOOST_PP_LIMIT_SEQ</li>
- <li>BOOST_PP_LIMIT_SLOT_COUNT</li>
- <li>BOOST_PP_LIMIT_SLOT_SIG</li>
- <li>BOOST_PP_LIMIT_TUPLE</li>
- <li>BOOST_PP_LIMIT_WHILE</li>
- </ul>
+<head>
+ <title>config/limits.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+ <div style="margin-left: 0px;">
+ The <b>config/limits.hpp</b> header defines various library limits.
+ </div>
+ <h4>
+ Usage
+ </h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/config/limits.hpp&gt;</b>
+ </div>
+ <h4>
+ Contents
+ </h4>
+ <ul>
+ <li>BOOST_PP_LIMIT_DIM</li>
+ <li>BOOST_PP_LIMIT_FOR</li>
+ <li>BOOST_PP_LIMIT_ITERATION</li>
+ <li>BOOST_PP_LIMIT_ITERATION_DIM</li>
+ <li>BOOST_PP_LIMIT_MAG</li>
+ <li>BOOST_PP_LIMIT_REPEAT</li>
+ <li>BOOST_PP_LIMIT_SEQ</li>
+ <li>BOOST_PP_LIMIT_SLOT_COUNT</li>
+ <li>BOOST_PP_LIMIT_SLOT_SIG</li>
+ <li>BOOST_PP_LIMIT_TUPLE</li>
+ <li>BOOST_PP_LIMIT_WHILE</li>
+ <li>BOOST_PP_LIMIT_VARIADIC</li>
+ </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Added: trunk/libs/preprocessor/doc/headers/config/variadics.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/config/variadics.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>config/variadics.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+ <div style="margin-left: 0px;">
+ The <b>config/variadics.hpp</b>
+header defines a macro for determining variadic macro support. The file
+is automatically included when needed internally. The end-user can
+include it also in order to use the macro. </div>
+ <h4>
+ Usage
+ </h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/config/variadics.hpp&gt;</b>
+ </div>
+ <h4>
+ Contents
+ </h4>
+ <ul>
+ <li>BOOST_PP_VARIADICS</li></ul>
+ <hr size="1">
+ <div style="margin-left: 0px;"><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body>
+</html>

Modified: trunk/libs/preprocessor/doc/headers/facilities.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/facilities.html (original)
+++ trunk/libs/preprocessor/doc/headers/facilities.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
 <head>
- <title>facilities.hpp</title>
+ <title>facilities.hpp</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
 </head>
 <body>
- <div style="margin-left: 0px;">
+ <div style="margin-left: 0px;">
                 The <b>facilities.hpp</b> includes the headers in the <i>facilities</i> folder.
         </div>
         <h4>Usage</h4>
@@ -18,17 +18,17 @@
                         <li><boost/preprocessor/facilities/expand.hpp></li>
                         <li><boost/preprocessor/facilities/identity.hpp></li>
                         <li><boost/preprocessor/facilities/intercept.hpp></li>
+ <li><boost/preprocessor/facilities/overload.hpp> (v)</li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
 </body>
 </html>

Added: trunk/libs/preprocessor/doc/headers/facilities/overload.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/facilities/overload.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,28 @@
+<html>
+ <head>
+ <title>facilities/overload.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
+ The <b>facilities/overload.hpp</b> header defines variadic macros that overload non-variadic macros to accept different numbers of parameters.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/facilities/overload.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_OVERLOAD (v)</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/headers/list.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/list.html (original)
+++ trunk/libs/preprocessor/doc/headers/list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
 <head>
- <title>list.hpp</title>
+ <title>list.hpp</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
 </head>
 <body>
- <div style="margin-left: 0px;">
+ <div style="margin-left: 0px;">
                 The <b>list.hpp</b> includes the headers in the <i>list</i> folder.
         </div>
         <h4>Usage</h4>
@@ -28,19 +28,20 @@
                         <li><boost/preprocessor/list/rest_n.hpp></li>
                         <li><boost/preprocessor/list/reverse.hpp></li>
                         <li><boost/preprocessor/list/size.hpp></li>
+ <li><boost/preprocessor/list/to_array.hpp></li>
+ <li><boost/preprocessor/list/to_seq.hpp></li>
                         <li><boost/preprocessor/list/to_tuple.hpp></li>
                         <li><boost/preprocessor/list/transform.hpp></li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
 </body>
 </html>

Added: trunk/libs/preprocessor/doc/headers/list/to_array.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/list/to_array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,29 @@
+<html>
+<head>
+ <title>list/to_array.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+</head>
+<body>
+ <div style="margin-left: 0px;">
+ The <b>list/to_array.hpp</b> header defines a macro to convert a <i>list</i> to an <i>array</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/list/to_array.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_LIST_TO_ARRAY</li>
+ <li>BOOST_PP_LIST_TO_ARRAY_D</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/headers/list/to_seq.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/list/to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>list/to_seq.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>list/to_seq.hpp</b> header defines a macro to convert a <i>list</i> to a <i>seq</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/list/to_seq.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_LIST_TO_SEQ</li>
+ <li>BOOST_PP_LIST_TO_SEQ_R</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>

Modified: trunk/libs/preprocessor/doc/headers/seq.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/seq.html (original)
+++ trunk/libs/preprocessor/doc/headers/seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,83 +1,84 @@
 <html>
- <head>
- <title>seq.hpp</title>
- <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
- The <b>seq.hpp</b> includes the headers in the <i>seq</i> folder.
- </div>
- <h4>
- Usage
- </h4>
- <div class="code">
- #include <b>&lt;boost/preprocessor/seq.hpp&gt;</b>
- </div>
- <h4>
- Includes
- </h4>
- <ul>
- <li>
- <boost/preprocessor/seq/cat.hpp></li>
- <li>
- <boost/preprocessor/seq/elem.hpp></li>
- <li>
- <boost/preprocessor/seq/enum.hpp></li>
- <li>
- <boost/preprocessor/seq/filter.hpp></li>
- <li>
- <boost/preprocessor/seq/first_n.hpp></li>
- <li>
- <boost/preprocessor/seq/fold_left.hpp></li>
- <li>
- <boost/preprocessor/seq/fold_right.hpp></li>
- <li>
- <boost/preprocessor/seq/for_each.hpp></li>
- <li>
- <boost/preprocessor/seq/for_each_i.hpp></li>
- <li>
- <boost/preprocessor/seq/for_each_product.hpp></li>
- <li>
- <boost/preprocessor/seq/insert.hpp></li>
- <li>
- <boost/preprocessor/seq/pop_back.hpp></li>
- <li>
- <boost/preprocessor/seq/pop_front.hpp></li>
- <li>
- <boost/preprocessor/seq/push_back.hpp></li>
- <li>
- <boost/preprocessor/seq/push_front.hpp></li>
- <li>
- <boost/preprocessor/seq/remove.hpp></li>
- <li>
- <boost/preprocessor/seq/replace.hpp></li>
- <li>
- <boost/preprocessor/seq/rest_n.hpp></li>
- <li>
- <boost/preprocessor/seq/reverse.hpp></li>
- <li>
- <boost/preprocessor/seq/seq.hpp></li>
- <li>
- <boost/preprocessor/seq/size.hpp></li>
- <li>
- <boost/preprocessor/seq/subseq.hpp></li>
- <li>
- <boost/preprocessor/seq/to_array.hpp></li>
- <li>
- <boost/preprocessor/seq/to_tuple.hpp></li>
- <li>
- <boost/preprocessor/seq/transform.hpp></li>
- </ul>
- <hr size="1">
+<head>
+ <title>seq.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
         <div style="margin-left: 0px;">
- <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ The <b>seq.hpp</b> includes the headers in the <i>seq</i> folder.
         </div>
- <div style="margin-left: 0px;">
- <p><small>Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ <h4>
+ Usage
+ </h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/seq.hpp&gt;</b>
         </div>
- </body>
+ <h4>
+ Includes
+ </h4>
+ <ul>
+ <li>
+ <boost/preprocessor/seq/cat.hpp></li>
+ <li>
+ <boost/preprocessor/seq/elem.hpp></li>
+ <li>
+ <boost/preprocessor/seq/enum.hpp></li>
+ <li>
+ <boost/preprocessor/seq/filter.hpp></li>
+ <li>
+ <boost/preprocessor/seq/first_n.hpp></li>
+ <li>
+ <boost/preprocessor/seq/fold_left.hpp></li>
+ <li>
+ <boost/preprocessor/seq/fold_right.hpp></li>
+ <li>
+ <boost/preprocessor/seq/for_each.hpp></li>
+ <li>
+ <boost/preprocessor/seq/for_each_i.hpp></li>
+ <li>
+ <boost/preprocessor/seq/for_each_product.hpp></li>
+ <li>
+ <boost/preprocessor/seq/insert.hpp></li>
+ <li>
+ <boost/preprocessor/seq/pop_back.hpp></li>
+ <li>
+ <boost/preprocessor/seq/pop_front.hpp></li>
+ <li>
+ <boost/preprocessor/seq/push_back.hpp></li>
+ <li>
+ <boost/preprocessor/seq/push_front.hpp></li>
+ <li>
+ <boost/preprocessor/seq/remove.hpp></li>
+ <li>
+ <boost/preprocessor/seq/replace.hpp></li>
+ <li>
+ <boost/preprocessor/seq/rest_n.hpp></li>
+ <li>
+ <boost/preprocessor/seq/reverse.hpp></li>
+ <li>
+ <boost/preprocessor/seq/seq.hpp></li>
+ <li>
+ <boost/preprocessor/seq/size.hpp></li>
+ <li>
+ <boost/preprocessor/seq/subseq.hpp></li>
+ <li>
+ <boost/preprocessor/seq/to_array.hpp></li>
+ <li>
+ <boost/preprocessor/seq/to_list.hpp></li>
+ <li>
+ <boost/preprocessor/seq/to_tuple.hpp></li>
+ <li>
+ <boost/preprocessor/seq/transform.hpp></li>
+ </ul>
+<hr size="1">
+<div style="margin-left: 0px;">
+ <i>© Copyright Housemarque Oy 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
+</div>
+<div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
 </html>

Added: trunk/libs/preprocessor/doc/headers/seq/to_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/seq/to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,30 @@
+<html><head>
+ <title>seq/to_list.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>seq/to_list.hpp</b> header defines a macro that converts a <i>seq</i> to
+ a <i>list</i>.
+ </div>
+ <h4>
+ Usage
+ </h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/seq/to_list.hpp&gt;</b>
+ </div>
+ <h4>
+ Contents
+ </h4>
+ <ul>
+ <li>
+ BOOST_PP_SEQ_TO_LIST</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+ </body></html>

Modified: trunk/libs/preprocessor/doc/headers/tuple.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,34 +1,37 @@
 <html>
 <head>
- <title>tuple.hpp</title>
+ <title>tuple.hpp</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
 </head>
 <body>
- <div style="margin-left: 0px;">
+ <div style="margin-left: 0px;">
                 The <b>tuple.hpp</b> includes the headers in the <i>tuple</i> folder.
         </div>
         <h4>Usage</h4>
                 <div class="code">
                         #include <b>&lt;boost/preprocessor/tuple.hpp&gt;</b>
                 </div>
- <h4>Includes</h4>
- <ul>
- <li><boost/preprocessor/tuple/elem.hpp></li>
- <li><boost/preprocessor/tuple/eat.hpp></li>
- <li><boost/preprocessor/tuple/rem.hpp></li>
- <li><boost/preprocessor/tuple/reverse.hpp></li>
- <li><boost/preprocessor/tuple/to_list.hpp></li>
- </ul>
+ <h4>Includes<br></h4>
+ <ul>
+ <li><boost/preprocessor/tuple/eat.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/elem.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/enum.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/rem.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/reverse.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/size.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/to_array.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/to_list.hpp> (v)</li>
+ <li><boost/preprocessor/tuple/to_seq.hpp> (v)</li>
+ </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
 </body>
 </html>

Modified: trunk/libs/preprocessor/doc/headers/tuple/eat.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple/eat.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple/eat.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,6 @@
-<html>
-<head>
- <title>tuple/eat.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+<html><head><title>tuple/eat.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
                 The <b>tuple/eat.hpp</b> header defines a macro eats a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
@@ -13,18 +9,17 @@
                 </div>
         <h4>Contents</h4>
                 <ul>
- <li>BOOST_PP_TUPLE_EAT</li>
+ <li>BOOST_PP_TUPLE_EAT (v)<br>
+</li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+</body></html>

Modified: trunk/libs/preprocessor/doc/headers/tuple/elem.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple/elem.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple/elem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,6 @@
-<html>
-<head>
- <title>tuple/elem.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+<html><head><title>tuple/elem.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
                 The <b>tuple/elem.hpp</b> header defines a macro to extract elements from a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
@@ -13,18 +9,17 @@
                 </div>
         <h4>Contents</h4>
                 <ul>
- <li>BOOST_PP_TUPLE_ELEM</li>
+ <li>BOOST_PP_TUPLE_ELEM (v)<br>
+</li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+</body></html>

Added: trunk/libs/preprocessor/doc/headers/tuple/enum.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/tuple/enum.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>tuple/enum.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>tuple/enum.hpp</b> header defines a macro to onvert a <i>tuple</i> to its comma-separated elements.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/tuple/enum.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_TUPLE_ENUM (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>

Modified: trunk/libs/preprocessor/doc/headers/tuple/rem.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple/rem.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple/rem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,6 @@
-<html>
-<head>
- <title>tuple/rem.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+<html><head><title>tuple/rem.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
                 The <b>tuple/rem.hpp</b> header defines a macro that removes the parentheses from a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
@@ -13,19 +9,19 @@
                 </div>
         <h4>Contents</h4>
                 <ul>
- <li>BOOST_PP_TUPLE_REM</li>
- <li>BOOST_PP_TUPLE_REM_CTOR</li>
+ <li>BOOST_PP_TUPLE_REM (v)<br>
+</li>
+ <li>BOOST_PP_TUPLE_REM_CTOR (v)<br>
+</li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+</body></html>

Modified: trunk/libs/preprocessor/doc/headers/tuple/reverse.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple/reverse.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple/reverse.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,6 @@
-<html>
-<head>
- <title>tuple/reverse.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+<html><head><title>tuple/reverse.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
                 The <b>tuple/reverse.hpp</b> header defines a macro that reverses a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
@@ -13,18 +9,17 @@
                 </div>
         <h4>Contents</h4>
                 <ul>
- <li>BOOST_PP_TUPLE_REVERSE</li>
+ <li>BOOST_PP_TUPLE_REVERSE (v)<br>
+</li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+</body></html>

Added: trunk/libs/preprocessor/doc/headers/tuple/size.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/tuple/size.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>tuple/size.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>tuple/size.hpp</b> header defines a variadic macro that gives the number of elements in the <i>tuple</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/tuple/size.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_TUPLE_SIZE (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>

Added: trunk/libs/preprocessor/doc/headers/tuple/to_array.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/tuple/to_array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>tuple/to_array.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>tuple/to_array.hpp</b> header defines a macro that converts a <i>tuple</i> to an <i>array</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/tuple/to_array.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_TUPLE_TO_ARRAY (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>

Modified: trunk/libs/preprocessor/doc/headers/tuple/to_list.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple/to_list.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple/to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,6 @@
-<html>
-<head>
- <title>tuple/to_list.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+<html><head><title>tuple/to_list.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
                 The <b>tuple/to_list.hpp</b> header defines a macro that converts a <i>tuple</i> to a <i>list</i>.
         </div>
         <h4>Usage</h4>
@@ -13,18 +9,17 @@
                 </div>
         <h4>Contents</h4>
                 <ul>
- <li>BOOST_PP_TUPLE_TO_LIST</li>
+ <li>BOOST_PP_TUPLE_TO_LIST (v)<sup><br>
+ </sup></li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+</body></html>

Modified: trunk/libs/preprocessor/doc/headers/tuple/to_seq.html
==============================================================================
--- trunk/libs/preprocessor/doc/headers/tuple/to_seq.html (original)
+++ trunk/libs/preprocessor/doc/headers/tuple/to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,6 @@
-<html>
- <head>
- <title>tuple/to_seq.hpp</title>
- <link rel="stylesheet" type="text/css" href="../../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+<html><head><title>tuple/to_seq.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
                         The <b>tuple/to_seq.hpp</b> header defines a macro that converts a <i>tuple</i>
                         to a <i>seq</i>.
                 </div>
@@ -19,18 +15,17 @@
                 </h4>
                 <ul>
                         <li>
- BOOST_PP_TUPLE_TO_SEQ</li>
+ BOOST_PP_TUPLE_TO_SEQ (v)<br>
+</li>
                 </ul>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
-</html>
+ </body></html>

Added: trunk/libs/preprocessor/doc/headers/variadic.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,33 @@
+<html>
+<head>
+ <title>variadic.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+ <div style="margin-left: 0px;">
+ The <b>variadic.hpp</b> includes the headers in the <i>variadic</i> folder.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic.hpp&gt;</b>
+ </div>
+ <h4>Includes</h4>
+ <ul>
+ <li><boost/preprocessor/variadic/elem.hpp> (v)</li>
+ <li><boost/preprocessor/variadic/size.hpp> (v)</li>
+ <li><boost/preprocessor/variadic/to_array.hpp> (v)</li>
+ <li><boost/preprocessor/variadic/to_list.hpp> (v)</li>
+ <li><boost/preprocessor/variadic/to_seq.hpp> (v)</li>
+ <li><boost/preprocessor/variadic/to_tuple.hpp> (v)</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/headers/variadic/elem.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic/elem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,29 @@
+<html>
+ <head>
+ <title>variadic/elem.hpp
+ </title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css">
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
+ The <b>variadic/elem.hpp</b> header defines a variadic macro to extract an element from <i>variadic data</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic/elem.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_VARIADIC_ELEM (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>

Added: trunk/libs/preprocessor/doc/headers/variadic/size.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic/size.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>variadic/size.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>variadic/size.hpp</b> header defines a variadic macro that gives the number of comma-separated elements in the <i>variadic data</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic/size.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_VARIADIC_SIZE (v)<br>
+ </li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+ </body></html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/headers/variadic/to_array.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic/to_array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>variadic/to_array.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>variadic/to_array.hpp</b> header defines a variadic macro that converts <i>variadic data</i> to an <i>array</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic/to_array.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_VARIADIC_TO_ARRAY (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/headers/variadic/to_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic/to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,25 @@
+<html><head>
+ <title>variadic/to_list.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>variadic/to_list.hpp</b> header defines a variadic macro that converts <i>variadic data </i>to a <i>list</i>.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic/to_list.hpp&gt;</b>
+ </div>
+ <h4>Contents</h4>
+ <ul>
+ <li>BOOST_PP_VARIADIC_TO_LIST (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+</body></html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/headers/variadic/to_seq.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic/to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,30 @@
+<html><head>
+ <title>variadic/to_seq.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>variadic/to_seq.hpp</b> header defines a variadic macro that converts <i>variadic data </i>to a <i>seq</i>.
+ </div>
+ <h4>
+ Usage
+ </h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic/to_seq.hpp&gt;</b>
+ </div>
+ <h4>
+ Contents
+ </h4>
+ <ul>
+ <li>
+ BOOST_PP_VARIADIC_TO_SEQ (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+ </body></html>

Added: trunk/libs/preprocessor/doc/headers/variadic/to_tuple.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/headers/variadic/to_tuple.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,31 @@
+<html><head>
+ <title>variadic/to_tuple.hpp</title>
+ <link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
+ <div style="margin-left: 0px;">
+ The <b>variadic/to_tuple.hpp</b> header defines a variadic macro that converts <i>variadic data</i>
+ to a <i>tuple</i>.
+ </div>
+ <h4>
+ Usage
+ </h4>
+ <div class="code">
+ #include <b>&lt;boost/preprocessor/variadic/to_tuple.hpp&gt;</b>
+ </div>
+ <h4>
+ Contents
+ </h4>
+ <ul>
+ <li>
+ BOOST_PP_VARIADIC_TO_TUPLE (v)<br>
+</li>
+ </ul>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i></i><i>© Copyright Edward Diener 2011</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+ </div>
+ </body></html>

Modified: trunk/libs/preprocessor/doc/ref.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref.html (original)
+++ trunk/libs/preprocessor/doc/ref.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,286 +1,304 @@
 <html>
- <head>
- <title>ref.html</title>
- <link rel="stylesheet" type="text/css" href="styles.css">
- <base target="desc">
- </head>
- <body>
- <h4>
- Reference <small>[back]</small>
- </h4>
- <ul>
- <!-- A -->
- <li>ADD</li>
- <li>ADD_D</li>
- <li>AND</li>
- <li>APPLY</li>
- <li>ARRAY_DATA</li>
- <li>ARRAY_ELEM</li>
- <li>ARRAY_INSERT</li>
- <li>ARRAY_INSERT_D</li>
- <li>ARRAY_POP_BACK</li>
- <li>ARRAY_POP_BACK_Z</li>
- <li>ARRAY_POP_FRONT</li>
- <li>ARRAY_POP_FRONT_Z</li>
- <li>ARRAY_PUSH_BACK</li>
- <li>ARRAY_PUSH_FRONT</li>
- <li>ARRAY_REMOVE</li>
- <li>ARRAY_REMOVE_D</li>
- <li>ARRAY_REPLACE</li>
- <li>ARRAY_REPLACE_D</li>
- <li>ARRAY_REVERSE</li>
- <li>ARRAY_SIZE</li>
- <li>ASSERT</li>
- <li>ASSERT_MSG</li>
- <li>ASSIGN_SLOT</li>
- <!-- B -->
- <li>BITAND</li>
- <li>BITNOR</li>
- <li>BITOR</li>
- <li>BITXOR</li>
- <li>BOOL</li>
- <!-- C -->
- <li>CAT</li>
- <li>COMMA</li>
- <li>COMMA_IF</li>
- <li>COMPL</li>
- <li>CONFIG_EXTENDED_LINE_INFO</li>
- <li>COUNTER</li>
- <!-- D -->
- <li>DEC</li>
- <li>DEDUCE_D</li>
- <li>DEDUCE_R</li>
- <li>DEDUCE_Z</li>
- <li>DIV</li>
- <li>DIV_D</li>
- <!-- E -->
- <li>EMPTY</li>
- <li>ENUM</li>
- <li>ENUM_BINARY_PARAMS</li>
- <li>ENUM_BINARY_PARAMS_Z</li>
- <li>ENUM_PARAMS</li>
- <li>ENUM_PARAMS_WITH_A_DEFAULT*</li>
- <li>ENUM_PARAMS_WITH_DEFAULTS*</li>
- <li>ENUM_PARAMS_Z</li>
- <li>ENUM_SHIFTED</li>
- <li>ENUM_SHIFTED_BINARY_PARAMS</li>
- <li>ENUM_SHIFTED_BINARY_PARAMS_Z</li>
- <li>ENUM_SHIFTED_PARAMS</li>
- <li>ENUM_SHIFTED_PARAMS_Z</li>
- <li>ENUM_SHIFTED_z</li>
- <li>ENUM_TRAILING</li>
- <li>ENUM_TRAILING_BINARY_PARAMS</li>
- <li>ENUM_TRAILING_BINARY_PARAMS_Z</li>
- <li>ENUM_TRAILING_PARAMS</li>
- <li>ENUM_TRAILING_PARAMS_Z</li>
- <li>ENUM_TRAILING_z</li>
- <li>ENUM_z</li>
- <li>EQUAL</li>
- <li>EQUAL_D*</li>
- <li>EXPAND</li>
- <li>EXPR_IF</li>
- <li>EXPR_IIF</li>
- <!-- F -->
- <li>FILENAME_x</li>
- <li>FOR</li>
- <li>FOR_r</li>
- <li>FRAME_FINISH</li>
- <li>FRAME_FLAGS</li>
- <li>FRAME_ITERATION</li>
- <li>FRAME_START</li>
- <!-- G -->
- <li>GREATER</li>
- <li>GREATER_D</li>
- <li>GREATER_EQUAL</li>
- <li>GREATER_EQUAL_D</li>
- <!-- I -->
- <li>IDENTITY</li>
- <li>IF</li>
- <li>IIF</li>
- <li>INC</li>
- <li>INCLUDE_SELF</li>
- <li>INDIRECT_SELF</li>
- <li>INTERCEPT</li>
- <li>IS_ITERATING</li>
- <li>IS_SELFISH</li>
- <li>ITERATE</li>
- <li>ITERATION</li>
- <li>ITERATION_DEPTH</li>
- <li>ITERATION_FINISH</li>
- <li>ITERATION_FLAGS</li>
- <li>ITERATION_LIMITS</li>
- <li>ITERATION_PARAMS_x</li>
- <li>ITERATION_START</li>
- <!-- L -->
- <li>LESS</li>
- <li>LESS_D</li>
- <li>LESS_EQUAL</li>
- <li>LESS_EQUAL_D</li>
- <li>LIMIT_DIM</li>
- <li>LIMIT_FOR</li>
- <li>LIMIT_ITERATION</li>
- <li>LIMIT_ITERATION_DIM</li>
- <li>LIMIT_MAG</li>
- <li>LIMIT_REPEAT</li>
- <li>LIMIT_SEQ</li>
- <li>LIMIT_SLOT_COUNT</li>
- <li>LIMIT_SLOT_SIG</li>
- <li>LIMIT_TUPLE</li>
- <li>LIMIT_WHILE</li>
- <li>LINE</li>
- <li>LIST_APPEND</li>
- <li>LIST_APPEND_D</li>
- <li>LIST_AT</li>
- <li>LIST_AT_D</li>
- <li>LIST_CAT</li>
- <li>LIST_CAT_D</li>
- <li>LIST_CONS*</li>
- <li>LIST_ENUM</li>
- <li>LIST_ENUM_R</li>
- <li>LIST_FILTER</li>
- <li>LIST_FILTER_D</li>
- <li>LIST_FIRST</li>
- <li>LIST_FIRST_N</li>
- <li>LIST_FIRST_N_D</li>
- <li>LIST_FOLD_LEFT</li>
- <li>LIST_FOLD_LEFT_2ND*</li>
- <li>LIST_FOLD_LEFT_2ND_D*</li>
- <li>LIST_FOLD_LEFT_d</li>
- <li>LIST_FOLD_LEFT_D*</li>
- <li>LIST_FOLD_RIGHT</li>
- <li>LIST_FOLD_RIGHT_2ND*</li>
- <li>LIST_FOLD_RIGHT_2ND_D*</li>
- <li>LIST_FOLD_RIGHT_d</li>
- <li>LIST_FOLD_RIGHT_D*</li>
- <li>LIST_FOR_EACH</li>
- <li>LIST_FOR_EACH_I</li>
- <li>LIST_FOR_EACH_I_R</li>
- <li>LIST_FOR_EACH_PRODUCT</li>
- <li>LIST_FOR_EACH_PRODUCT_R</li>
- <li>LIST_FOR_EACH_R</li>
- <li>LIST_IS_CONS</li>
- <li>LIST_IS_NIL</li>
- <li>LIST_NIL*</li>
- <li>LIST_REST</li>
- <li>LIST_REST_N</li>
- <li>LIST_REST_N_D</li>
- <li>LIST_REVERSE</li>
- <li>LIST_REVERSE_D</li>
- <li>LIST_SIZE</li>
- <li>LIST_SIZE_D</li>
- <li>LIST_TO_TUPLE</li>
- <li>LIST_TO_TUPLE_R</li>
- <li>LIST_TRANSFORM</li>
- <li>LIST_TRANSFORM_D</li>
- <li>LOCAL_ITERATE</li>
- <li>LOCAL_LIMITS</li>
- <li>LOCAL_MACRO</li>
- <li>LPAREN</li>
- <li>LPAREN_IF</li>
- <!-- M -->
- <li>MAX</li>
- <li>MAX_D</li>
- <li>MIN</li>
- <li>MIN_D</li>
- <li>MOD</li>
- <li>MOD_D</li>
- <li>MUL</li>
- <li>MUL_D</li>
- <!-- N -->
- <li>NIL</li>
- <li>NOR</li>
- <li>NOT</li>
- <li>NOT_EQUAL</li>
- <li>NOT_EQUAL_D*</li>
- <!-- O -->
- <li>OR</li>
- <!-- R -->
- <li>RELATIVE_FINISH</li>
- <li>RELATIVE_FLAGS</li>
- <li>RELATIVE_ITERATION</li>
- <li>RELATIVE_START</li>
- <li>REPEAT</li>
- <li>REPEAT_1ST*</li>
- <li>REPEAT_2ND*</li>
- <li>REPEAT_3RD*</li>
- <li>REPEAT_FROM_TO</li>
- <li>REPEAT_FROM_TO_1ST*</li>
- <li>REPEAT_FROM_TO_2ND*</li>
- <li>REPEAT_FROM_TO_3RD*</li>
- <li>REPEAT_FROM_TO_D</li>
- <li>REPEAT_FROM_TO_D_z</li>
- <li>REPEAT_FROM_TO_z</li>
- <li>REPEAT_z</li>
- <li>RPAREN</li>
- <li>RPAREN_IF</li>
- <!-- S -->
- <li>SEQ_CAT</li>
- <li>SEQ_CAT_S</li>
- <li>SEQ_ELEM</li>
- <li>SEQ_ENUM</li>
- <li>SEQ_FILTER</li>
- <li>SEQ_FILTER_S</li>
- <li>SEQ_FIRST_N</li>
- <li>SEQ_FOLD_LEFT</li>
- <li>SEQ_FOLD_LEFT_s</li>
- <li>SEQ_FOLD_RIGHT</li>
- <li>SEQ_FOLD_RIGHT_s</li>
- <li>SEQ_FOR_EACH</li>
- <li>SEQ_FOR_EACH_I</li>
- <li>SEQ_FOR_EACH_I_R</li>
- <li>SEQ_FOR_EACH_PRODUCT</li>
- <li>SEQ_FOR_EACH_PRODUCT_R</li>
- <li>SEQ_FOR_EACH_R</li>
- <li>SEQ_HEAD</li>
- <li>SEQ_INSERT</li>
- <li>SEQ_NIL</li>
- <li>SEQ_POP_BACK</li>
- <li>SEQ_POP_FRONT</li>
- <li>SEQ_PUSH_BACK</li>
- <li>SEQ_PUSH_FRONT</li>
- <li>SEQ_REMOVE</li>
- <li>SEQ_REPLACE</li>
- <li>SEQ_REST_N</li>
- <li>SEQ_REVERSE</li>
- <li>SEQ_REVERSE_S</li>
- <li>SEQ_SIZE</li>
- <li>SEQ_SUBSEQ</li>
- <li>SEQ_TAIL</li>
- <li>SEQ_TO_ARRAY</li>
- <li>SEQ_TO_TUPLE</li>
- <li>SEQ_TRANSFORM</li>
- <li>SEQ_TRANSFORM_S</li>
- <li>SLOT</li>
- <li>STRINGIZE</li>
- <li>SUB</li>
- <li>SUB_D</li>
- <!-- T -->
- <li>TUPLE_EAT</li>
- <li>TUPLE_ELEM</li>
- <li>TUPLE_REM</li>
- <li>TUPLE_REM_CTOR</li>
- <li>TUPLE_REVERSE</li>
- <li>TUPLE_TO_LIST</li>
- <li>TUPLE_TO_SEQ</li>
- <!-- U -->
- <li>UPDATE_COUNTER</li>
- <!-- V -->
- <li>VALUE</li>
- <!-- W -->
- <li>WHILE</li>
- <li>WHILE_d</li>
- <li>WSTRINGIZE</li>
- <!-- X -->
- <li>XOR</li>
- </ul>
-
+ <head>
+ <title>ref.html</title>
+ <link rel="stylesheet" type="text/css" href="styles.css">
+ <base target="desc">
+ </head>
+ <body>
+<h4> Reference <small>[back]</small>
+</h4>
+<ul>
+<!-- A -->
+ <li>ADD</li>
+ <li>ADD_D</li>
+ <li>AND</li>
+ <li>APPLY</li>
+ <li>ARRAY_DATA</li>
+ <li>ARRAY_ELEM</li>
+ <li>ARRAY_ENUM</li>
+ <li>ARRAY_INSERT</li>
+ <li>ARRAY_INSERT_D</li>
+ <li>ARRAY_POP_BACK</li>
+ <li>ARRAY_POP_BACK_Z</li>
+ <li>ARRAY_POP_FRONT</li>
+ <li>ARRAY_POP_FRONT_Z</li>
+ <li>ARRAY_PUSH_BACK</li>
+ <li>ARRAY_PUSH_FRONT</li>
+ <li>ARRAY_REMOVE</li>
+ <li>ARRAY_REMOVE_D</li>
+ <li>ARRAY_REPLACE</li>
+ <li>ARRAY_REPLACE_D</li>
+ <li>ARRAY_REVERSE</li>
+ <li>ARRAY_SIZE</li>
+ <li>ARRAY_TO_LIST</li>
+ <li>ARRAY_TO_SEQ</li>
+ <li>ARRAY_TO_TUPLE</li>
+ <li>ASSERT</li>
+ <li>ASSERT_MSG</li>
+ <li>ASSIGN_SLOT</li>
+<!-- B -->
+ <li>BITAND</li>
+ <li>BITNOR</li>
+ <li>BITOR</li>
+ <li>BITXOR</li>
+ <li>BOOL</li>
+<!-- C -->
+ <li>CAT</li>
+ <li>COMMA</li>
+ <li>COMMA_IF</li>
+ <li>COMPL</li>
+ <li>CONFIG_EXTENDED_LINE_INFO</li>
+ <li>COUNTER</li>
+<!-- D -->
+ <li>DEC</li>
+ <li>DEDUCE_D</li>
+ <li>DEDUCE_R</li>
+ <li>DEDUCE_Z</li>
+ <li>DIV</li>
+ <li>DIV_D</li>
+<!-- E -->
+ <li>EMPTY</li>
+ <li>ENUM</li>
+ <li>ENUM_BINARY_PARAMS</li>
+ <li>ENUM_BINARY_PARAMS_Z</li>
+ <li>ENUM_PARAMS</li>
+ <li>ENUM_PARAMS_WITH_A_DEFAULT*</li>
+ <li>ENUM_PARAMS_WITH_DEFAULTS*</li>
+ <li>ENUM_PARAMS_Z</li>
+ <li>ENUM_SHIFTED</li>
+ <li>ENUM_SHIFTED_BINARY_PARAMS</li>
+ <li>ENUM_SHIFTED_BINARY_PARAMS_Z</li>
+ <li>ENUM_SHIFTED_PARAMS</li>
+ <li>ENUM_SHIFTED_PARAMS_Z</li>
+ <li>ENUM_SHIFTED_z</li>
+ <li>ENUM_TRAILING</li>
+ <li>ENUM_TRAILING_BINARY_PARAMS</li>
+ <li>ENUM_TRAILING_BINARY_PARAMS_Z</li>
+ <li>ENUM_TRAILING_PARAMS</li>
+ <li>ENUM_TRAILING_PARAMS_Z</li>
+ <li>ENUM_TRAILING_z</li>
+ <li>ENUM_z</li>
+ <li>EQUAL</li>
+ <li>EQUAL_D*</li>
+ <li>EXPAND</li>
+ <li>EXPR_IF</li>
+ <li>EXPR_IIF</li>
+<!-- F -->
+ <li>FILENAME_x</li>
+ <li>FOR</li>
+ <li>FOR_r</li>
+ <li>FRAME_FINISH</li>
+ <li>FRAME_FLAGS</li>
+ <li>FRAME_ITERATION</li>
+ <li>FRAME_START</li>
+<!-- G -->
+ <li>GREATER</li>
+ <li>GREATER_D</li>
+ <li>GREATER_EQUAL</li>
+ <li>GREATER_EQUAL_D</li>
+<!-- I -->
+ <li>IDENTITY</li>
+ <li>IF</li>
+ <li>IIF</li>
+ <li>INC</li>
+ <li>INCLUDE_SELF</li>
+ <li>INDIRECT_SELF</li>
+ <li>INTERCEPT</li>
+ <li>IS_ITERATING</li>
+ <li>IS_SELFISH</li>
+ <li>ITERATE</li>
+ <li>ITERATION</li>
+ <li>ITERATION_DEPTH</li>
+ <li>ITERATION_FINISH</li>
+ <li>ITERATION_FLAGS</li>
+ <li>ITERATION_LIMITS</li>
+ <li>ITERATION_PARAMS_x</li>
+ <li>ITERATION_START</li>
+<!-- L -->
+ <li>LESS</li>
+ <li>LESS_D</li>
+ <li>LESS_EQUAL</li>
+ <li>LESS_EQUAL_D</li>
+ <li>LIMIT_DIM</li>
+ <li>LIMIT_FOR</li>
+ <li>LIMIT_ITERATION</li>
+ <li>LIMIT_ITERATION_DIM</li>
+ <li>LIMIT_MAG</li>
+ <li>LIMIT_REPEAT</li>
+ <li>LIMIT_SEQ</li>
+ <li>LIMIT_SLOT_COUNT</li>
+ <li>LIMIT_SLOT_SIG</li>
+ <li>LIMIT_TUPLE</li>
+ <li>LIMIT_VARIADIC</li>
+ <li>LIMIT_WHILE</li>
+ <li>LINE</li>
+ <li>LIST_APPEND</li>
+ <li>LIST_APPEND_D</li>
+ <li>LIST_AT</li>
+ <li>LIST_AT_D</li>
+ <li>LIST_CAT</li>
+ <li>LIST_CAT_D</li>
+ <li>LIST_CONS*</li>
+ <li>LIST_ENUM</li>
+ <li>LIST_ENUM_R</li>
+ <li>LIST_FILTER</li>
+ <li>LIST_FILTER_D</li>
+ <li>LIST_FIRST</li>
+ <li>LIST_FIRST_N</li>
+ <li>LIST_FIRST_N_D</li>
+ <li>LIST_FOLD_LEFT</li>
+ <li>LIST_FOLD_LEFT_2ND*</li>
+ <li>LIST_FOLD_LEFT_2ND_D*</li>
+ <li>LIST_FOLD_LEFT_d</li>
+ <li>LIST_FOLD_LEFT_D*</li>
+ <li>LIST_FOLD_RIGHT</li>
+ <li>LIST_FOLD_RIGHT_2ND*</li>
+ <li>LIST_FOLD_RIGHT_2ND_D*</li>
+ <li>LIST_FOLD_RIGHT_d</li>
+ <li>LIST_FOLD_RIGHT_D*</li>
+ <li>LIST_FOR_EACH</li>
+ <li>LIST_FOR_EACH_I</li>
+ <li>LIST_FOR_EACH_I_R</li>
+ <li>LIST_FOR_EACH_PRODUCT</li>
+ <li>LIST_FOR_EACH_PRODUCT_R</li>
+ <li>LIST_FOR_EACH_R</li>
+ <li>LIST_IS_CONS</li>
+ <li>LIST_IS_NIL</li>
+ <li>LIST_NIL*</li>
+ <li>LIST_REST</li>
+ <li>LIST_REST_N</li>
+ <li>LIST_REST_N_D</li>
+ <li>LIST_REVERSE</li>
+ <li>LIST_REVERSE_D</li>
+ <li>LIST_SIZE</li>
+ <li>LIST_SIZE_D</li>
+ <li>LIST_TO_ARRAY</li>
+ <li>LIST_TO_ARRAY_D</li>
+ <li>LIST_TO_SEQ</li>
+ <li>LIST_TO_SEQ_R</li>
+ <li>LIST_TO_TUPLE</li>
+ <li>LIST_TO_TUPLE_R</li>
+ <li>LIST_TRANSFORM</li>
+ <li>LIST_TRANSFORM_D</li>
+ <li>LOCAL_ITERATE</li>
+ <li>LOCAL_LIMITS</li>
+ <li>LOCAL_MACRO</li>
+ <li>LPAREN</li>
+ <li>LPAREN_IF</li>
+<!-- M -->
+ <li>MAX</li>
+ <li>MAX_D</li>
+ <li>MIN</li>
+ <li>MIN_D</li>
+ <li>MOD</li>
+ <li>MOD_D</li>
+ <li>MUL</li>
+ <li>MUL_D</li>
+<!-- N -->
+ <li>NIL</li>
+ <li>NOR</li>
+ <li>NOT</li>
+ <li>NOT_EQUAL</li>
+ <li>NOT_EQUAL_D*</li>
+<!-- O -->
+ <li>OR</li>
+ <li>OVERLOAD (v)</li>
+<!-- R -->
+ <li>RELATIVE_FINISH</li>
+ <li>RELATIVE_FLAGS</li>
+ <li>RELATIVE_ITERATION</li>
+ <li>RELATIVE_START</li>
+ <li>REPEAT</li>
+ <li>REPEAT_1ST*</li>
+ <li>REPEAT_2ND*</li>
+ <li>REPEAT_3RD*</li>
+ <li>REPEAT_FROM_TO</li>
+ <li>REPEAT_FROM_TO_1ST*</li>
+ <li>REPEAT_FROM_TO_2ND*</li>
+ <li>REPEAT_FROM_TO_3RD*</li>
+ <li>REPEAT_FROM_TO_D</li>
+ <li>REPEAT_FROM_TO_D_z</li>
+ <li>REPEAT_FROM_TO_z</li>
+ <li>REPEAT_z</li>
+ <li>RPAREN</li>
+ <li>RPAREN_IF</li>
+<!-- S -->
+ <li>SEQ_CAT</li>
+ <li>SEQ_CAT_S</li>
+ <li>SEQ_ELEM</li>
+ <li>SEQ_ENUM</li>
+ <li>SEQ_FILTER</li>
+ <li>SEQ_FILTER_S</li>
+ <li>SEQ_FIRST_N</li>
+ <li>SEQ_FOLD_LEFT</li>
+ <li>SEQ_FOLD_LEFT_s</li>
+ <li>SEQ_FOLD_RIGHT</li>
+ <li>SEQ_FOLD_RIGHT_s</li>
+ <li>SEQ_FOR_EACH</li>
+ <li>SEQ_FOR_EACH_I</li>
+ <li>SEQ_FOR_EACH_I_R</li>
+ <li>SEQ_FOR_EACH_PRODUCT</li>
+ <li>SEQ_FOR_EACH_PRODUCT_R</li>
+ <li>SEQ_FOR_EACH_R</li>
+ <li>SEQ_HEAD</li>
+ <li>SEQ_INSERT</li>
+ <li>SEQ_NIL</li>
+ <li>SEQ_POP_BACK</li>
+ <li>SEQ_POP_FRONT</li>
+ <li>SEQ_PUSH_BACK</li>
+ <li>SEQ_PUSH_FRONT</li>
+ <li>SEQ_REMOVE</li>
+ <li>SEQ_REPLACE</li>
+ <li>SEQ_REST_N</li>
+ <li>SEQ_REVERSE</li>
+ <li>SEQ_REVERSE_S</li>
+ <li>SEQ_SIZE</li>
+ <li>SEQ_SUBSEQ</li>
+ <li>SEQ_TAIL</li>
+ <li>SEQ_TO_ARRAY</li>
+ <li>SEQ_TO_LIST</li>
+ <li>SEQ_TO_TUPLE</li>
+ <li>SEQ_TRANSFORM</li>
+ <li>SEQ_TRANSFORM_S</li>
+ <li>SLOT</li>
+ <li>STRINGIZE</li>
+ <li>SUB</li>
+ <li>SUB_D</li>
+<!-- T -->
+ <li>TUPLE_EAT (v)</li>
+ <li>TUPLE_ELEM (v)</li>
+ <li>TUPLE_ENUM (v)</li>
+ <li>TUPLE_REM (v)</li>
+ <li>TUPLE_REM_CTOR (v)</li>
+ <li>TUPLE_REVERSE (v)</li>
+ <li>TUPLE_SIZE (v)</li>
+ <li>TUPLE_TO_ARRAY (v)</li>
+ <li>TUPLE_TO_LIST (v)</li>
+ <li>TUPLE_TO_SEQ (v)</li>
+<!-- U -->
+ <li>UPDATE_COUNTER</li>
+<!-- V -->
+ <li>VALUE</li>
+ <li>VARIADICS</li>
+ <li>VARIADIC_ELEM (v)</li>
+ <li>VARIADIC_SIZE (v)</li>
+ <li>VARIADIC_TO_ARRAY (v)</li>
+ <li>VARIADIC_TO_LIST (v)</li>
+ <li>VARIADIC_TO_SEQ (v)</li>
+ <li>VARIADIC_TO_TUPLE (v)</li>
+<!-- W -->
+ <li>WHILE</li>
+ <li>WHILE_d</li>
+ <li>WSTRINGIZE</li>
+<!-- X -->
+ <li>XOR</li>
+</ul>
 <!--
-© Copyright Housemarque Oy 2002
-© Copyright Paul Mensonides 2002
+© Copyright Housemarque Oy 2002
+© Copyright Paul Mensonides 2002
 Distributed under 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)
 -->
-
- </body>
+ </body>
 </html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/ref/array_enum.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/array_enum.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,37 @@
+<html>
+<head>
+ <title>BOOST_PP_ARRAY_ENUM</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+ <div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_ENUM</b> macro converts an <i>array</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>.<br>
+ </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_ARRAY_ENUM</b>(<i>array</i>) </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>array</dt>
+ <dd> The <i>array</i> whose elements are to be converted. </dd>
+</dl>
+<h4> Remarks </h4>
+<div> This macro expands to a comma-separated list of the elements in <i>array</i>.&nbsp;
+For example, <b>BOOST_PP_ARRAY_ENUM</b>((3,(<i>x,</i><i>y,</i><i>z</i>)))
+expands to...
+<div> <i>x</i>, <i>y</i>, <i>z</i> </div>
+</div>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/array/enum.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/array/enum.hpp&gt;<br><br>#define ARRAY (5,(B,O,O,S,T))<br><br>BOOST_PP_ARRAY_ENUM(ARRAY) // expands to B, O, O, S, T<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/array_to_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/array_to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,33 @@
+<html>
+<head>
+ <title>BOOST_PP_ARRAY_TO_LIST</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_LIST</b>
+macro converts an <i>array</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_ARRAY_TO_LIST</b>(<i>array</i>)
+</div>
+<h4>Arguments</h4>
+<dl><dt>array</dt>
+ <dd> The <i>array</i> to be converted. </dd>
+</dl>
+ <ul>
+</ul>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/array/to_list.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/array/to_list.hpp&gt;<br><br>BOOST_PP_ARRAY_TO_LIST((3, (x, y, z)))<br> // expands to (x, (y, (z, BOOST_PP_NIL)))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/array_to_seq.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/array_to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <title>BOOST_PP_ARRAY_TO_SEQ</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_SEQ</b> macro
+converts an <i>array</i> to a <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_ARRAY_TO_SEQ</b>(<i>array</i>)
+</div>
+<h4> Arguments </h4>
+<dl><dt>array</dt>
+ <dd> The <i>array</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/array/to_seq.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/array/to_seq.hpp&gt;<br><br>BOOST_PP_ARRAY_TO_SEQ((3, (a, b, c))) // expands to (a)(b)(c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/array_to_tuple.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/array_to_tuple.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <title>BOOST_PP_ARRAY_TO_TUPLE</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_TUPLE</b> macro
+converts an <i>array</i> to an <i>tuple</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_ARRAY_TO_TUPLE</b>(<i>array</i>) </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>array</dt>
+ <dd> The <i>array</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/array/to_tuple.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/array/to_tuple.hpp&gt;<br><br>#define ARRAY (3,(a, b, c))<br><br>BOOST_PP_ARRAY_TO_TUPLE(ARRAY) // expands to (a, b, c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Modified: trunk/libs/preprocessor/doc/ref/limit_tuple.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/limit_tuple.html (original)
+++ trunk/libs/preprocessor/doc/ref/limit_tuple.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
 <head>
- <title>BOOST_PP_LIMIT_TUPLE</title>
- <link rel="stylesheet" type="text/css" href="../styles.css">
+ <title>BOOST_PP_LIMIT_TUPLE</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
 </head>
 <body>
- <div style="margin-left: 0px;">
+ <div style="margin-left: 0px;">
                 The <b>BOOST_PP_LIMIT_TUPLE</b> macro defines the maximum <i>tuple</i> size supported by the library.
         </div>
         <h4>Usage</h4>
@@ -13,7 +13,7 @@
                 </div>
         <h4>Remarks</h4>
                 <div>
- This macro currently expands to <i>25</i>.
+ This macro currently expands to <i>64</i>.
                 </div>
         <h4>Requirements</h4>
                 <div>
@@ -22,13 +22,12 @@
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
 </body>
-</html>
+</html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/ref/limit_variadic.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/limit_variadic.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,24 @@
+<html>
+<head>
+ <title>BOOST_PP_LIMIT_VARIADIC</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b> macro
+defines the maximum <i>variadic data</i> size&nbsp;supported by the library. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div>
+<h4>Remarks</h4>
+<div> This macro currently expands to <i>64</i>. </div>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/config/limits.hpp>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/ref/list_to_array.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/list_to_array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,39 @@
+<html>
+<head>
+ <title>BOOST_PP_LIST_TO_ARRAY</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css"></head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY</b> macro
+converts a <i>list</i> to an <i>array</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY</b>(<i>list</i>) </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>list</dt>
+ <dd> The <i>list</i> to be converted. </dd>
+</dl>
+<h4>Remarks</h4>
+ <div>
+ This macro uses <b>BOOST_PP_WHILE</b>.
+ Within <b>BOOST_PP_WHILE</b>, it is more efficient to use <b>BOOST_PP_LIST_TO_ARRAY_D</b>.
+ </div>
+<h4>See Also</h4>
+<ul>
+ <li>BOOST_PP_LIST_TO_ARRAY_D</li>
+</ul>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/list/to_array.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/list/to_array.hpp&gt;<br><br>#define LIST (a, (b, (c, BOOST_PP_NIL)))<br><br>BOOST_PP_LIST_TO_ARRAY(LIST) // expands to (3, (a, b, c))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/list_to_array_d.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/list_to_array_d.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,27 @@
+<html>
+<head>
+ <title>BOOST_PP_LIST_TO_ARRAY_D</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css"></head>
+<body>
+<div style="margin-left: 0px;">
+The <b>BOOST_PP_LIST_TO_ARRAY_D</b> macro converts a <i>list</i> to an <i>array</i>.
+It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
+</div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY_D</b>(<i>d</i>, <i>list</i>) </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>d</dt>
+ <dd>The next available <b>BOOST_PP_WHILE</b> iteration.</dd>
+ <dt>list</dt>
+ <dd> The <i>list</i> to be converted. </dd>
+</dl>
+<h4>See Also</h4>
+<ul>
+ <li>BOOST_PP_LIST_TO_ARRAY</li>
+</ul>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/list/to_array.hpp>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/list_to_seq.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/list_to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,40 @@
+<html>
+<head>
+ <title>BOOST_PP_LIST_TO_SEQ</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ</b> macro
+converts a <i>list</i> to a <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_LIST_TO_SEQ</b>(<i>list</i>)
+</div>
+<h4> Arguments </h4>
+<dl><dt>list</dt>
+ <dd> The <i>list</i> to be converted. </dd>
+</dl>
+<h4>Remarks</h4>
+ <div>
+ This macro uses <b>BOOST_PP_FOR</b>.
+ Within <b>BOOST_PP_FOR</b>, it is more efficient to use <b>BOOST_PP_LIST_TO_SEQ_R</b>.
+ </div>
+<h4>See Also</h4>
+<ul>
+ <li>BOOST_PP_LIST_TO_SEQ_R</li>
+</ul>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/list/to_seq.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/list/to_seq.hpp&gt;<br><br>BOOST_PP_LIST_TO_SEQ((a, (b, (c, BOOST_PP_NIL)))) // expands to (a)(b)(c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/list_to_seq_r.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/list_to_seq_r.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,27 @@
+<html>
+<head>
+ <title>BOOST_PP_LIST_TO_SEQ_R</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css"></head>
+<body>
+<div style="margin-left: 0px;">
+The <b>BOOST_PP_LIST_TO_SEQ_R</b> macro converts a <i>list</i> to an <i>seq</i>.
+It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
+</div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_LIST_TO_SEQ_R</b>(<i>r</i>, <i>list</i>) </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>d</dt>
+ <dd>The next available <b>BOOST_PP_FOR</b> repetition.</dd>
+ <dt>list</dt>
+ <dd> The <i>list</i> to be converted. </dd>
+</dl>
+<h4>See Also</h4>
+<ul>
+ <li>BOOST_PP_LIST_TO_SEQ</li>
+</ul>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/list/to_seq.hpp>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/overload.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/overload.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,46 @@
+<html>
+ <head>
+ <title>BOOST_PP_OVERLOAD</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+ </head>
+ <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_OVERLOAD</b> variadic macro expands to the name of a non-variadic macro having a given number of parameters.<br>
+ </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_OVERLOAD</b>(<i>prefix</i>,...) <sup>(v)</sup><br>
+ </div>
+<h4>Arguments</h4>
+<dl>
+<dt>prefix<br>
+</dt><dd>
+ The prefix of the non-variadic macro name.
+ </dd><dt>...<br>
+</dt><dd><i>
+ Variadic data</i>. The number of variadic data
+elements, as determined by BOOST_PP_VARIADIC_SIZE, is appended to the
+prefix to form the output non-variadic macro name.<br>
+</dd>
+</dl>
+<h4>Remarks</h4>
+<div> This macro creates a macro name which depends on the number of elements of variadic data. It should be used in the form of <br>
+BOOST_PP_OVERLOAD(MACRO_NAME_,__VA_ARGS__)(__VA_ARGS__) in order to
+call a non-variadic macro taking a given number of variadic data
+elements as non-variadic arguments. In this way one can invoke a
+variadic macro with a variable number of parameters which calls one of
+a series of non-variadic macros doing very similar things.
+</div><b>Requirements</b>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/facilities/overload.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/facilities/overload.hpp&gt;<br>#include &lt;boost/preprocessor/cat.hpp&gt;<br>#include &lt;boost/preprocessor/facilities/empty.hpp&gt;<br>#include &lt;boost/preprocessor/arithmetic/add.hpp&gt;<br><br>#define MACRO_1(number) MACRO_2(number,10)<br>#define MACRO_2(number1,number2) BOOST_PP_ADD(number1,number2)<br><br>#define MACRO_ADD_NUMBERS(...) BOOST_PP_OVERLOAD(MACRO_,__VA_ARGS__)(__VA_ARGS__)<br><br>// or for Visual C++<br><br>#define MACRO_ADD_NUMBERS(...) \<br> BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_,__VA_ARGS__)(__VA_ARGS__),BOOST_PP_EMPTY())<br><br>MACRO_ADD_NUMBERS(5) // output is 15<br>MACRO_ADD_NUMBERS(3,6) // output is 9<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/seq_cat.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/seq_cat.html (original)
+++ trunk/libs/preprocessor/doc/ref/seq_cat.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,17 +1,17 @@
 <html>
- <head>
- <title>BOOST_PP_SEQ_CAT</title>
+<head>
+ <title>BOOST_PP_SEQ_CAT</title>
                 <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+</head>
+<body>
+ <div style="margin-left: 0px;">
                         The <b>BOOST_PP_SEQ_CAT</b> macro concatenates all elements in a <i>seq</i>.
                 </div>
                 <h4>
                         Usage
                 </h4>
                 <div class="code">
- <b>BOOST_PP_SEQ_CAT</b>(<i>list</i>)
+ <b>BOOST_PP_SEQ_CAT</b>(<i>seq</i>)
                 </div>
                 <h4>
                         Arguments
@@ -48,24 +48,17 @@
                         Sample Code
                 </h4>
                 <div>
- <pre>
-#include &lt;boost/preprocessor/seq/cat.hpp&gt;
-
-#define SEQ (a)(b)(c)
-
-BOOST_PP_SEQ_CAT(SEQ) // expands to abc
-</pre>
+ <pre>#include &lt;boost/preprocessor/seq/cat.hpp&gt;<br><br>#define SEQ (a)(b)(c)<br><br>BOOST_PP_SEQ_CAT(SEQ) // expands to abc<br></pre>
                 </div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Modified: trunk/libs/preprocessor/doc/ref/seq_cat_s.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/seq_cat_s.html (original)
+++ trunk/libs/preprocessor/doc/ref/seq_cat_s.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
- <head>
- <title>BOOST_PP_SEQ_CAT_S</title>
+<head>
+ <title>BOOST_PP_SEQ_CAT_S</title>
                 <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+</head>
+<body>
+ <div style="margin-left: 0px;">
                         The <b>BOOST_PP_SEQ_CAT_S</b> macro concatenates all elements in a <i>seq</i>.&nbsp;
                         It reenters <b>BOOST_PP_SEQ_FOLD_LEFT</b> with maximum efficiency.
                 </div>
@@ -12,7 +12,7 @@
                         Usage
                 </h4>
                 <div class="code">
- <b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>list</i>)
+ <b>BOOST_PP_SEQ_CAT_S</b>(<i>s</i>, <i>seq</i>)
                 </div>
                 <h4>
                         Arguments
@@ -49,13 +49,12 @@
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Modified: trunk/libs/preprocessor/doc/ref/seq_elem.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/seq_elem.html (original)
+++ trunk/libs/preprocessor/doc/ref/seq_elem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,17 +1,17 @@
 <html>
- <head>
- <title>BOOST_PP_SEQ_ELEM</title>
+<head>
+ <title>BOOST_PP_SEQ_ELEM</title>
                 <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+</head>
+<body>
+ <div style="margin-left: 0px;">
                         The <b>BOOST_PP_SEQ_ELEM</b> macro extracts an element from a <i>seq</i>.
                 </div>
                 <h4>
                         Usage
                 </h4>
                 <div class="code">
- <b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>list</i>)
+ <b>BOOST_PP_SEQ_ELEM</b>(<i>i</i>, <i>seq</i>)
                 </div>
                 <h4>
                         Arguments
@@ -43,37 +43,17 @@
                         Sample Code
                 </h4>
                 <div>
- <pre>
-#include &lt;boost/preprocessor/seq/elem.hpp&gt;
-
-BOOST_PP_SEQ_ELEM(1, (a)(b)(c)) // expands to b
-
-#define SEQ \
- (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
- (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \
- (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \
- (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \
- (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \
- (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \
- (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \
- (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \
- (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \
- (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \
- /**/
-
-BOOST_PP_SEQ_ELEM(88, SEQ) // expands to 88
-</pre>
+ <pre>#include &lt;boost/preprocessor/seq/elem.hpp&gt;<br><br>BOOST_PP_SEQ_ELEM(1, (a)(b)(c)) // expands to b<br><br>#define SEQ \<br> (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br> (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br> (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br> (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br> (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br> (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br> (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br> (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br> (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br> (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br> /**/<br><br>BOOST_PP_SEQ_ELEM(88, SEQ) // expands to 88<br></pre>
                 </div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Modified: trunk/libs/preprocessor/doc/ref/seq_first_n.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/seq_first_n.html (original)
+++ trunk/libs/preprocessor/doc/ref/seq_first_n.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
- <head>
- <title>BOOST_PP_SEQ_FIRST_N</title>
+<head>
+ <title>BOOST_PP_SEQ_FIRST_N</title>
                 <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+</head>
+<body>
+ <div style="margin-left: 0px;">
                         The <b>BOOST_PP_SEQ_FIRST_N</b> macro expands to a <i>seq</i> of the first <i>n</i>
                         elements of a <i>seq</i>.
                 </div>
@@ -12,7 +12,7 @@
                         Usage
                 </h4>
                 <div class="code">
- <b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>list</i>)
+ <b>BOOST_PP_SEQ_FIRST_N</b>(<i>n</i>, <i>seq</i>)
                 </div>
                 <h4>
                         Arguments
@@ -22,7 +22,7 @@
                         <dd>
                                 The number of elements to extract.
                         </dd>
- <dt>list</dt>
+ <dt>seq</dt>
                         <dd>
                                 The <i>seq</i> from which the elements are extracted.
                         </dd>
@@ -51,24 +51,17 @@
                         Sample Code
                 </h4>
                 <div>
- <pre>
-#include &lt;boost/preprocessor/seq/first_n.hpp&gt;
-
-#define SEQ (a)(b)(c)(d)(e)
-
-BOOST_PP_SEQ_FIRST_N(2, SEQ) // expands to (a)(b)
-</pre>
+ <pre>#include &lt;boost/preprocessor/seq/first_n.hpp&gt;<br><br>#define SEQ (a)(b)(c)(d)(e)<br><br>BOOST_PP_SEQ_FIRST_N(2, SEQ) // expands to (a)(b)<br></pre>
                 </div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Modified: trunk/libs/preprocessor/doc/ref/seq_nil.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/seq_nil.html (original)
+++ trunk/libs/preprocessor/doc/ref/seq_nil.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,12 +1,12 @@
 <html>
- <head>
- <title>BOOST_PP_SEQ_NIL</title>
+<head>
+ <title>BOOST_PP_SEQ_NIL</title>
                 <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+</head>
+<body>
+ <div style="margin-left: 0px;">
                         The <b>BOOST_PP_SEQ_NIL</b> macro is a placeholder macro for an empty <i>seq</i>.&nbsp;
- It is only valid if it is elements are appended to the end of this empty
+ It is only valid if it's elements are appended to the end of this empty
                         "seq."&nbsp;
                 </div>
                 <h4>
@@ -63,38 +63,19 @@
                         Sample Code
                 </h4>
                 <div>
- <pre>
-#include &lt;boost/preprocessor/facilities/empty.hpp&gt;
-#include &lt;boost/preprocessor/seq/push_back.hpp&gt;
-#include &lt;boost/preprocessor/seq/push_front.hpp&gt;
-#include &lt;boost/preprocessor/seq/seq.hpp&gt;
-
-#define SEQ_L BOOST_PP_SEQ_NIL
+ <pre>#include &lt;boost/preprocessor/facilities/empty.hpp&gt;<br>#include &lt;boost/preprocessor/seq/push_back.hpp&gt;<br>#include &lt;boost/preprocessor/seq/push_front.hpp&gt;<br>#include &lt;boost/preprocessor/seq/seq.hpp&gt;<br><br>#define SEQ_L BOOST_PP_SEQ_NIL
 #define SEQ_R BOOST_PP_EMPTY
-
-BOOST_PP_SEQ_PUSH_BACK(
- BOOST_PP_SEQ_PUSH_BACK(SEQ_L, a), b
-)
-
-// expands to (a)(b)
-
-BOOST_PP_SEQ_PUSH_FRONT(
- BOOST_PP_SEQ_PUSH_FRONT(SEQ_R, a), b
-)()
-
-// expands to (b)(a)
-</pre>
+BOOST_PP_SEQ_PUSH_BACK(<br> BOOST_PP_SEQ_PUSH_BACK(SEQ_L, a), b<br>)<br><br>// expands to (a)(b)<br><br>BOOST_PP_SEQ_PUSH_FRONT(<br> BOOST_PP_SEQ_PUSH_FRONT(SEQ_R, a), b<br>)()<br><br>// expands to (b)(a)<br></pre>
                 </div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Modified: trunk/libs/preprocessor/doc/ref/seq_rest_n.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/seq_rest_n.html (original)
+++ trunk/libs/preprocessor/doc/ref/seq_rest_n.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,10 +1,10 @@
 <html>
- <head>
- <title>BOOST_PP_SEQ_REST_N</title>
+<head>
+ <title>BOOST_PP_SEQ_REST_N</title>
                 <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
+</head>
+<body>
+ <div style="margin-left: 0px;">
                         The <b>BOOST_PP_SEQ_REST_N</b> macro expands to a <i>seq</i> of all but the
                         first <i>n</i> elements of a <i>seq</i>.
                 </div>
@@ -12,7 +12,7 @@
                         Usage
                 </h4>
                 <div class="code">
- <b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>list</i>)
+ <b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>seq</i>)
                 </div>
                 <h4>
                         Arguments
@@ -22,7 +22,7 @@
                         <dd>
                                 The number of elements to remove.
                         </dd>
- <dt>list</dt>
+ <dt>seq</dt>
                         <dd>
                                 The <i>seq</i> from which the elements are to be removed.
                         </dd>
@@ -51,70 +51,17 @@
                         Sample Code
                 </h4>
                 <div>
- <pre>
-#include &lt;boost/preprocessor/arithmetic/inc.hpp&gt;
-#include &lt;boost/preprocessor/seq/elem.hpp&gt;
-#include &lt;boost/preprocessor/seq/first_n.hpp&gt;
-#include &lt;boost/preprocessor/seq/rest_n.hpp&gt;
-#include &lt;boost/preprocessor/seq/size.hpp&gt;
-
-#define NUMBERS \
- (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \
- (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \
- (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \
- (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \
- (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \
- (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \
- (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \
- (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \
- (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \
- (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \
- (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \
- (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \
- (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \
- (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \
- (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \
- (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \
- (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \
- (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \
- (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \
- (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \
- (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \
- (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \
- (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \
- (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \
- (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \
- (250)(251)(252)(253)(254)(255)(256) \
- /**/
-
-#define SUPER_ADD(x, y) BOOST_PP_SEQ_ELEM(y, BOOST_PP_SEQ_REST_N(x, NUMBERS))
-
-SUPER_ADD(100, 100) // expands to 200
-
-#define SUPER_SUB(x, y) \
- BOOST_PP_SEQ_SIZE( \
- BOOST_PP_SEQ_REST_N( \
- BOOST_PP_INC(y), \
- BOOST_PP_SEQ_FIRST_N( \
- BOOST_PP_INC(x), NUMBERS \
- ) \
- ) \
- ) \
- /**/
-
-SUPER_SUB(67, 25) // expands to 42
-</pre>
+ <pre>#include &lt;boost/preprocessor/arithmetic/inc.hpp&gt;<br>#include &lt;boost/preprocessor/seq/elem.hpp&gt;<br>#include &lt;boost/preprocessor/seq/first_n.hpp&gt;<br>#include &lt;boost/preprocessor/seq/rest_n.hpp&gt;<br>#include &lt;boost/preprocessor/seq/size.hpp&gt;<br><br>#define NUMBERS \<br> (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br> (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br> (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br> (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br> (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br> (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br> (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br> (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br> (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br> (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br> (100)(101)(102)(103)(104)(105
)(106)(107)(108)(109) \<br> (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \<br> (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \<br> (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \<br> (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \<br> (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \<br> (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \<br> (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \<br> (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \<br> (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \<br> (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \<br> (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \<br> (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \<br> (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \<br> (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \<br> (250)(251)(252)(253)(254)(255)(256) \<br> /**/<br><br>#define SUPER_ADD(x, y) BOOST_PP_SEQ_ELEM(y, <a href="seq_rest_n.html">BOOST_PP_SEQ
_REST_N</a>(x, NUMBERS))<br><br>SUPER_ADD(100, 100) // expands to 200<br><br>#define SUPER_SUB(x, y) \<br> BOOST_PP_SEQ_SIZE( \<br> BOOST_PP_SEQ_REST_N( \<br> BOOST_PP_INC(y), \<br> BOOST_PP_SEQ_FIRST_N( \<br> BOOST_PP_INC(x), NUMBERS \<br> ) \<br> ) \<br> ) \<br> /**/<br><br>SUPER_SUB(67, 25) // expands to 42<br></pre>
                 </div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002</i>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
- </body>
+</body>
 </html>

Added: trunk/libs/preprocessor/doc/ref/seq_to_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/seq_to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,34 @@
+<html>
+<head>
+ <title>BOOST_PP_SEQ_TO_LIST</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_SEQ_TO_LIST</b>
+macro converts a <i>seq</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_SEQ_TO_LIST</b>(<i>seq</i>)
+</div>
+<h4>Arguments</h4>
+<dl><dt>seq</dt>
+ <dd> The <i>seq</i> to be converted. </dd>
+</dl><b>See Also</b>
+<ul>
+ <li>BOOST_PP_LIMIT_SEQ</li>
+</ul>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/seq/to_list.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/seq/to_list.hpp&gt;<br><br>BOOST_PP_SEQ_TO_LIST((x)(y)(z))<br> // expands to (x, (y, (z, BOOST_PP_NIL)))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Modified: trunk/libs/preprocessor/doc/ref/tuple_eat.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_eat.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_eat.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,28 +1,38 @@
 <html>
-<head>
- <title>BOOST_PP_TUPLE_EAT</title>
+ <head>
+ <title>BOOST_PP_TUPLE_EAT</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
- The <b>BOOST_PP_TUPLE_EAT</b> macro expands to a macro that eats a <i>tuple</i> of the specified size.
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
+ The <b>BOOST_PP_TUPLE_EAT</b> macro expands to a macro that eats a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
                 <div class="code">
- <b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>)
- </div>
+ <b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <sup>(v)</sup><b></b><br>
+</div>
         <h4>Arguments</h4>
                 <dl>
                         <dt>size</dt>
                         <dd>
                                 The size of the <i>tuple</i> to be eaten.&nbsp;
- Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
                         </dd>
                 </dl>
         <h4>Remarks</h4>
                 <div>
- The <i>size</i> argument must be the actual size of the <i>tuple</i>.
- </div>
+ The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version. <br>
+<br>For the variadic version <sup>(v)</sup>&nbsp;the
+size may be left out
+completely so that the macro can be invoked as BOOST_PP_TUPLE_EAT(); you may get a warning from some compilers, but the
+functionality will still work. If you specify a size in the variadic
+version, it will be ignored, but the warning from some compilers will
+not occur.<br>
+ </div>
         <h4>See Also</h4>
                 <ul>
                         <li>BOOST_PP_LIMIT_TUPLE</li>
@@ -32,27 +42,17 @@
                         <b>Header:</b> &nbsp;<boost/preprocessor/tuple/eat.hpp>
                 </div>
         <h4>Sample Code</h4>
-<div><pre>
-#include &lt;boost/preprocessor/control/if.hpp&gt;
-#include &lt;boost/preprocessor/tuple/eat.hpp&gt;
-
-#define OP(a, b) (a b)
-
-#define MACRO(n) BOOST_PP_IF(n, OP, BOOST_PP_TUPLE_EAT(2))(1, 2)
-
-MACRO(0) // expands to nothing
-MACRO(1) // expands to (1, 2)
-</pre></div>
+<div><pre>#include &lt;boost/preprocessor/control/if.hpp&gt;<br>#include &lt;boost/preprocessor/tuple/eat.hpp&gt;<br><br>#define OP(a, b) (a b)<br><br>#define MACRO(n) BOOST_PP_IF(n, OP, BOOST_PP_TUPLE_EAT(2))(1, 2)<br><br>// or for the variadic version <sup>(v)</sup><br><br>#define MACRO(n) BOOST_PP_IF(n, OP, BOOST_PP_TUPLE_EAT())(1, 2)<br><br>MACRO(0) // expands to nothing<br>MACRO(1) // expands to (1, 2)<br></pre></div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/tuple_elem.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_elem.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_elem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,22 +1,26 @@
 <html>
-<head>
- <title>BOOST_PP_TUPLE_ELEM</title>
+ <head>
+ <title>BOOST_PP_TUPLE_ELEM</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
                 The <b>BOOST_PP_TUPLE_ELEM</b> macro extracts an element from a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
                 <div class="code">
- <b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)
- </div>
+ <b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)<sup></sup><br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_ELEM</b>(<i>...</i>) <sup>(v)</sup><b></b><br>
+</div>
         <h4>Arguments</h4>
                 <dl>
                         <dt>size</dt>
                         <dd>
                                 The size of the <i>tuple</i>.&nbsp;
- Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
                         </dd>
                         <dt>i</dt>
                         <dd>
@@ -31,7 +35,10 @@
         <h4>Remarks</h4>
                 <div>
                         The <i>size</i> argument must be the actual size of the <i>tuple</i>,
- and <i>i</i> must be less than the size of the <i>tuple</i>.
+ and <i>i</i> must be less than the size of the <i>tuple</i>. <br>
+ <br>You can
+ invoke the variadic version as BOOST_PP_TUPLE_ELEM(<i>i</i>,<i>tuple</i>) or
+ BOOST_PP_TUPLE_ELEM(<i>size</i>,<i>i</i>,<i>tuple</i>).
                 </div>
         <h4>See Also</h4>
                 <ul>
@@ -42,24 +49,17 @@
                         <b>Header:</b> &nbsp;<boost/preprocessor/tuple/elem.hpp>
                 </div>
         <h4>Sample Code</h4>
-<div><pre>
-#include &lt;boost/preprocessor/tuple/elem.hpp&gt;
-
-#define TUPLE (a, b, c, d)
-
-BOOST_PP_TUPLE_ELEM(4, 0, TUPLE) // expands to a
-BOOST_PP_TUPLE_ELEM(4, 3, TUPLE) // expands to d
-</pre></div>
+<div><pre>#include &lt;boost/preprocessor/tuple/elem.hpp&gt;<br><br>#define TUPLE (a, b, c, d)<br><br>BOOST_PP_TUPLE_ELEM(4, 0, TUPLE) // expands to a<br>BOOST_PP_TUPLE_ELEM(4, 3, TUPLE) // expands to d<br><br>// or for the variadic version <sup>(v)</sup><br><br>BOOST_PP_TUPLE_ELEM(0, TUPLE) // expands to a in the variadic version<br>BOOST_PP_TUPLE_ELEM(3, TUPLE) // expands to d in the variadic version<br></pre></div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002<br>
+ </i><i>© Copyright Edward Diener 2011</i><br>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/ref/tuple_enum.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/tuple_enum.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,55 @@
+<html>
+ <head>
+ <title>BOOST_PP_TUPLE_ENUM</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+ </head>
+ <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_ENUM</b> macro&nbsp;converts a <i>tuple</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_TUPLE_ENUM</b>(<i>size,tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_ENUM</b>(<i>...</i>) <sup>(v)</sup><b></b><br>
+</div>
+<h4> Arguments </h4>
+<dl>
+ <dt>size</dt>
+ <dd>
+ The size of the <i>tuple</i>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
+ </dd>
+ <dt>tuple</dt>
+ <dd> The <i>tuple</i> whose elements are to be converted. </dd>
+</dl>
+<h4> Remarks </h4>
+<div>
+<br>You can
+invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_ENUM(<i>tuple</i>) or
+BOOST_PP_TUPLE_ENUM(<i>size</i>,<i>tuple</i>).<br>
+</div>
+<h4>See Also</h4>
+<ul>
+<li>BOOST_PP_LIMIT_TUPLE<br>
+</li>
+</ul>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/tuple/enum.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/tuple/enum.hpp&gt;<br><br>#define TUPLE (B,O,O,S,T)<br><br>BOOST_PP_TUPLE_ENUM(5,TUPLE) // expands to B, O, O, S, T<br><br>// or for the variadic version <sup>(v)<br><br></sup>BOOST_PP_TUPLE_ENUM(TUPLE) // expands to B, O, O, S, T<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright Housemarque Oy 2002</i>
+<br>
+<i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
+ </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/tuple_rem.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_rem.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_rem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,27 +1,38 @@
 <html>
-<head>
- <title>BOOST_PP_TUPLE_REM</title>
+ <head>
+ <title>BOOST_PP_TUPLE_REM</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
- The <b>BOOST_PP_TUPLE_REM</b> macro expands to a macro that removes the parentheses from a <i>tuple</i> of the specified size.
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
+ The <b>BOOST_PP_TUPLE_REM</b> macro expands to a macro that removes the parentheses from a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
                 <div class="code">
- <b>BOOST_PP_TUPLE_REM</b>(<i>size</i>)
+ <b>BOOST_PP_TUPLE_REM</b>(<i>size</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <sup>(v)</sup><br>
                 </div>
         <h4>Arguments</h4>
                 <dl>
                         <dt>size</dt>
                         <dd>
                                 The size of the <i>tuple</i> from which the parentheses are to be removed.&nbsp;
- Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
                         </dd>
                 </dl>
         <h4>Remarks</h4>
                 <div>
- The <i>size</i> argument must be the actual size of the <i>tuple</i>.
+ The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version.<br>
+<br>
+For the variadic version <sup>(v)</sup>&nbsp;the
+size may be left out
+completely so that the macro can be invoked as BOOST_PP_TUPLE_REM(); you may get a warning from some compilers, but the
+functionality will still work. If you specify a size in the variadic
+version, it will be ignored, but the warning from some compilers will
+not occur.<br>
                 </div>
         <h4>See Also</h4>
                 <ul>
@@ -32,21 +43,17 @@
                         <b>Header:</b> &nbsp;<boost/preprocessor/tuple/rem.hpp>
                 </div>
         <h4>Sample Code</h4>
-<div><pre>
-#include &lt;boost/preprocessor/tuple/rem.hpp&gt;
-
-BOOST_PP_TUPLE_REM(3)(x, y, z) // expands to x, y, z
-</pre></div>
+<div><pre>#include &lt;boost/preprocessor/tuple/rem.hpp&gt;<br><br>BOOST_PP_TUPLE_REM(3)(x, y, z) // expands to x, y, z<br><br>// or for the variadic version <sup>(v)</sup><br><br>BOOST_PP_TUPLE_REM()(x, y, z) // expands to x, y, z<br></pre></div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/tuple_rem_ctor.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_rem_ctor.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_rem_ctor.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,22 +1,26 @@
 <html>
-<head>
- <title>BOOST_PP_TUPLE_REM_CTOR</title>
+ <head>
+ <title>BOOST_PP_TUPLE_REM_CTOR</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
- The <b>BOOST_PP_TUPLE_REM_CTOR</b> macro removes the parentheses from a <i>tuple</i> of the specified size.
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
+ The <b>BOOST_PP_TUPLE_REM_CTOR</b> macro removes the parentheses from a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
                 <div class="code">
- <b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>)
+ <b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>...</i>) <sup>(v)</sup><br>
                 </div>
         <h4>Arguments</h4>
                 <dl>
                         <dt>size</dt>
                         <dd>
                                 The size of the <i>tuple</i> from which the parentheses are to be removed.&nbsp;
- Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
                         </dd>
                         <dt>tuple</dt>
                         <dd>
@@ -25,7 +29,11 @@
                 </dl>
         <h4>Remarks</h4>
                 <div>
- The <i>size</i> argument must be the actual size of <i>tuple</i>.
+ The <i>size</i> argument must be the actual size of <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_REM_CTOR(<i>tuple</i>) or
+BOOST_PP_TUPLE_REM_CTOR(<i>size</i>,<i>tuple</i>).<br>
                 </div>
         <h4>See Also</h4>
                 <ul>
@@ -36,21 +44,18 @@
                         <b>Header:</b> &nbsp;<boost/preprocessor/tuple/rem.hpp>
                 </div>
         <h4>Sample Code</h4>
-<div><pre>
-#include &lt;boost/preprocessor/tuple/rem.hpp&gt;
-
-BOOST_PP_TUPLE_REM_CTOR(3, (x, y, z)) // expands to x, y, z
-</pre></div>
+<div><pre>#include &lt;boost/preprocessor/tuple/rem.hpp&gt;<br><br>BOOST_PP_TUPLE_REM_CTOR(3, (x, y, z)) // expands to x, y, z<br><br>// or for the variadic version <sup>(v)<br><br></sup>BOOST_PP_TUPLE_REM_CTOR((x, y, z)) // expands to x, y, z<br></pre></div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
+
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/tuple_reverse.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_reverse.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_reverse.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,22 +1,27 @@
 <html>
-<head>
- <title>BOOST_PP_TUPLE_REVERSE</title>
+ <head>
+ <title>BOOST_PP_TUPLE_REVERSE</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
- The <b>BOOST_PP_TUPLE_REVERSE</b> macro reverses a <i>tuple</i> of the specified size.
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
+ The <b>BOOST_PP_TUPLE_REVERSE</b> macro reverses a <i>tuple</i>.
         </div>
         <h4>Usage</h4>
                 <div class="code">
- <b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>)
+ <b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_REVERSE</b>(<i>...</i>) <sup>(v)</sup><br>
+
                 </div>
         <h4>Arguments</h4>
                 <dl>
                         <dt>size</dt>
                         <dd>
                                 The size of the <i>tuple</i> to be reversed.&nbsp;
- Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
                         </dd>
                         <dt>tuple</dt>
                         <dd>
@@ -25,7 +30,11 @@
                 </dl>
         <h4>Remarks</h4>
                 <div>
- The <i>size</i> argument must be the actual size of the <i>tuple</i>.
+ The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_REVERSE(<i>tuple</i>) or
+BOOST_PP_TUPLE_REVERSE(<i>size</i>,<i>tuple</i>).<br>
                 </div>
         <h4>See Also</h4>
                 <ul>
@@ -36,21 +45,17 @@
                         <b>Header:</b> &nbsp;<boost/preprocessor/tuple/reverse.hpp>
                 </div>
         <h4>Sample Code</h4>
-<div><pre>
-#include &lt;boost/preprocessor/tuple/reverse.hpp&gt;
-
-BOOST_PP_TUPLE_REVERSE(3, (x, y, z)) // expands to (z, y, x)
-</pre></div>
+<div><pre>#include &lt;boost/preprocessor/tuple/reverse.hpp&gt;<br><br>BOOST_PP_TUPLE_REVERSE(3, (x, y, z)) // expands to (z, y, x)<br><br>// or for the variadic version <sup>(v)<br><br></sup>BOOST_PP_TUPLE_REVERSE((x, y, z)) // expands to (z, y, x)<br></pre></div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/ref/tuple_size.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/tuple_size.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>BOOST_PP_TUPLE_SIZE</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_SIZE</b> macro
+expands to the size of the <i>tuple</i> passed to it. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>) <sup>(v)</sup><br>
+ </div>
+<h4>Arguments</h4>
+<dl>
+ <dt>tuple</dt>
+ <dd> A <i>tuple</i> whose size is to be extracted. </dd>
+</dl>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/tuple/size.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/tuple/size.hpp&gt;<br><br>#define TUPLE (x, y, z)<br><br>BOOST_PP_TUPLE_SIZE(TUPLE) // expands to 3<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/tuple_to_array.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/tuple_to_array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,50 @@
+<html>
+ <head>
+ <title>BOOST_PP_TUPLE_TO_ARRAY</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+ </head>
+ <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_ARRAY</b>
+macro
+converts a <i>tuple</i> to an <i>array</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>size,tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>...</i>) <sup>(v)</sup><br>
+</div>
+<h4> Arguments </h4>
+<dl>
+ <dt>size</dt>
+ <dd> The size of the <i>tuple</i>.&nbsp; Valid <i>tuple</i> sizes
+range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
+ </dd>
+ <dt>tuple</dt>
+ <dd> The <i>tuple</i> to be converted.</dd>
+</dl>
+<h4>Remarks</h4>
+<div>
+ The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_TO_ARRAY(<i>tuple</i>) or
+BOOST_PP_TUPLE_TO_ARRAY(<i>size</i>,<i>tuple</i>).
+</div>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/tuple/to_array.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/tuple/to_array.hpp&gt;<br><br>#define TUPLE (a,b,c)<br><br>BOOST_PP_TUPLE_TO_ARRAY(3,TUPLE) // expands to (3, (a, b, c))<br><br>// or for the variadic version <sup>(v)<br><br></sup>BOOST_PP_TUPLE_TO_ARRAY(TUPLE) // expands to (3, (a, b, c))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i>
+</div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/tuple_to_list.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_to_list.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,22 +1,26 @@
 <html>
-<head>
- <title>BOOST_PP_TUPLE_TO_LIST</title>
+ <head>
+ <title>BOOST_PP_TUPLE_TO_LIST</title>
         <link rel="stylesheet" type="text/css" href="../styles.css">
-</head>
-<body>
- <div style="margin-left: 0px;">
+ </head>
+ <body>
+ <div style="margin-left: 0px;">
                 The <b>BOOST_PP_TUPLE_TO_LIST</b> macro converts a <i>tuple</i> to a <i>list</i>.
         </div>
         <h4>Usage</h4>
                 <div class="code">
- <b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>)
+ <b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>...</i>) <sup>(v)</sup><br>
                 </div>
         <h4>Arguments</h4>
                 <dl>
                         <dt>size</dt>
                         <dd>
                                 The size of the <i>tuple</i> to be converted.&nbsp;
- Valid <i>tuple</i> sizes range from <i>0</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp;
                         </dd>
                         <dt>tuple</dt>
                         <dd>
@@ -25,7 +29,11 @@
                 </dl>
         <h4>Remarks</h4>
                 <div>
- The <i>size</i> argument must be the actual size of the <i>tuple</i>.
+ The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_TO_LIST(<i>tuple</i>) or
+BOOST_PP_TUPLE_TO_LIST(<i>size</i>,<i>tuple</i>).<br>
                 </div>
         <h4>See Also</h4>
                 <ul>
@@ -36,22 +44,17 @@
                         <b>Header:</b> &nbsp;<boost/preprocessor/tuple/to_list.hpp>
                 </div>
         <h4>Sample Code</h4>
-<div><pre>
-#include &lt;boost/preprocessor/tuple/to_list.hpp&gt;
-
-BOOST_PP_TUPLE_TO_LIST(3, (x, y, z))
- // expands to (x, (y, (z, BOOST_PP_NIL)))
-</pre></div>
+<div><pre>#include &lt;boost/preprocessor/tuple/to_list.hpp&gt;<br><br>BOOST_PP_TUPLE_TO_LIST(3, (x, y, z))<br> // expands to (x, (y, (z, BOOST_PP_NIL)))<br><br>// or for the variadic version <sup>(v)<br><br></sup>BOOST_PP_TUPLE_TO_LIST((x, y, z))<br> // expands to (x, (y, (z, BOOST_PP_NIL)))<br></pre></div>
         <hr size="1">
         <div style="margin-left: 0px;">
                 <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
+ <br><i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
         </div>
         <div style="margin-left: 0px;">
                 <p><small>Distributed under the Boost Software License, Version 1.0. (See
                 accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ copy at www.boost.org/LICENSE_1_0.txt)</small></p>
         </div>
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/ref/tuple_to_seq.html
==============================================================================
--- trunk/libs/preprocessor/doc/ref/tuple_to_seq.html (original)
+++ trunk/libs/preprocessor/doc/ref/tuple_to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,57 +1,51 @@
 <html>
- <head>
- <title>BOOST_PP_TUPLE_TO_SEQ</title>
- <link rel="stylesheet" type="text/css" href="../styles.css">
- </head>
- <body>
- <div style="margin-left: 0px;">
- The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro converts a <i>tuple</i> to an <i>seq</i>.
- </div>
- <h4>
- Usage
- </h4>
- <div class="code">
- <b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)
- </div>
- <h4>
- Arguments
- </h4>
- <dl>
- <dt>size</dt>
- <dd>
- The number of elements in <i>tuple</i>.
- </dd>
- <dt>tuple</dt>
- <dd>
- The <i>tuple</i> to be converted.
- </dd>
- </dl>
- <h4>
- Requirements
- </h4>
- <div>
- <b>Header:</b> &nbsp;<boost/preprocessor/tuple/to_seq.hpp>
- </div>
- <h4>
- Sample Code
- </h4>
- <div>
- <pre>
-#include &lt;boost/preprocessor/tuple/to_seq.hpp&gt;
-
-BOOST_PP_TUPLE_TO_SEQ(3, (a, b, c)) // expands to (a)(b)(c)
-</pre>
- </div>
- <hr size="1">
- <div style="margin-left: 0px;">
- <i>© Copyright Housemarque Oy 2002</i>
- </br><i>© Copyright Paul Mensonides 2002</i>
- </div>
- <div style="margin-left: 0px;">
- <p><small>Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or
- copy at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
- </div>
- </body>
-</html>
+ <head>
+ <title>BOOST_PP_TUPLE_TO_SEQ</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+ </head>
+ <body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro
+converts a <i>tuple</i> to an <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)<br>
+<br>
+or<br>
+<br>
+<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>...</i>) <sup>(v)</sup><br>
+</div>
+<h4> Arguments </h4>
+<dl>
+ <dt>size</dt>
+ <dd>
+ The size of the <i>tuple</i> to be converted.&nbsp;
+ Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.&nbsp; </dd>
+ <dt>tuple</dt>
+ <dd> The <i>tuple</i> to be converted. </dd>
+</dl>
+<h4>Remarks</h4>
+<div> The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
+<br>
+You can
+invoke the variadic version <sup>(v)</sup> as BOOST_PP_TUPLE_TO_SEQ(<i>tuple</i>) or
+BOOST_PP_TUPLE_TO_SEQ(<i>size</i>,<i>tuple</i>).
+</div>
+<h4>Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/tuple/to_seq.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/tuple/to_seq.hpp&gt;<br><br>BOOST_PP_TUPLE_TO_SEQ(3, (a, b, c)) // expands to (a)(b)(c)<br><br>// or for the variadic version <sup>(v)<br><br></sup>BOOST_PP_TUPLE_TO_SEQ((a, b, c)) // expands to (a)(b)(c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright Housemarque Oy 2002</i>
+<br>
+<i>© Copyright Paul Mensonides 2002<br>
+</i><i>© Copyright Edward Diener 2011</i><br>
+ </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+ </body>
+</html>
\ No newline at end of file

Added: trunk/libs/preprocessor/doc/ref/variadic_elem.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadic_elem.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,42 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADIC_ELEM</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_ELEM</b> variadic macro
+extracts an element from <i>variadic data</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_ELEM</b>(<i>i</i>, <i>...</i>) <sup>(v)</sup><br>
+ </div>
+<h4>Arguments</h4>
+<dl><dt>i</dt>
+ <dd> The zero-based index into the <i>variadic data</i> of the element to be
+extracted.&nbsp; Valid values range from <i>0</i> to the size of the variadic data - 1.
+ </dd>
+ <dt>...<br>
+</dt>
+ <dd> The <i>variadic data</i> from which an element is to be extracted. </dd>
+</dl>
+<h4>Remarks</h4>
+<div>The index <i>i</i> must be less than the size of the <i>variadic data</i>. </div>
+<h4>See Also</h4>
+<ul>
+ <li>BOOST_PP_LIMIT_VARIADIC</li>
+</ul>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/variadic/elem.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/variadic/elem.hpp&gt;<br><br>#define VAR_DATA a, b, c, d<br><br>BOOST_PP_VARIADIC_ELEM(0, VAR_DATA) // expands to a<br>BOOST_PP_VARIADIC_ELEM(3, VAR_DATA) // expands to d<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/variadic_size.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadic_size.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,33 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADIC_SIZE</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SIZE</b> variadic macro
+expands to the size of the <i>variadic data </i>passed to it. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_SIZE</b>(<i>...</i>) <sup>(v)</sup><br>
+ </div>
+<h4>Arguments</h4>
+<dl>
+ <dt>...<br>
+</dt>
+ <dd>&nbsp; <i>Variadic data </i>whose size is to be extracted. </dd>
+</dl>
+<h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/variadic/size.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/variadic/size.hpp&gt;<br><br>#define VAR_DATA x, y, z<br><br>BOOST_PP_VARIADIC_SIZE(VAR_DATA) // expands to 3<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/variadic_to_array.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadic_to_array.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADIC_TO_ARRAY</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_ARRAY</b> variadic macro
+converts <i>variadic data</i> to an <i>array</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_ARRAY</b>(<i>...</i>) <sup>(v)</sup><br>
+ </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>...</dt>
+ <dd> The <i>variadic data</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/variadic/to_array.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/variadic/to_array.hpp&gt;<br><br>#define VAR_DATA a, b, c<br><br>BOOST_PP_VARIADIC_TO_ARRAY(VAR_DATA) // expands to (3, (a, b, c))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/variadic_to_list.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadic_to_list.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,31 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADIC_TO_LIST</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_LIST</b>
+variadic macro converts <i>variadic data</i> to a <i>list</i>. </div>
+<h4>Usage</h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_LIST</b>(<i>...</i>) <sup>(v)</sup><br>
+ </div>
+<h4>Arguments</h4>
+<dl><dt>...</dt>
+ <dd> The <i>variadic data</i> to be converted.<br>
+</dd>
+</dl><h4>Requirements</h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/variadic/to_list.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/variadic/to_list.hpp&gt;<br><br>BOOST_PP_VARIADIC_TO_LIST(x, y, z)<br> // expands to (x, (y, (z, BOOST_PP_NIL)))<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/variadic_to_seq.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadic_to_seq.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADIC_TO_SEQ</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_SEQ</b> variadic macro
+converts a <i>variadic data</i> to a <i>seq</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_SEQ</b>(<i>...</i>) <sup>(v)</sup><br>
+ </div>
+<h4> Arguments </h4>
+<dl><dt>...<br>
+</dt>
+ <dd> The <i>variadic data</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/variadic/to_seq.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/variadic/to_seq.hpp&gt;<br><br>BOOST_PP_VARIADIC_TO_SEQ(a, b, c) // expands to (a)(b)(c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/variadic_to_tuple.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadic_to_tuple.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,32 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADIC_TO_TUPLE</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_TUPLE</b> variadic macro
+converts <i>variadic data </i>to a <i>tuple</i>. </div>
+<h4> Usage </h4>
+<div class="code"> <b>BOOST_PP_VARIADIC_TO_TUPLE</b>(<i>...</i>)<sup> (v)</sup> </div>
+<h4> Arguments </h4>
+<dl>
+ <dt>...<br>
+</dt>
+ <dd> The <i>variadic data</i> to be converted. </dd>
+</dl>
+<h4> Requirements </h4>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/variadic/to_tuple.hpp>
+</div>
+<h4> Sample Code </h4>
+<div>
+<pre>#include &lt;boost/preprocessor/variadic/to_tuple.hpp&gt;<br><br>#define VAR_DATA a, b, c<br><br>BOOST_PP_VARIADIC_TO_TUPLE(VAR_DATA) // expands to (a, b, c)<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Added: trunk/libs/preprocessor/doc/ref/variadics.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/ref/variadics.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,30 @@
+<html>
+<head>
+ <title>BOOST_PP_VARIADICS</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADICS </b>macro specifies whether variadic macro support exists.<br>
+</div>
+<h4>Usage</h4>
+<div class="code"><b>BOOST_PP_VARIADICS</b><br>
+</div><b>Remarks</b>
+<div> The macro is an <i>object-like</i> macro. It is used in internal
+code to check for the presence of variadic macro support. It can be
+used by the end-user for the same purpose. The macro equals 1 if
+variadic macros are supported and 0 if they are not. </div><b>Requirements</b>
+<div> <b>Header:</b> &nbsp;<boost/preprocessor/config/variadics.hpp>
+</div>
+<h4>Sample Code</h4>
+<div>
+<pre>#include &lt;boost/preprocessor/config/variadics.hpp&gt;<br><br>#if BOOST_PP_VARIADICS<br>#define SOME_MACRO(...) // replacement list<br>#else<br>#define SOME_MACRO(param1,param2) // replacement list<br>#endif<br></pre>
+</div>
+<hr size="1">
+<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+</body>
+</html>

Modified: trunk/libs/preprocessor/doc/syntax.html
==============================================================================
--- trunk/libs/preprocessor/doc/syntax.html (original)
+++ trunk/libs/preprocessor/doc/syntax.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,9 +1,9 @@
 <html>
-<head>
- <title>syntax.html</title>
- <link rel="stylesheet" type="text/css" href="styles.css">
-</head>
-<body>
+ <head>
+ <title>syntax.html</title>
+ <link rel="stylesheet" type="text/css" href="styles.css">
+ </head>
+ <body>
         <h4>Identifiers for Syntax Highlighting</h4>
         <div>
         <!-- A -->
@@ -13,7 +13,8 @@
         <br>BOOST_PP_APPLY
         <br>BOOST_PP_ARRAY_DATA
         <br>BOOST_PP_ARRAY_ELEM
- <br>BOOST_PP_ARRAY_INSERT
+ <br>BOOST_PP_ARRAY_ENUM
+ <br>BOOST_PP_ARRAY_INSERT
         <br>BOOST_PP_ARRAY_INSERT_D
         <br>BOOST_PP_ARRAY_POP_BACK
         <br>BOOST_PP_ARRAY_POP_BACK_Z
@@ -27,7 +28,10 @@
         <br>BOOST_PP_ARRAY_REPLACE_D
         <br>BOOST_PP_ARRAY_REVERSE
         <br>BOOST_PP_ARRAY_SIZE
- <br>BOOST_PP_ASSERT
+ <br>BOOST_PP_ARRAY_TO_LIST
+ <br>BOOST_PP_ARRAY_TO_SEQ
+ <br>BOOST_PP_ARRAY_TO_TUPLE
+ <br>BOOST_PP_ASSERT
         <br>BOOST_PP_ASSERT_MSG
         <br>BOOST_PP_ASSIGN_SLOT
         <!-- B -->
@@ -131,7 +135,8 @@
         <br>BOOST_PP_LIMIT_SLOT_COUNT
         <br>BOOST_PP_LIMIT_SLOT_SIG
         <br>BOOST_PP_LIMIT_TUPLE
- <br>BOOST_PP_LIMIT_WHILE
+ <br>BOOST_PP_LIMIT_VARIADIC
+ <br>BOOST_PP_LIMIT_WHILE
         <br>BOOST_PP_LINE
         <br>BOOST_PP_LIST_APPEND
         <br>BOOST_PP_LIST_APPEND_D
@@ -173,7 +178,9 @@
         <br>BOOST_PP_LIST_REVERSE_D
         <br>BOOST_PP_LIST_SIZE
         <br>BOOST_PP_LIST_SIZE_D
- <br>BOOST_PP_LIST_TO_TUPLE
+ <br>BOOST_PP_LIST_TO_ARRAY
+ <br>BOOST_PP_LIST_TO_SEQ
+ <br>BOOST_PP_LIST_TO_TUPLE
         <br>BOOST_PP_LIST_TO_TUPLE_R
         <br>BOOST_PP_LIST_TRANSFORM
         <br>BOOST_PP_LIST_TRANSFORM_D
@@ -199,7 +206,8 @@
         <br>BOOST_PP_NOT_EQUAL_D
         <!-- O -->
         <br>BOOST_PP_OR
- <!-- R -->
+ <br>BOOST_PP_OVERLOAD
+ <!-- R -->
         <br>BOOST_PP_RELATIVE_FINISH
         <br>BOOST_PP_RELATIVE_FLAGS
         <br>BOOST_PP_RELATIVE_ITERATION
@@ -252,7 +260,8 @@
         <br>BOOST_PP_SEQ_SUBSEQ
         <br>BOOST_PP_SEQ_TAIL
         <br>BOOST_PP_SEQ_TO_ARRAY
- <br>BOOST_PP_SEQ_TO_TUPLE
+ <br>BOOST_PP_SEQ_TO_LIST
+ <br>BOOST_PP_SEQ_TO_TUPLE
         <br>BOOST_PP_SEQ_TRANSFORM
         <br>BOOST_PP_SEQ_TRANSFORM_S
         <br>BOOST_PP_SLOT
@@ -262,23 +271,31 @@
         <!-- T -->
         <br>BOOST_PP_TUPLE_EAT
         <br>BOOST_PP_TUPLE_ELEM
- <br>BOOST_PP_TUPLE_REM
+ <br>BOOST_PP_TUPLE_ENUM
+ <br>BOOST_PP_TUPLE_REM
         <br>BOOST_PP_TUPLE_REM_CTOR
         <br>BOOST_PP_TUPLE_REVERSE
- <br>BOOST_PP_TUPLE_TO_LIST
+ <br>BOOST_PP_TUPLE_SIZE
+ <br>BOOST_PP_TUPLE_TO_ARRAY
+ <br>BOOST_PP_TUPLE_TO_LIST
         <br>BOOST_PP_TUPLE_TO_SEQ
         <!-- U -->
         <br>BOOST_PP_UPDATE_COUNTER
         <!-- V -->
         <br>BOOST_PP_VALUE
- <!-- W -->
+ <br>BOOST_PP_VARIADIC_ELEM
+ <br>BOOST_PP_VARIADIC_SIZE
+ <br>BOOST_PP_VARIADIC_TO_ARRAY
+ <br>BOOST_PP_VARIADIC_TO_LIST
+ <br>BOOST_PP_VARIADIC_TO_SEQ
+ <br>BOOST_PP_VARIADIC_TO_TUPLE
+ <!-- W -->
         <br>BOOST_PP_WHILE
         <br>BOOST_PP_WHILE_
         <br>BOOST_PP_WSTRINGIZE
         <!-- X -->
         <br>BOOST_PP_XOR
-</div>
-
+ </div>
 <!--
 © Copyright Housemarque Oy 2002
 © Copyright Paul Mensonides 2002
@@ -286,6 +303,5 @@
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 -->
-
-</body>
-</html>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/doc/topics.html
==============================================================================
--- trunk/libs/preprocessor/doc/topics.html (original)
+++ trunk/libs/preprocessor/doc/topics.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -1,6 +1,6 @@
 <html>
 <head>
- <title>topics.html</title>
+ <title>topics.html</title>
         <link rel="stylesheet" type="text/css" href="styles.css">
         <base target="desc">
 </head>
@@ -8,15 +8,14 @@
 <h4>Topics <small>[back]</small></h4>
 <ul>
         <li>motivation</li>
- <li>known problems of the preprocessor</i>
- <li>techniques</li>
+ <li>known problems of the preprocessor </li><li>techniques</li>
         <li>incompatibilities</li>
         <li>reentrancy</li>
         <li>local iteration</li>
         <li>file iteration</li>
         <li>evaluated slots</li>
+ <li>variadic macros</li>
 </ul>
-
 <!--
 © Copyright Housemarque Oy 2002
 © Copyright Paul Mensonides 2002
@@ -24,6 +23,5 @@
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 -->
-
 </body>
 </html>

Added: trunk/libs/preprocessor/doc/topics/variadic_macros.html
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/doc/topics/variadic_macros.html 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,242 @@
+<html>
+ <head>
+ <title>variadic_macros.html</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+ <style>
+ u { font-weight: normal; text-decoration: none; }
+ </style>
+ </head>
+ <body>
+<h4>Variadic Macros</h4>
+<div> Variadic macros are supported by a number of compilers.
+They are
+macros of the form:
+</div>
+<div class="code">
+<pre>#define SOME_MACRO(ZeroOrMoreParameters,...) macro expansion possible specifying __VA_ARGS__<br></pre>
+</div>
+<div> The '...' in the parameter list represents the variadic
+data when the macro is invoked and the __VA_ARGS__ in the expansion
+represents the variadic data in the expansion of the macro. Variadic
+data is of the form of 1 or more preprocessor tokens separated by
+commas.<br>
+<br>
+The '...' must be the last parameter in the macro definition and there
+may be 0 or more non-variadic parameters preceding it.<br>
+<br>
+In the expansion of the macro __VA_ARGS__ may be specified 0 or more
+times to represent the variadic data. The variadic data in the
+expansion is a comma separated list of preprocessor tokens representing
+the variadic data which the invoker of the macro enters as the last
+arguments to the macro.<br>
+</div>
+<h4>Example<u> - Creating and invoking a variadic macro.</u></h4>
+<div class="code">
+<pre>#define INITIALIZE_INT_ARRAY(array_name,...) \ <br> static int array_name[] = { __VA_ARGS__ }; \ <br> /**/<br><br> INITIALIZE_INT_ARRAY(myname,45,789,33510,9346,2)<br></pre>
+</div>
+<u> <span style="font-weight: bold;">Preprocessor
+Library Support<br>
+</span></u>
+<div>The library offers support for variadic macros for those
+compilers
+which support the feature. The library can automatically detect whether
+a compiler supports variadic macros and sets the macro
+BOOST_PP_VARIADICS accordingly to 1 if the compiler supports variadic
+macros or 0 if the compiler does not support variadic macros.<br>
+<br>
+The end-user can #define BOOST_PP_VARIADICS to 1 or 0 himself in a
+translation unit, before including any preprocessor header files, to
+prevent the library from attempting to detect whether the compiler
+supports variadic macros. This has the effect of manually turning on or
+off variadic macro support in the library. Of course if one manually
+turns on variadic macro support in the library, and one's compiler does
+not support variadic macros, functionality in the library which uses
+variadic macros will fail with error messages from the compiler.<br>
+<br>
+When BOOST_PP_VARIADICS is 1, the library offers some extended
+functionality
+by using variadic macros, and also offers extended support for working
+with variadic data.<br>
+<br>
+Support for working with variadic
+data is largely centered on being able to convert variadic data to
+other library data types, since the
+functionality for working with those Boost preprocessor library data
+types is much greater than that for working with variadic data directly.<br>
+</div>
+<h4>Notation For Variadic Macros<br>
+</h4>
+<div>In the documentation, headers which have variadic macros,
+and
+variadic macros themselves, have a notation of '(v)' appended to them.
+For the variadic macros themselves this signifies that
+BOOST_PP_VARIADICS must be 1 for those variadic macros to be usable.
+For variadic macros which have a non-variadic equivalent, the
+non-variadic equivalent will be used if BOOST_PP_VARIADICS is set to 0
+and the non-variadic version of the
+macro does not have a '(v)' appended to its name in the documentation.
+</div>
+<h4>Extended Functionality Using Variadic Macros<br>
+</h4>
+<div>Some macros in the library offer extended
+functionality through the use of variadic macros.<br>
+<br>
+The variadic macro version offers the same functionality
+as the non-variadic version, but because of the ability of the variadic
+parameters to encompass a variable number of arguments, it also offers
+an enhanced syntax using the same macro name.<br>
+<br>
+The macros in the library which offer this enhanced functionality are
+all
+centered on <i>tuple</i> manipulation. With variadic
+macros it is
+possible to
+manipulate tuples without having to know the size of the tuple. So
+while the invoker can still specify the size when using tuple macro
+functionality, there are variadic versions of each of the tuple macros,
+with the exact same name as the non-variadic macro, where the size need
+not be specified.<br>
+</div>
+<h4>Extended Support For Variadic Data</h4>
+<div>The library offers extended support for working with
+variadic data
+which goes beyond the functionality offered by the C++ specification
+for variadic macros. It does this through preprocessor programming and
+by using some of the other functionality in the library itself. Header
+and macro names
+in the library which offer extended support for working with variadic
+data, and need the compiler to support variadic macros, are marked with
+a (v)<sup> </sup>to indicate a variadic macro.<br>
+<br>
+The form of the functionality which the library offers is centered on
+two macros which work with variadic data itself, and a set of macros
+which convert between variadic data and other library data
+types.<br>
+<br>
+The two macros are BOOST_PP_VARIADIC_ELEM and BOOST_PP_VARIADIC_SIZE,
+which respectively return a particular token of variadic data and the
+number of tokens of variadic data.<br>
+<br>
+The macros for converting variadic data to the library's data types are
+BOOST_PP_VARIADIC_TO_ARRAY, BOOST_PP_VARIADIC_TO_LIST,
+BOOST_PP_VARIADIC_TO_SEQ, and BOOST_PP_VARIADIC_TO_TUPLE.<br>
+<br>
+All of these macros need compiler support for variadic data and only
+exist if BOOST_PP_VARIADICS is 1. <br>
+<br>
+The remaining four macros, which convert from a library data type
+to comma-separated preprocessor tokens, which is the form of
+variadic data, do not need compiler support for variadic
+macros. These functions are BOOST_PP_ARRAY_ENUM, BOOST_PP_LIST_ENUM,
+BOOST_PP_SEQ_ENUM, and BOOST_PP_TUPLE_ENUM. However if one wishes to
+use this variadic data reliably as arguments to other macros, one needs
+variadic macro support.<br>
+</div>
+<u style="font-weight: bold;"> Using Variadic Data</u>
+<div>Variadic data exists in the
+form of comma-separated preprocessor tokens. This is the case whether
+the variadic data comes from the __VA_ARGS__ of a variadic macro, from
+the conversion of a library's data type to variadic data, or the
+manual construction of comma-separated preprocessing tokens by the
+programmer writing a macro.<br>
+<br>
+The easiest way to work with
+variadic data internally is to convert it to a library data type.
+Library data types, whether an <i>array</i>, <i>list</i>,
+<i>sequence</i>,
+or <i>tuple</i>, have a rich set of functionality for
+manipulating
+data whereas
+variadic data functionality in the library only allows one to access
+the variadic data as a whole or to access a single token of the
+variadic data at a time.<br>
+<br>
+The user of the library still may
+choose to pass variadic data back into internal macros rather than
+convert it to other library data types. There is no problem passing
+variadic data as a whole to variadic macros as the last parameter of
+the macro. However: <br>
+<br>
+<span style="font-weight: bold;">Attempting to pass
+variadic data as a
+whole directly into a non-variadic macro is not guaranteed to work and
+may fail.<br>
+</span><br>
+This occurs because of a preprocessor weakness in a number
+of compilers, currently most notably Visual C++. Even passing variadic
+data as arguments to a non-variadic macro, when it is not represented
+in
+the form of&nbsp; __VA_ARGS__, may fail with certain compilers.<br>
+<br>
+What follows are very simple examples, showing how variadic data can be
+passed to a non-variadic macro.<br>
+<br>
+First an example of what NOT to do.<br>
+</div>
+<h4>Example<u> - Passing variadic data as a whole to a
+non-variadic
+macro. DO NOT DO.</u></h4>
+<div class="code">
+<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following should not be done and is not guaranteed to work with compilers. */<br><br><span style="font-weight: bold;"><span style="font-family: monospace;"></span></span>int xx = MACRO_ARG_2(VAR_MACRO(2,3));<br></pre>
+</div>
+<div> There are two ways to pass variadic data to a non-variadic
+macro.
+The
+first of these is to pass the individual tokens of the variadic data
+separately to the non-variadic macro using the BOOST_PP_VARIADIC_ELEM
+macro in the library.<br>
+</div>
+<h4>Example<u> - Passing individual variadic data tokens to
+a
+non-variadic macro.<br>
+</u></h4>
+<div class="code">
+<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = MACRO_ARG_2<br> (<br> BOOST_PP_VARIADIC_ELEM(0,VAR_MACRO(2,3)),<br> BOOST_PP_VARIADIC_ELEM(1,VAR_MACRO(2,3))<br> );</pre>
+</div>
+<div>The second way is to use a macro in the library called
+BOOST_PP_OVERLOAD.
+This macro allows one to "overload" a variadic macro to non-variadic
+macros of different numbers of parameters, using a common prefix.
+</div>
+<h4>Example<u> - Passing variadic data as a whole to
+BOOST_PP_OVERLOAD
+and on to a non-variadic macro.<br>
+</u></h4>
+<div class="code">
+<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3));<br><br>/* For Visual C++ it is necessary to do this */<br><br>int xx = <br>BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3)),BOOST_PP_EMPTY());</pre>
+</div><br>
+<div>Although these techniques will work when passing variadic
+data to
+non-variadic macros, it is much better and less problematical to
+work internally with the existing library data types and to only use
+variadic
+macros as an interface for end-users when there is a need to have a
+macro which takes a
+variable number of parameters.<br>
+</div>
+<b>See</b> <b>Also</b><br>
+<ul>
+<li>BOOST_PP_VARIADICS</li>
+<li>Tuple Macros<br>
+</li>
+<li><a href="../headers/variadic.html">Variadic
+Macros<br>
+</a></li>
+<li>BOOST_PP_ARRAY_ENUM</li>
+<li>BOOST_PP_LIST_ENUM</li>
+<li>BOOST_PP_SEQ_ENUM</li>
+<li>BOOST_PP_TUPLE_ENUM</li>
+<li>BOOST_PP_OVERLOAD</li>
+</ul>
+<hr size="1">
+<div style="margin-left: 0px;"> <i>© Copyright
+Edward Diener
+2011</i> </div>
+<div style="margin-left: 0px;">
+<p><small>Distributed under the Boost Software License,
+Version 1.0.
+(See accompanying file LICENSE_1_0.txt
+or copy at www.boost.org/LICENSE_1_0.txt)</small></p>
+</div>
+ </body>
+</html>
\ No newline at end of file

Modified: trunk/libs/preprocessor/test/Jamfile.v2
==============================================================================
--- trunk/libs/preprocessor/test/Jamfile.v2 (original)
+++ trunk/libs/preprocessor/test/Jamfile.v2 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -4,8 +4,22 @@
 
 import testing ;
 
+project preprocessor_tests : requirements <warnings>on
+ <toolset>gcc-4.3.0:<warnings>all
+ <toolset>gcc-4.3.0:<cxxflags>-Wno-variadic-macros
+ <toolset>gcc-4.4.0:<warnings>all
+ <toolset>gcc-4.4.0:<cxxflags>-Wno-variadic-macros
+ <toolset>gcc-4.5.0:<warnings>all
+ <toolset>gcc-4.5.0:<cxxflags>-Wno-variadic-macros
+ <toolset>gcc-4.5.0:<linkflags>"-Wl,--enable-auto-import"
+ <toolset>gcc-4.5.2:<warnings>all
+ <toolset>gcc-4.5.2:<cxxflags>-Wno-variadic-macros
+ <toolset>msvc:<warnings>all
+ ;
+
 test-suite preprocessor
- : [ compile arithmetic.cpp ]
+ :
+ [ compile arithmetic.cpp ]
         [ compile array.cpp ]
         [ compile comparison.cpp ]
         [ compile control.cpp ]
@@ -19,4 +33,143 @@
         [ compile seq.cpp ]
         [ compile slot.cpp ]
         [ compile tuple.cpp ]
- ;
+ [ compile variadic.cpp ]
+ ;
+
+test-suite preprocessor_nvm
+ :
+ [ compile arithmetic.cpp : <define>BOOST_PP_VARIADICS=0 : arithmetic_nvm ]
+ [ compile array.cpp : <define>BOOST_PP_VARIADICS=0 : array_nvm ]
+ [ compile comparison.cpp : <define>BOOST_PP_VARIADICS=0 : comparison_nvm ]
+ [ compile control.cpp : <define>BOOST_PP_VARIADICS=0 : control_nvm ]
+ [ compile debug.cpp : <define>BOOST_PP_VARIADICS=0 : debug_nvm ]
+ [ compile facilities.cpp : <define>BOOST_PP_VARIADICS=0 : facilities_nvm ]
+ [ compile iteration.cpp : <define>BOOST_PP_VARIADICS=0 : iteration_nvm ]
+ [ compile list.cpp : <define>BOOST_PP_VARIADICS=0 : list_nvm ]
+ [ compile logical.cpp : <define>BOOST_PP_VARIADICS=0 : logical_nvm ]
+ [ compile repetition.cpp : <define>BOOST_PP_VARIADICS=0 : repetition_nvm ]
+ [ compile selection.cpp : <define>BOOST_PP_VARIADICS=0 : selection_nvm ]
+ [ compile seq.cpp : <define>BOOST_PP_VARIADICS=0 : seq_nvm ]
+ [ compile slot.cpp : <define>BOOST_PP_VARIADICS=0 : slot_nvm ]
+ [ compile tuple.cpp : <define>BOOST_PP_VARIADICS=0 : tuple_nvm ]
+ ;
+
+test-suite preprocessor_c
+ :
+ [ compile arithmetic.c
+ : <toolset>gcc:<cflags>-std=c99
+ : arithmetic_c
+ ]
+ [ compile array.c
+ : <toolset>gcc:<cflags>-std=c99
+ : array_c
+ ]
+ [ compile comparison.c
+ : <toolset>gcc:<cflags>-std=c99
+ : comparison_c
+ ]
+ [ compile control.c
+ : <toolset>gcc:<cflags>-std=c99
+ : control_c
+ ]
+ [ compile debug.c
+ : <toolset>gcc:<cflags>-std=c99
+ : debug_c
+ ]
+ [ compile facilities.c
+ : <toolset>gcc:<cflags>-std=c99
+ : facilities_c
+ ]
+ [ compile list.c
+ : <toolset>gcc:<cflags>-std=c99
+ : list_c
+ ]
+ [ compile logical.c
+ : <toolset>gcc:<cflags>-std=c99
+ : logical_c
+ ]
+ [ compile selection.c
+ : <toolset>gcc:<cflags>-std=c99
+ : selection_c
+ ]
+ [ compile seq.c
+ : <toolset>gcc:<cflags>-std=c99
+ : seq_c
+ ]
+ [ compile slot.c
+ : <toolset>gcc:<cflags>-std=c99
+ : slot_c
+ ]
+ [ compile tuple.c
+ : <toolset>gcc:<cflags>-std=c99
+ : tuple_c
+ ]
+ [ compile variadic.c
+ : <toolset>gcc:<cflags>-std=c99
+ : variadic_c
+ ]
+ ;
+
+test-suite preprocessor_c_nvm
+ :
+ [ compile arithmetic.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : arithmetic_c_nvm
+ ]
+ [ compile array.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : array_c_nvm
+ ]
+ [ compile comparison.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : comparison_c_nvm
+ ]
+ [ compile control.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : control_c_nvm
+ ]
+ [ compile debug.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : debug_c_nvm
+ ]
+ [ compile facilities.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : facilities_c_nvm
+ ]
+ [ compile list.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : list_c_nvm
+ ]
+ [ compile logical.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : logical_c_nvm
+ ]
+ [ compile selection.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : selection_c_nvm
+ ]
+ [ compile seq.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : seq_c_nvm
+ ]
+ [ compile slot.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : slot_c_nvm
+ ]
+ [ compile tuple.c
+ : <define>BOOST_PP_VARIADICS=0
+ <toolset>gcc:<cflags>-std=c99
+ : tuple_c_nvm
+ ]
+ ;

Added: trunk/libs/preprocessor/test/arithmetic.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/arithmetic.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,62 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/arithmetic.hpp>
+# include <boost/preprocessor/config/limits.hpp>
+# include <libs/preprocessor/test/test.h>
+
+/* addition */
+
+BEGIN BOOST_PP_ADD(2, 3) == 5 END
+
+BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), 2) == 6 END
+BEGIN BOOST_PP_ADD(2, BOOST_PP_ADD(1, 4)) == 7 END
+BEGIN BOOST_PP_ADD(BOOST_PP_ADD(2, 2), BOOST_PP_ADD(2, 2)) == 8 END
+
+/* subtraction */
+
+BEGIN BOOST_PP_SUB(11, 0) == 11 END
+BEGIN BOOST_PP_SUB(12, 1) == 11 END
+BEGIN BOOST_PP_SUB(3, 4) == 0 END
+
+BEGIN BOOST_PP_SUB(5, BOOST_PP_SUB(3, 2)) == 4 END
+BEGIN BOOST_PP_SUB(BOOST_PP_SUB(10, 5), 2) == 3 END
+BEGIN BOOST_PP_SUB(BOOST_PP_SUB(7, 3), BOOST_PP_SUB(10, 8)) == 2 END
+
+/* multiplication */
+
+BEGIN BOOST_PP_MUL(0, 1) == 0 END
+BEGIN BOOST_PP_MUL(1, 0) == 0 END
+BEGIN BOOST_PP_MUL(1, 1) == 1 END
+BEGIN BOOST_PP_MUL(4, 3) == 12 END
+
+BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), 2) == 8 END
+BEGIN BOOST_PP_MUL(2, BOOST_PP_MUL(2, 2)) == 8 END
+BEGIN BOOST_PP_MUL(BOOST_PP_MUL(2, 2), BOOST_PP_MUL(2, 2)) == 16 END
+
+/* division */
+
+BEGIN BOOST_PP_DIV(2, 1) == 2 END
+BEGIN BOOST_PP_DIV(0, 5) == 0 END
+BEGIN BOOST_PP_DIV(7, 3) == 2 END
+
+BEGIN BOOST_PP_DIV(BOOST_PP_DIV(4, 2), 2) == 1 END
+BEGIN BOOST_PP_DIV(10, BOOST_PP_DIV(10, 2)) == 2 END
+BEGIN BOOST_PP_DIV(BOOST_PP_DIV(10, 2), BOOST_PP_DIV(4, 2)) == 2 END
+
+/* modulus */
+
+BEGIN BOOST_PP_MOD(5, 5) == 0 END
+BEGIN BOOST_PP_MOD(9, 5) == 4 END
+BEGIN BOOST_PP_MOD(7, 4) == 3 END
+
+BEGIN BOOST_PP_MOD(BOOST_PP_MOD(5, 3), 3) == 2 END
+BEGIN BOOST_PP_MOD(5, BOOST_PP_MOD(4, 3)) == 0 END

Added: trunk/libs/preprocessor/test/array.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/array.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,93 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/array.hpp>
+# include <libs/preprocessor/test/test.h>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# if BOOST_PP_VARIADICS
+# include <boost/preprocessor/variadic/size.hpp>
+# include <boost/preprocessor/variadic/elem.hpp>
+# endif
+
+# define ARRAY (3, (0, 1, 2))
+# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))
+# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))
+
+// element access
+
+BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END
+BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END
+BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END
+BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END
+BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END
+BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END
+
+// size
+
+BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END
+BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END
+BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END
+BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END
+BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END
+BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END
+
+// enum
+
+# if BOOST_PP_VARIADICS
+
+BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END
+BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END
+BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END
+BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END
+BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END
+BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END
+
+# endif
+
+// to_list
+
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END
+
+// to_seq
+
+BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END
+BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END
+BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END
+BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END
+
+// to_tuple
+
+# if BOOST_PP_VARIADICS
+
+BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
+BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
+BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
+BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
+
+# else
+
+BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
+BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
+
+# endif

Modified: trunk/libs/preprocessor/test/array.cpp
==============================================================================
--- trunk/libs/preprocessor/test/array.cpp (original)
+++ trunk/libs/preprocessor/test/array.cpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,19 +7,87 @@
 # * *
 # ************************************************************************** */
 #
+# /* Revised by Edward Diener (2011) */
+#
 # /* See http://www.boost.org for most recent version. */
 #
 # include <boost/preprocessor/array.hpp>
 # include <libs/preprocessor/test/test.h>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# if BOOST_PP_VARIADICS
+# include <boost/preprocessor/variadic/size.hpp>
+# include <boost/preprocessor/variadic/elem.hpp>
+# endif
 
 # define ARRAY (3, (0, 1, 2))
+# define ARRAY_LARGE (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))
+# define ARRAY_VERY_LARGE (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))
 
 // element access
 
 BEGIN BOOST_PP_ARRAY_ELEM(1, ARRAY) == 1 END
 BEGIN BOOST_PP_ARRAY_ELEM(2, (5, (0, 1, 2, 3, 4))) == 2 END
+BEGIN BOOST_PP_ARRAY_ELEM(28, ARRAY_LARGE) == 28 END
+BEGIN BOOST_PP_ARRAY_ELEM(17, (33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 17 END
+BEGIN BOOST_PP_ARRAY_ELEM(42, ARRAY_VERY_LARGE) == 42 END
+BEGIN BOOST_PP_ARRAY_ELEM(62, (64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 62 END
 
 // size
 
 BEGIN BOOST_PP_ARRAY_SIZE(ARRAY) == 3 END
 BEGIN BOOST_PP_ARRAY_SIZE((5, (0, 1, 2, 3, 4))) == 5 END
+BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_LARGE) == 33 END
+BEGIN BOOST_PP_ARRAY_SIZE((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))) == 33 END
+BEGIN BOOST_PP_ARRAY_SIZE(ARRAY_VERY_LARGE) == 64 END
+BEGIN BOOST_PP_ARRAY_SIZE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63))) == 64 END
+
+// enum
+
+# if BOOST_PP_VARIADICS
+
+BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_ARRAY_ENUM(ARRAY)) == 2 END
+BEGIN BOOST_PP_VARIADIC_ELEM(3,BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 3 END
+BEGIN BOOST_PP_VARIADIC_ELEM(31,BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 31 END
+BEGIN BOOST_PP_VARIADIC_ELEM(13,BOOST_PP_ARRAY_ENUM((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)))) == 13 END
+BEGIN BOOST_PP_VARIADIC_ELEM(39,BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 39 END
+BEGIN BOOST_PP_VARIADIC_ELEM(24,BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 24 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((5, (0, 1, 2, 3, 4)))) == 5 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_LARGE)) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM(ARRAY_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_ARRAY_ENUM((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 64 END
+
+# endif
+
+// to_list
+
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY), 1) == 1 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((5, (0, 1, 2, 3, 4))), 4) == 4 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST((33, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32))), 26) == 26 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_ARRAY_TO_LIST(ARRAY_VERY_LARGE), 60) == 60 END
+
+// to_seq
+
+BEGIN BOOST_PP_SEQ_ELEM(0, BOOST_PP_ARRAY_TO_SEQ(ARRAY)) == 0 END
+BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_ARRAY_TO_SEQ((5, (0, 1, 2, 3, 4)))) == 3 END
+BEGIN BOOST_PP_SEQ_ELEM(17, BOOST_PP_ARRAY_TO_SEQ(ARRAY_LARGE)) == 17 END
+BEGIN BOOST_PP_SEQ_ELEM(42, BOOST_PP_ARRAY_TO_SEQ((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 42 END
+
+// to_tuple
+
+# if BOOST_PP_VARIADICS
+
+BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
+BEGIN BOOST_PP_TUPLE_ELEM(1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
+BEGIN BOOST_PP_TUPLE_ELEM(26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
+BEGIN BOOST_PP_TUPLE_ELEM(37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
+
+# else
+
+BEGIN BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_ARRAY_TO_TUPLE(ARRAY)) == 2 END
+BEGIN BOOST_PP_TUPLE_ELEM(5, 1, BOOST_PP_ARRAY_TO_TUPLE((5, (0, 1, 2, 3, 4)))) == 1 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 26, BOOST_PP_ARRAY_TO_TUPLE(ARRAY_LARGE)) == 26 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 37, BOOST_PP_ARRAY_TO_TUPLE((64, (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)))) == 37 END
+
+# endif

Added: trunk/libs/preprocessor/test/comparison.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/comparison.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,45 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/comparison.hpp>
+# include <libs/preprocessor/test/test.h>
+
+/* equality */
+
+BEGIN BOOST_PP_EQUAL(2, 0) == 0 END
+BEGIN BOOST_PP_EQUAL(2, 2) == 1 END
+
+/* inequality */
+
+BEGIN BOOST_PP_NOT_EQUAL(2, 0) == 1 END
+BEGIN BOOST_PP_NOT_EQUAL(2, 2) == 0 END
+
+/* less */
+
+BEGIN BOOST_PP_LESS(2, 1) == 0 END
+BEGIN BOOST_PP_LESS(1, 2) == 1 END
+
+/* less_equal */
+
+BEGIN BOOST_PP_LESS_EQUAL(2, 1) == 0 END
+BEGIN BOOST_PP_LESS_EQUAL(1, 2) == 1 END
+BEGIN BOOST_PP_LESS_EQUAL(2, 2) == 1 END
+
+/* greater */
+
+BEGIN BOOST_PP_GREATER(2, 1) == 1 END
+BEGIN BOOST_PP_GREATER(1, 2) == 0 END
+
+/* greater_equal */
+
+BEGIN BOOST_PP_GREATER_EQUAL(2, 1) == 1 END
+BEGIN BOOST_PP_GREATER_EQUAL(1, 2) == 0 END
+BEGIN BOOST_PP_GREATER_EQUAL(2, 2) == 1 END

Added: trunk/libs/preprocessor/test/control.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/control.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,40 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/arithmetic/add.hpp>
+# include <boost/preprocessor/arithmetic/dec.hpp>
+# include <boost/preprocessor/control.hpp>
+# include <libs/preprocessor/test/test.h>
+
+# define TR(x) 1
+
+BEGIN BOOST_PP_EXPR_IIF(0, TR)(0) == 0 END
+BEGIN BOOST_PP_EXPR_IIF(1, TR)(0) == 1 END
+
+BEGIN BOOST_PP_EXPR_IF(3, TR)(0) == 1 END
+BEGIN BOOST_PP_EXPR_IF(0, TR)(0) == 0 END
+
+BEGIN BOOST_PP_IIF(0, 1, 0) == 0 END
+BEGIN BOOST_PP_IIF(1, 1, 0) == 1 END
+
+BEGIN BOOST_PP_IF(0, 1, 0) == 0 END
+BEGIN BOOST_PP_IF(9, 1, 0) == 1 END
+
+# define PRED(d, state) state
+# define OP_1(d, state) BOOST_PP_DEC(state)
+
+BEGIN BOOST_PP_WHILE(PRED, OP_1, 50) == 0 END
+
+# define OP_2(d, state) BOOST_PP_DEC(BOOST_PP_ADD(BOOST_PP_WHILE(PRED, OP_1, state), state))
+# define OP_3(d, state) BOOST_PP_DEC(BOOST_PP_ADD_D(d, BOOST_PP_WHILE_ ## d(PRED, OP_1, state), state))
+
+BEGIN BOOST_PP_WHILE(PRED, OP_2, 10) == 0 END
+BEGIN BOOST_PP_WHILE(PRED, OP_3, 10) == 0 END

Added: trunk/libs/preprocessor/test/debug.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/debug.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,21 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/debug.hpp>
+# include <libs/preprocessor/test/test.h>
+
+BEGIN sizeof(BOOST_PP_ASSERT_MSG(0, "text") "") / sizeof(char) != 1 END
+BEGIN sizeof(BOOST_PP_ASSERT_MSG(1, "text") "") / sizeof(char) == 1 END
+
+BOOST_PP_ASSERT(10)
+
+# line BOOST_PP_LINE(100, __FILE__)
+BEGIN __LINE__ == 100 END

Added: trunk/libs/preprocessor/test/facilities.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/facilities.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/facilities.hpp>
+# include <libs/preprocessor/test/test.h>
+
+BEGIN BOOST_PP_APPLY(BOOST_PP_NIL) 0 == 0 END
+BEGIN BOOST_PP_APPLY((0)) == 0 END
+
+BEGIN BOOST_PP_APPLY((BOOST_PP_EMPTY))() 0 == 0 END
+
+# define MACRO(x, y, z) 1
+# define ARGS (1, 2, 3)
+
+BEGIN BOOST_PP_EXPAND(MACRO ARGS) == 1 END
+
+BEGIN BOOST_PP_IDENTITY(1)() == 1 END
+
+BEGIN BOOST_PP_CAT(BOOST_PP_INTERCEPT, 2) 1 == 1 END

Modified: trunk/libs/preprocessor/test/iteration.h
==============================================================================
--- trunk/libs/preprocessor/test/iteration.h (original)
+++ trunk/libs/preprocessor/test/iteration.h 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -29,7 +29,6 @@
 # include BOOST_PP_ITERATE()
 #
 # else
-#
 # if defined NO_FLAGS
 
 struct BOOST_PP_CAT(X, BOOST_PP_ITERATION()) {

Added: trunk/libs/preprocessor/test/list.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/list.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,61 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/arithmetic/add.hpp>
+# include <boost/preprocessor/arithmetic/sub.hpp>
+# include <boost/preprocessor/comparison/less.hpp>
+# include <boost/preprocessor/list.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <libs/preprocessor/test/test.h>
+
+# define LIST (4, (1, (5, (2, BOOST_PP_NIL))))
+
+# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x)
+
+BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END
+BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 END
+BEGIN BOOST_PP_LIST_FOLD_RIGHT(REVERSAL, 0, LIST) == 4 END
+
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REVERSE(LIST)) == 2514 END
+
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END
+
+BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END
+BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END
+
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END
+
+# define F1(r, state, x) + x + state
+BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 END
+
+BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_LIST_TO_TUPLE(LIST)) == 2 END
+
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LIST)) == 45 END
+
+# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x)
+BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END
+
+# define L1 (0, (x, BOOST_PP_NIL))
+# define L2 (a, (1, (b, (2, BOOST_PP_NIL))))
+# define L3 (c, (3, (d, BOOST_PP_NIL)))
+
+# define LL (L1, (L2, (L3, BOOST_PP_NIL)))
+
+BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_APPEND_D, BOOST_PP_NIL, LL)) == 0x0a1b2c3d END
+
+BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_LIST_TO_ARRAY(LIST)) == 5 END
+BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END

Modified: trunk/libs/preprocessor/test/list.cpp
==============================================================================
--- trunk/libs/preprocessor/test/list.cpp (original)
+++ trunk/libs/preprocessor/test/list.cpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,6 +7,8 @@
 # * *
 # ************************************************************************** */
 #
+# /* Revised by Edward Diener (2011) */
+#
 # /* See http://www.boost.org for most recent version. */
 #
 # include <boost/preprocessor/arithmetic/add.hpp>
@@ -14,6 +16,8 @@
 # include <boost/preprocessor/comparison/less.hpp>
 # include <boost/preprocessor/list.hpp>
 # include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
 # include <libs/preprocessor/test/test.h>
 
 # define LIST (4, (1, (5, (2, BOOST_PP_NIL))))
@@ -52,3 +56,6 @@
 # define LL (L1, (L2, (L3, BOOST_PP_NIL)))
 
 BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_APPEND_D, BOOST_PP_NIL, LL)) == 0x0a1b2c3d END
+
+BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_LIST_TO_ARRAY(LIST)) == 5 END
+BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END

Added: trunk/libs/preprocessor/test/logical.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/logical.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,36 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/logical.hpp>
+# include <libs/preprocessor/test/test.h>
+
+BEGIN BOOST_PP_NOT(0) == 1 END
+BEGIN BOOST_PP_NOT(2) == 0 END
+
+BEGIN BOOST_PP_AND(0, 0) == 0 END
+BEGIN BOOST_PP_AND(0, 3) == 0 END
+BEGIN BOOST_PP_AND(4, 0) == 0 END
+BEGIN BOOST_PP_AND(5, 6) == 1 END
+
+BEGIN BOOST_PP_OR(0, 0) == 0 END
+BEGIN BOOST_PP_OR(0, 7) == 1 END
+BEGIN BOOST_PP_OR(8, 0) == 1 END
+BEGIN BOOST_PP_OR(9, 1) == 1 END
+
+BEGIN BOOST_PP_XOR(0, 0) == 0 END
+BEGIN BOOST_PP_XOR(0, 2) == 1 END
+BEGIN BOOST_PP_XOR(3, 0) == 1 END
+BEGIN BOOST_PP_XOR(4, 5) == 0 END
+
+BEGIN BOOST_PP_NOR(0, 0) == 1 END
+BEGIN BOOST_PP_NOR(0, 6) == 0 END
+BEGIN BOOST_PP_NOR(7, 0) == 0 END
+BEGIN BOOST_PP_NOR(8, 9) == 0 END

Added: trunk/libs/preprocessor/test/selection.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/selection.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,21 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/selection.hpp>
+# include <libs/preprocessor/test/test.h>
+
+BEGIN BOOST_PP_MAX(2, 2) == 2 END
+BEGIN BOOST_PP_MAX(2, 1) == 2 END
+BEGIN BOOST_PP_MAX(1, 2) == 2 END
+
+BEGIN BOOST_PP_MIN(2, 2) == 2 END
+BEGIN BOOST_PP_MIN(2, 1) == 1 END
+BEGIN BOOST_PP_MIN(1, 2) == 1 END

Added: trunk/libs/preprocessor/test/seq.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/seq.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,90 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/arithmetic/add.hpp>
+# include <boost/preprocessor/arithmetic/sub.hpp>
+# include <boost/preprocessor/comparison/less.hpp>
+# include <boost/preprocessor/seq.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <libs/preprocessor/test/test.h>
+
+# define SEQ (4)(1)(5)(2)
+
+# define REVERSAL(s, x, y) BOOST_PP_SUB(y, x)
+# define SUB_S(s, x, y) BOOST_PP_SUB(x, y)
+# define ADD_S(s, x, y) BOOST_PP_ADD(x, y)
+
+BEGIN BOOST_PP_SEQ_FOLD_LEFT(SUB_S, 22, SEQ) == 10 END
+BEGIN BOOST_PP_SEQ_FOLD_RIGHT(ADD_S, 0, SEQ) == 12 END
+BEGIN BOOST_PP_SEQ_FOLD_RIGHT(REVERSAL, 0, SEQ) == 4 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REVERSE(SEQ)) == 2514 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REST_N(2, SEQ)) == 52 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FIRST_N(2, SEQ)) == 41 END
+
+BEGIN BOOST_PP_SEQ_ELEM(2, SEQ) == 5 END
+BEGIN BOOST_PP_SEQ_SIZE(SEQ) == 4 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(ADD_S, 2, SEQ)) == 6374 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(SEQ) SEQ) == 1524152 END
+
+# define F1(r, state, x) + x + state
+BEGIN BOOST_PP_SEQ_FOR_EACH(F1, 1, SEQ) == 16 END
+
+BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_TO_TUPLE(SEQ)) == 2 END
+
+# define LESS_S(s, x, y) BOOST_PP_LESS(x, y)
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_FILTER(LESS_S, 3, SEQ)) == 45 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 0, 3)) == 34152 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 2, 3)) == 41352 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_INSERT(SEQ, 4, 3)) == 41523 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_BACK(SEQ)) == 415 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_POP_FRONT(SEQ)) == 152 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_FRONT(SEQ, 3)) == 34152 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_PUSH_BACK(SEQ, 3)) == 41523 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 0)) == 152 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 2)) == 412 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REMOVE(SEQ, 3)) == 415 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 0, 3)) == 3152 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 1, 3)) == 4352 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_REPLACE(SEQ, 3, 3)) == 4153 END
+
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 4)) == 4152 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 0, 2)) == 41 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 1, 2)) == 15 END
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_SUBSEQ(SEQ, 2, 2)) == 52 END
+
+# define F2(r, x) + BOOST_PP_SEQ_ELEM(0, x) + 2 - BOOST_PP_SEQ_ELEM(1, x)
+
+#define ADD_NIL(x) x(nil)
+
+BEGIN BOOST_PP_SEQ_FOR_EACH_PRODUCT(F2, ((1)(0)) ((2)(3))) == 0 END
+
+# define L1 (0)(x)
+# define L2 (a)(1)(b)(2)
+# define L3 (c)(3)(d)
+
+# define LL (L1)(L2)(L3)
+
+#define SEQ_APPEND(s, state, elem) state elem
+BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 0x0a1b2c3d END
+BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 9 END
+
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ), 2) == 5 END

Modified: trunk/libs/preprocessor/test/seq.cpp
==============================================================================
--- trunk/libs/preprocessor/test/seq.cpp (original)
+++ trunk/libs/preprocessor/test/seq.cpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,6 +7,8 @@
 # * *
 # ************************************************************************** */
 #
+# /* Revised by Edward Diener (2011) */
+#
 # /* See http://www.boost.org for most recent version. */
 #
 # include <boost/preprocessor/arithmetic/add.hpp>
@@ -14,6 +16,7 @@
 # include <boost/preprocessor/comparison/less.hpp>
 # include <boost/preprocessor/seq.hpp>
 # include <boost/preprocessor/tuple/elem.hpp>
+# include <boost/preprocessor/list/at.hpp>
 # include <libs/preprocessor/test/test.h>
 
 # define SEQ (4)(1)(5)(2)
@@ -83,3 +86,5 @@
 #define SEQ_APPEND(s, state, elem) state elem
 BEGIN BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 0x0a1b2c3d END
 BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_FOLD_LEFT(SEQ_APPEND, (~), LL))) == 9 END
+
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_SEQ_TO_LIST(SEQ), 2) == 5 END

Added: trunk/libs/preprocessor/test/slot.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/slot.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,27 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/slot.hpp>
+# include <libs/preprocessor/test/test.h>
+
+# define X() 4
+
+# define BOOST_PP_VALUE 1 + 2 + 3 + X()
+# include BOOST_PP_ASSIGN_SLOT(1)
+
+# undef X
+
+BEGIN BOOST_PP_SLOT(1) == 10 END
+
+# define BOOST_PP_VALUE BOOST_PP_SLOT(1) * BOOST_PP_SLOT(1)
+# include BOOST_PP_ASSIGN_SLOT(1)
+
+BEGIN BOOST_PP_SLOT(1) == 100 END

Modified: trunk/libs/preprocessor/test/test.h
==============================================================================
--- trunk/libs/preprocessor/test/test.h (original)
+++ trunk/libs/preprocessor/test/test.h 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -19,12 +19,15 @@
 # define BEGIN typedef int BOOST_PP_CAT(test_, __LINE__)[((
 # define END )==1) ? 1 : -1];
 
+#if defined(__cplusplus)
 #include <cstdio>
-
 #if !defined(_STLP_MSVC) || _STLP_MSVC >= 1300
 namespace std { }
 using namespace std;
 #endif
+#else
+#include <stdio.h>
+#endif
 
 int main(void) {
     printf("pass " __TIME__);

Added: trunk/libs/preprocessor/test/tuple.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/tuple.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,104 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/tuple.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# if BOOST_PP_VARIADICS
+# include <boost/preprocessor/variadic/size.hpp>
+# include <boost/preprocessor/variadic/elem.hpp>
+# endif
+# include <libs/preprocessor/test/test.h>
+
+# define TUPLE (0, 1, 2, 3, 4, 5)
+# define TUPLE_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
+# define TUPLE_VERY_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+# define T2 (+3, /2, +6)
+
+#if BOOST_PP_VARIADICS
+
+# define CALC(x) BOOST_PP_TUPLE_ELEM(0, x) BOOST_PP_TUPLE_ELEM(1, x) BOOST_PP_TUPLE_ELEM(2, x)
+# define TEST_EAT BOOST_PP_TUPLE_EAT()(1, 2) 4
+# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) 6
+# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) 8
+
+#else
+
+# define CALC(x) BOOST_PP_TUPLE_ELEM(3, 0, x) BOOST_PP_TUPLE_ELEM(3, 1, x) BOOST_PP_TUPLE_ELEM(3, 2, x)
+# define TEST_EAT BOOST_PP_TUPLE_EAT(2)(1, 2) 4
+# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT(33)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) 6
+# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT(64)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) 8
+
+#endif
+
+BEGIN BOOST_PP_TUPLE_ELEM(6, 3, TUPLE) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(6, 5, TUPLE) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 15, TUPLE_LARGE) == 15 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 27, TUPLE_LARGE) == 27 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 32, TUPLE_LARGE) == 32 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 22, TUPLE_VERY_LARGE) == 22 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 47, TUPLE_VERY_LARGE) == 47 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 63, TUPLE_VERY_LARGE) == 63 END
+BEGIN BOOST_PP_TUPLE_ELEM(6, 2, BOOST_PP_TUPLE_REVERSE(6,TUPLE)) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 27, BOOST_PP_TUPLE_REVERSE(33,TUPLE_LARGE)) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 43, BOOST_PP_TUPLE_REVERSE(64,TUPLE_VERY_LARGE)) == 20 END
+BEGIN CALC(T2) == 7 END
+BEGIN CALC(BOOST_PP_TUPLE_REVERSE(3, T2)) == 6 END
+BEGIN TEST_EAT == 4 END
+BEGIN TEST_EAT_LARGE == 6 END
+BEGIN TEST_EAT_VERY_LARGE == 8 END
+BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(6,TUPLE)) == 3 END
+BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(33,TUPLE_LARGE)) == 29 END
+BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(64,TUPLE_VERY_LARGE)) == 61 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(6,TUPLE), 2) == 2 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(33,TUPLE_LARGE), 19) == 19 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(64,TUPLE_VERY_LARGE), 62) == 62 END
+BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(6,TUPLE)) == 4 END
+BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(33,TUPLE_LARGE)) == 31 END
+BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(64,TUPLE_VERY_LARGE)) == 55 END
+
+#if BOOST_PP_VARIADICS
+
+BEGIN BOOST_PP_TUPLE_ELEM(3, TUPLE) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(5, TUPLE) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(15, TUPLE_LARGE) == 15 END
+BEGIN BOOST_PP_TUPLE_ELEM(27, TUPLE_LARGE) == 27 END
+BEGIN BOOST_PP_TUPLE_ELEM(32, TUPLE_LARGE) == 32 END
+BEGIN BOOST_PP_TUPLE_ELEM(22, TUPLE_VERY_LARGE) == 22 END
+BEGIN BOOST_PP_TUPLE_ELEM(47, TUPLE_VERY_LARGE) == 47 END
+BEGIN BOOST_PP_TUPLE_ELEM(63, TUPLE_VERY_LARGE) == 63 END
+BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_TUPLE_REVERSE(TUPLE)) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(27, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE)) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(43, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE)) == 20 END
+BEGIN CALC(BOOST_PP_TUPLE_REVERSE(T2)) == 6 END
+BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE))) == 3 END
+BEGIN BOOST_PP_VARIADIC_ELEM(27,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE))) == 5 END
+BEGIN BOOST_PP_VARIADIC_ELEM(45,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE))) == 18 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE)) == 6 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE)) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_TUPLE_SIZE(TUPLE) == 6 END
+BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE) == 33 END
+BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE) == 64 END
+BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(TUPLE)) == 3 END
+BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE)) == 29 END
+BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE)) == 61 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE), 2) == 2 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE), 19) == 19 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE), 62) == 62 END
+BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(TUPLE)) == 4 END
+BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE)) == 31 END
+BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE)) == 55 END
+
+#endif

Modified: trunk/libs/preprocessor/test/tuple.cpp
==============================================================================
--- trunk/libs/preprocessor/test/tuple.cpp (original)
+++ trunk/libs/preprocessor/test/tuple.cpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -7,18 +7,98 @@
 # * *
 # ************************************************************************** */
 #
+# /* Revised by Edward Diener (2011) */
+#
 # /* See http://www.boost.org for most recent version. */
 #
 # include <boost/preprocessor/tuple.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# if BOOST_PP_VARIADICS
+# include <boost/preprocessor/variadic/size.hpp>
+# include <boost/preprocessor/variadic/elem.hpp>
+# endif
 # include <libs/preprocessor/test/test.h>
 
 # define TUPLE (0, 1, 2, 3, 4, 5)
+# define TUPLE_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
+# define TUPLE_VERY_LARGE (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+# define T2 (+3, /2, +6)
 
-BEGIN BOOST_PP_TUPLE_ELEM(6, 3, TUPLE) == 3 END
-BEGIN BOOST_PP_TUPLE_ELEM(6, 5, TUPLE) == 5 END
+#if BOOST_PP_VARIADICS
+
+# define CALC(x) BOOST_PP_TUPLE_ELEM(0, x) BOOST_PP_TUPLE_ELEM(1, x) BOOST_PP_TUPLE_ELEM(2, x)
+# define TEST_EAT BOOST_PP_TUPLE_EAT()(1, 2) 4
+# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) 6
+# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT()(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) 8
+
+#else
 
 # define CALC(x) BOOST_PP_TUPLE_ELEM(3, 0, x) BOOST_PP_TUPLE_ELEM(3, 1, x) BOOST_PP_TUPLE_ELEM(3, 2, x)
-# define T2 (+3, /2, +6)
+# define TEST_EAT BOOST_PP_TUPLE_EAT(2)(1, 2) 4
+# define TEST_EAT_LARGE BOOST_PP_TUPLE_EAT(33)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) 6
+# define TEST_EAT_VERY_LARGE BOOST_PP_TUPLE_EAT(64)(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) 8
 
+#endif
+
+BEGIN BOOST_PP_TUPLE_ELEM(6, 3, TUPLE) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(6, 5, TUPLE) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 15, TUPLE_LARGE) == 15 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 27, TUPLE_LARGE) == 27 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 32, TUPLE_LARGE) == 32 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 22, TUPLE_VERY_LARGE) == 22 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 47, TUPLE_VERY_LARGE) == 47 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 63, TUPLE_VERY_LARGE) == 63 END
+BEGIN BOOST_PP_TUPLE_ELEM(6, 2, BOOST_PP_TUPLE_REVERSE(6,TUPLE)) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(33, 27, BOOST_PP_TUPLE_REVERSE(33,TUPLE_LARGE)) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(64, 43, BOOST_PP_TUPLE_REVERSE(64,TUPLE_VERY_LARGE)) == 20 END
 BEGIN CALC(T2) == 7 END
 BEGIN CALC(BOOST_PP_TUPLE_REVERSE(3, T2)) == 6 END
+BEGIN TEST_EAT == 4 END
+BEGIN TEST_EAT_LARGE == 6 END
+BEGIN TEST_EAT_VERY_LARGE == 8 END
+BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(6,TUPLE)) == 3 END
+BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(33,TUPLE_LARGE)) == 29 END
+BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(64,TUPLE_VERY_LARGE)) == 61 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(6,TUPLE), 2) == 2 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(33,TUPLE_LARGE), 19) == 19 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(64,TUPLE_VERY_LARGE), 62) == 62 END
+BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(6,TUPLE)) == 4 END
+BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(33,TUPLE_LARGE)) == 31 END
+BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(64,TUPLE_VERY_LARGE)) == 55 END
+
+#if BOOST_PP_VARIADICS
+
+BEGIN BOOST_PP_TUPLE_ELEM(3, TUPLE) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(5, TUPLE) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(15, TUPLE_LARGE) == 15 END
+BEGIN BOOST_PP_TUPLE_ELEM(27, TUPLE_LARGE) == 27 END
+BEGIN BOOST_PP_TUPLE_ELEM(32, TUPLE_LARGE) == 32 END
+BEGIN BOOST_PP_TUPLE_ELEM(22, TUPLE_VERY_LARGE) == 22 END
+BEGIN BOOST_PP_TUPLE_ELEM(47, TUPLE_VERY_LARGE) == 47 END
+BEGIN BOOST_PP_TUPLE_ELEM(63, TUPLE_VERY_LARGE) == 63 END
+BEGIN BOOST_PP_TUPLE_ELEM(2, BOOST_PP_TUPLE_REVERSE(TUPLE)) == 3 END
+BEGIN BOOST_PP_TUPLE_ELEM(27, BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE)) == 5 END
+BEGIN BOOST_PP_TUPLE_ELEM(43, BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE)) == 20 END
+BEGIN CALC(BOOST_PP_TUPLE_REVERSE(T2)) == 6 END
+BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE))) == 3 END
+BEGIN BOOST_PP_VARIADIC_ELEM(27,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_LARGE))) == 5 END
+BEGIN BOOST_PP_VARIADIC_ELEM(45,BOOST_PP_TUPLE_ENUM(BOOST_PP_TUPLE_REVERSE(TUPLE_VERY_LARGE))) == 18 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE)) == 6 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_LARGE)) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(BOOST_PP_TUPLE_ENUM(TUPLE_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_TUPLE_SIZE(TUPLE) == 6 END
+BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_LARGE) == 33 END
+BEGIN BOOST_PP_TUPLE_SIZE(TUPLE_VERY_LARGE) == 64 END
+BEGIN BOOST_PP_ARRAY_ELEM(3,BOOST_PP_TUPLE_TO_ARRAY(TUPLE)) == 3 END
+BEGIN BOOST_PP_ARRAY_ELEM(29,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_LARGE)) == 29 END
+BEGIN BOOST_PP_ARRAY_ELEM(61,BOOST_PP_TUPLE_TO_ARRAY(TUPLE_VERY_LARGE)) == 61 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE), 2) == 2 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_LARGE), 19) == 19 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(TUPLE_VERY_LARGE), 62) == 62 END
+BEGIN BOOST_PP_SEQ_ELEM(4,BOOST_PP_TUPLE_TO_SEQ(TUPLE)) == 4 END
+BEGIN BOOST_PP_SEQ_ELEM(31,BOOST_PP_TUPLE_TO_SEQ(TUPLE_LARGE)) == 31 END
+BEGIN BOOST_PP_SEQ_ELEM(55,BOOST_PP_TUPLE_TO_SEQ(TUPLE_VERY_LARGE)) == 55 END
+
+#endif

Added: trunk/libs/preprocessor/test/variadic.c
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/variadic.c 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,56 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/variadic.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/list/size.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/tuple/size.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <libs/preprocessor/test/test.h>
+
+#if BOOST_PP_VARIADICS
+
+#define VDATA 0,1,2,3,4,5,6
+#define VDATA_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32
+#define VDATA_VERY_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
+
+BEGIN BOOST_PP_VARIADIC_ELEM(4,VDATA) == 4 END
+BEGIN BOOST_PP_VARIADIC_ELEM(6,7,11,3,8,14,85,56,92,165) == 56 END
+BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_LARGE) == 29 END
+BEGIN BOOST_PP_VARIADIC_ELEM(57,VDATA_VERY_LARGE) == 57 END
+BEGIN BOOST_PP_VARIADIC_ELEM(35, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) == 35 END
+BEGIN BOOST_PP_VARIADIC_SIZE(VDATA) == 7 END
+BEGIN BOOST_PP_VARIADIC_SIZE(7,11,3,8,14,85,56,92,165) == 9 END
+BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE) == 64 END
+BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA)) == 7 END
+BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_ARRAY_ELEM(4,BOOST_PP_VARIADIC_TO_ARRAY(7,11,3,8,14,85,56,92,165)) == 14 END
+BEGIN BOOST_PP_ARRAY_ELEM(30,BOOST_PP_VARIADIC_TO_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 30 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA),3) == 3 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63),49) == 49 END
+BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(7,11,3,8,14,85,56,92,165)) == 9 END
+BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE)) == 33 END
+BEGIN BOOST_PP_SEQ_ELEM(5,BOOST_PP_VARIADIC_TO_SEQ(VDATA)) == 5 END
+BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE)) == 16 END
+BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(3,78,22,11,3)) == 5 END
+BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA)) == 7 END
+BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END
+BEGIN BOOST_PP_TUPLE_ELEM(8,BOOST_PP_VARIADIC_TO_TUPLE(7,11,3,8,14,85,56,92,165)) == 165 END
+BEGIN BOOST_PP_TUPLE_ELEM(27,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE)) == 27 END
+
+#endif

Added: trunk/libs/preprocessor/test/variadic.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/variadic.cpp 2011-06-26 09:07:20 EDT (Sun, 26 Jun 2011)
@@ -0,0 +1,56 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011.
+# * Distributed under 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <boost/preprocessor/variadic.hpp>
+# include <boost/preprocessor/array/size.hpp>
+# include <boost/preprocessor/array/elem.hpp>
+# include <boost/preprocessor/list/at.hpp>
+# include <boost/preprocessor/list/size.hpp>
+# include <boost/preprocessor/seq/elem.hpp>
+# include <boost/preprocessor/seq/size.hpp>
+# include <boost/preprocessor/tuple/size.hpp>
+# include <boost/preprocessor/tuple/elem.hpp>
+# include <libs/preprocessor/test/test.h>
+
+#if BOOST_PP_VARIADICS
+
+#define VDATA 0,1,2,3,4,5,6
+#define VDATA_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32
+#define VDATA_VERY_LARGE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
+
+BEGIN BOOST_PP_VARIADIC_ELEM(4,VDATA) == 4 END
+BEGIN BOOST_PP_VARIADIC_ELEM(6,7,11,3,8,14,85,56,92,165) == 56 END
+BEGIN BOOST_PP_VARIADIC_ELEM(29,VDATA_LARGE) == 29 END
+BEGIN BOOST_PP_VARIADIC_ELEM(57,VDATA_VERY_LARGE) == 57 END
+BEGIN BOOST_PP_VARIADIC_ELEM(35, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63) == 35 END
+BEGIN BOOST_PP_VARIADIC_SIZE(VDATA) == 7 END
+BEGIN BOOST_PP_VARIADIC_SIZE(7,11,3,8,14,85,56,92,165) == 9 END
+BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_LARGE) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) == 33 END
+BEGIN BOOST_PP_VARIADIC_SIZE(VDATA_VERY_LARGE) == 64 END
+BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA)) == 7 END
+BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_VARIADIC_TO_ARRAY(VDATA_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_ARRAY_ELEM(4,BOOST_PP_VARIADIC_TO_ARRAY(7,11,3,8,14,85,56,92,165)) == 14 END
+BEGIN BOOST_PP_ARRAY_ELEM(30,BOOST_PP_VARIADIC_TO_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) == 30 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(VDATA),3) == 3 END
+BEGIN BOOST_PP_LIST_AT(BOOST_PP_VARIADIC_TO_LIST(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63),49) == 49 END
+BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(7,11,3,8,14,85,56,92,165)) == 9 END
+BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_VARIADIC_TO_LIST(VDATA_LARGE)) == 33 END
+BEGIN BOOST_PP_SEQ_ELEM(5,BOOST_PP_VARIADIC_TO_SEQ(VDATA)) == 5 END
+BEGIN BOOST_PP_SEQ_ELEM(16,BOOST_PP_VARIADIC_TO_SEQ(VDATA_LARGE)) == 16 END
+BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(3,78,22,11,3)) == 5 END
+BEGIN BOOST_PP_SEQ_SIZE(BOOST_PP_VARIADIC_TO_SEQ(VDATA_VERY_LARGE)) == 64 END
+BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(VDATA)) == 7 END
+BEGIN BOOST_PP_TUPLE_SIZE(BOOST_PP_VARIADIC_TO_TUPLE(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)) == 64 END
+BEGIN BOOST_PP_TUPLE_ELEM(8,BOOST_PP_VARIADIC_TO_TUPLE(7,11,3,8,14,85,56,92,165)) == 165 END
+BEGIN BOOST_PP_TUPLE_ELEM(27,BOOST_PP_VARIADIC_TO_TUPLE(VDATA_LARGE)) == 27 END
+
+#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