Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:38

0001 // Copyright David Abrahams 2002.
0002 // Distributed under the Boost Software License, Version 1.0. (See
0003 // accompanying file LICENSE_1_0.txt or copy at
0004 // http://www.boost.org/LICENSE_1_0.txt)
0005 #ifndef PREPROCESSOR_DWA200247_HPP
0006 # define PREPROCESSOR_DWA200247_HPP
0007 
0008 # include <boost/preprocessor/cat.hpp>
0009 # include <boost/preprocessor/comma_if.hpp>
0010 # include <boost/preprocessor/repeat.hpp>
0011 # include <boost/preprocessor/tuple/elem.hpp>
0012 
0013 // stuff that should be in the preprocessor library
0014 
0015 # define BOOST_PYTHON_APPLY(x) BOOST_PP_CAT(BOOST_PYTHON_APPLY_, x)
0016 
0017 # define BOOST_PYTHON_APPLY_BOOST_PYTHON_ITEM(v) v
0018 # define BOOST_PYTHON_APPLY_BOOST_PYTHON_NIL
0019 
0020 // cv-qualifiers
0021 
0022 # if !defined(__MWERKS__) || __MWERKS__ > 0x2407
0023 #  define BOOST_PYTHON_CV_COUNT 4
0024 # else
0025 #  define BOOST_PYTHON_CV_COUNT 1
0026 # endif
0027 
0028 # ifndef BOOST_PYTHON_MAX_ARITY
0029 #  define BOOST_PYTHON_MAX_ARITY 15
0030 # endif
0031 
0032 # ifndef BOOST_PYTHON_MAX_BASES
0033 #  define BOOST_PYTHON_MAX_BASES 10
0034 # endif 
0035 
0036 # define BOOST_PYTHON_CV_QUALIFIER(i)                          \
0037     BOOST_PYTHON_APPLY(                                        \
0038         BOOST_PP_TUPLE_ELEM(4, i, BOOST_PYTHON_CV_QUALIFIER_I) \
0039     )
0040 
0041 # define BOOST_PYTHON_CV_QUALIFIER_I      \
0042     (                                     \
0043         BOOST_PYTHON_NIL,                 \
0044         BOOST_PYTHON_ITEM(const),         \
0045         BOOST_PYTHON_ITEM(volatile),      \
0046         BOOST_PYTHON_ITEM(const volatile) \
0047     )
0048 
0049 // enumerators
0050 # define BOOST_PYTHON_UNARY_ENUM(c, text) BOOST_PP_REPEAT(c, BOOST_PYTHON_UNARY_ENUM_I, text)
0051 # define BOOST_PYTHON_UNARY_ENUM_I(z, n, text) BOOST_PP_COMMA_IF(n) text ## n
0052 
0053 # define BOOST_PYTHON_BINARY_ENUM(c, a, b) BOOST_PP_REPEAT(c, BOOST_PYTHON_BINARY_ENUM_I, (a, b))
0054 # define BOOST_PYTHON_BINARY_ENUM_I(z, n, _) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, _), n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 1, _), n)
0055 
0056 # define BOOST_PYTHON_ENUM_WITH_DEFAULT(c, text, def) BOOST_PP_REPEAT(c, BOOST_PYTHON_ENUM_WITH_DEFAULT_I, (text, def))
0057 # define BOOST_PYTHON_ENUM_WITH_DEFAULT_I(z, n, _) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, _), n) = BOOST_PP_TUPLE_ELEM(2, 1, _)
0058 
0059 // fixed text (no commas)
0060 # define BOOST_PYTHON_FIXED(z, n, text) text
0061 
0062 // flags
0063 # define BOOST_PYTHON_FUNCTION_POINTER 0x0001
0064 # define BOOST_PYTHON_POINTER_TO_MEMBER 0x0002
0065 
0066 #endif // PREPROCESSOR_DWA200247_HPP