1# /* **************************************************************************
2# * *
3# * (C) Copyright Paul Mensonides 2002.
4# * Distributed under the Boost Software License, Version 1.0. (See
5# * accompanying file LICENSE_1_0.txt or copy at
6# * http://www.boost.org/LICENSE_1_0.txt)
7# * *
8# ************************************************************************** */
9#
10# /* See http://www.boost.org for most recent version. */
11#
12# include <boost/preprocessor/config/limits.hpp>
13#
14# if !BOOST_PP_IS_SELFISH
15#
16# include "iteration.h"
17#
18# define TEST(n) BEGIN n == n END
19#
20# define BOOST_PP_LOCAL_MACRO(n) TEST(n)
21# define BOOST_PP_LOCAL_LIMITS (1, 5)
22# include BOOST_PP_LOCAL_ITERATE()
23#
24# define BOOST_PP_LOCAL_MACRO(n) TEST(n)
25# define BOOST_PP_LOCAL_LIMITS (5, 1)
26# include BOOST_PP_LOCAL_ITERATE()
27#
28# if BOOST_PP_LIMIT_ITERATION != 256
29#
30# define BOOST_PP_LOCAL_MACRO(n) int BOOST_PP_CAT(int_li_f_,n) = n ;
31# define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_LIMIT_ITERATION)
32# include BOOST_PP_LOCAL_ITERATE()
33#
34# define BOOST_PP_LOCAL_MACRO(n) int BOOST_PP_CAT(int_li_r_,n) = n ;
35# define BOOST_PP_LOCAL_LIMITS (BOOST_PP_LIMIT_ITERATION, 0)
36# include BOOST_PP_LOCAL_ITERATE()
37#
38# endif
39#
40# define BOOST_PP_INDIRECT_SELF "iteration.cpp"
41# include BOOST_PP_INCLUDE_SELF()
42#
43# else
44
45BEGIN BOOST_PP_IS_SELFISH == 1 END
46
47# endif
48

source code of boost/libs/preprocessor/test/iteration.cpp