summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/boost/mpl/vector/aux_/numbered_c.hpp')
-rw-r--r--3rdParty/Boost/boost/mpl/vector/aux_/numbered_c.hpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/3rdParty/Boost/boost/mpl/vector/aux_/numbered_c.hpp b/3rdParty/Boost/boost/mpl/vector/aux_/numbered_c.hpp
new file mode 100644
index 0000000..dc13497
--- /dev/null
+++ b/3rdParty/Boost/boost/mpl/vector/aux_/numbered_c.hpp
@@ -0,0 +1,77 @@
+
+// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
+
+#if defined(BOOST_PP_IS_ITERATING)
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// 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/libs/mpl for documentation.
+
+// $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
+// $Revision: 49267 $
+
+#include <boost/preprocessor/enum_params.hpp>
+#include <boost/preprocessor/enum_shifted_params.hpp>
+#include <boost/preprocessor/comma_if.hpp>
+#include <boost/preprocessor/repeat.hpp>
+#include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define i_ BOOST_PP_FRAME_ITERATION(1)
+
+#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
+
+# define AUX778076_VECTOR_TAIL(vector, i_, C) \
+ BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)<T \
+ BOOST_PP_COMMA_IF(i_) BOOST_PP_ENUM_PARAMS(i_, C) \
+ > \
+ /**/
+
+#if i_ > 0
+template<
+ typename T
+ , BOOST_PP_ENUM_PARAMS(i_, T C)
+ >
+struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
+ : v_item<
+ integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>
+ , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),C)
+ >
+{
+ typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
+ typedef T value_type;
+};
+#endif
+
+# undef AUX778076_VECTOR_TAIL
+
+#else // "brute force" implementation
+
+# define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \
+ BOOST_PP_COMMA_IF(i_) \
+ integral_c<T,BOOST_PP_CAT(param,i_)> \
+ /**/
+
+template<
+ typename T
+ , BOOST_PP_ENUM_PARAMS(i_, T C)
+ >
+struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
+ : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) >
+{
+ typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
+ typedef T value_type;
+};
+
+# undef AUX778076_VECTOR_C_PARAM_FUNC
+
+#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
+
+#undef i_
+
+#endif // BOOST_PP_IS_ITERATING