summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/preprocessor/test/iteration.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/preprocessor/test/iteration.h')
-rw-r--r--src/boost/libs/preprocessor/test/iteration.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/boost/libs/preprocessor/test/iteration.h b/src/boost/libs/preprocessor/test/iteration.h
new file mode 100644
index 000000000..97e676b20
--- /dev/null
+++ b/src/boost/libs/preprocessor/test/iteration.h
@@ -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. */
+#
+# if !BOOST_PP_IS_ITERATING
+#
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/iteration.hpp>
+# include <libs/preprocessor/test/test.h>
+#
+# define NO_FLAGS
+#
+# define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 10, <libs/preprocessor/test/iteration.h>))
+# include BOOST_PP_ITERATE()
+#
+# undef NO_FLAGS
+#
+# define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 5, <libs/preprocessor/test/iteration.h>, 0x0001))
+# include BOOST_PP_ITERATE()
+#
+# define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 5, <libs/preprocessor/test/iteration.h>, 0x0002))
+# include BOOST_PP_ITERATE()
+#
+# else
+# if defined NO_FLAGS
+
+struct BOOST_PP_CAT(X, BOOST_PP_ITERATION()) {
+ BEGIN
+ BOOST_PP_ITERATION() >= BOOST_PP_ITERATION_START() &&
+ BOOST_PP_ITERATION() <= BOOST_PP_ITERATION_FINISH()
+ END
+};
+
+# elif BOOST_PP_ITERATION_DEPTH() == 1 \
+ && BOOST_PP_ITERATION_FLAGS() == 0x0001
+
+struct BOOST_PP_CAT(Y, BOOST_PP_ITERATION()) { };
+
+# elif BOOST_PP_ITERATION_DEPTH() == 1 \
+ && BOOST_PP_ITERATION_FLAGS() == 0x0002
+
+# define BOOST_PP_ITERATION_PARAMS_2 (3, (1, BOOST_PP_ITERATION(), <libs/preprocessor/test/iteration.h>))
+# include BOOST_PP_ITERATE()
+
+# elif BOOST_PP_ITERATION_DEPTH() == 2 \
+ && BOOST_PP_FRAME_FLAGS(1) == 0x0002
+
+struct BOOST_PP_CAT(Z, BOOST_PP_CAT(BOOST_PP_ITERATION(), BOOST_PP_RELATIVE_ITERATION(1))) { };
+
+# else
+#
+# error should not get here!
+#
+# endif
+# endif