1# /* **************************************************************************
2# * *
3# * (C) Copyright Edward Diener 2014.
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/cat.hpp>
13# include <boost/preprocessor/control/if.hpp>
14# include <boost/preprocessor/tuple.hpp>
15# include "test.h"
16
17#define TN_GEN_ONE(p) (1)
18#define TN_GEN_ZERO(p) (0)
19#define TN_TEST_ONE_MORE(parameter,ens) \
20 BOOST_PP_IF \
21 ( \
22 BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(1,0,ens),0), \
23 TN_GEN_ONE, \
24 TN_GEN_ZERO \
25 ) \
26 (parameter) \
27/**/
28#define TN_TEST_ONE(parameter,ens) \
29 BOOST_PP_TUPLE_ELEM \
30 ( \
31 1, \
32 0, \
33 TN_TEST_ONE_MORE(parameter,ens) \
34 ) \
35/**/
36
37BEGIN TN_TEST_ONE(A,(1)) == 1 END
38BEGIN TN_TEST_ONE(A,()) == 0 END
39

source code of boost/libs/preprocessor/test/tuple_elem_bug_test.cxx