Index: third_party/boost/boost/mpl/vector/aux_/numbered_c.hpp |
diff --git a/third_party/boost/boost/mpl/vector/aux_/numbered_c.hpp b/third_party/boost/boost/mpl/vector/aux_/numbered_c.hpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8a101cf8a56aa62b805cfed45975bcf623e801eb |
--- /dev/null |
+++ b/third_party/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. |
+ |
+// $Source$ |
+// $Date: 2004-11-27 20:58:27 -0500 (Sat, 27 Nov 2004) $ |
+// $Revision: 26325 $ |
+ |
+#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 |