Chris@16: // Copyright David Abrahams 2002. Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: #ifndef PREPROCESSOR_DWA200247_HPP Chris@16: # define PREPROCESSOR_DWA200247_HPP Chris@16: Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: # include Chris@16: Chris@16: // stuff that should be in the preprocessor library Chris@16: Chris@16: # define BOOST_PYTHON_APPLY(x) BOOST_PP_CAT(BOOST_PYTHON_APPLY_, x) Chris@16: Chris@16: # define BOOST_PYTHON_APPLY_BOOST_PYTHON_ITEM(v) v Chris@16: # define BOOST_PYTHON_APPLY_BOOST_PYTHON_NIL Chris@16: Chris@16: // cv-qualifiers Chris@16: Chris@16: # if !defined(__MWERKS__) || __MWERKS__ > 0x2407 Chris@16: # define BOOST_PYTHON_CV_COUNT 4 Chris@16: # else Chris@16: # define BOOST_PYTHON_CV_COUNT 1 Chris@16: # endif Chris@16: Chris@16: # ifndef BOOST_PYTHON_MAX_ARITY Chris@16: # define BOOST_PYTHON_MAX_ARITY 15 Chris@16: # endif Chris@16: Chris@16: # ifndef BOOST_PYTHON_MAX_BASES Chris@16: # define BOOST_PYTHON_MAX_BASES 10 Chris@16: # endif Chris@16: Chris@16: # define BOOST_PYTHON_CV_QUALIFIER(i) \ Chris@16: BOOST_PYTHON_APPLY( \ Chris@16: BOOST_PP_TUPLE_ELEM(4, i, BOOST_PYTHON_CV_QUALIFIER_I) \ Chris@16: ) Chris@16: Chris@16: # define BOOST_PYTHON_CV_QUALIFIER_I \ Chris@16: ( \ Chris@16: BOOST_PYTHON_NIL, \ Chris@16: BOOST_PYTHON_ITEM(const), \ Chris@16: BOOST_PYTHON_ITEM(volatile), \ Chris@16: BOOST_PYTHON_ITEM(const volatile) \ Chris@16: ) Chris@16: Chris@16: // enumerators Chris@16: # define BOOST_PYTHON_UNARY_ENUM(c, text) BOOST_PP_REPEAT(c, BOOST_PYTHON_UNARY_ENUM_I, text) Chris@16: # define BOOST_PYTHON_UNARY_ENUM_I(z, n, text) BOOST_PP_COMMA_IF(n) text ## n Chris@16: Chris@16: # define BOOST_PYTHON_BINARY_ENUM(c, a, b) BOOST_PP_REPEAT(c, BOOST_PYTHON_BINARY_ENUM_I, (a, b)) Chris@16: # 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) Chris@16: Chris@16: # define BOOST_PYTHON_ENUM_WITH_DEFAULT(c, text, def) BOOST_PP_REPEAT(c, BOOST_PYTHON_ENUM_WITH_DEFAULT_I, (text, def)) Chris@16: # 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, _) Chris@16: Chris@16: // fixed text (no commas) Chris@16: # define BOOST_PYTHON_FIXED(z, n, text) text Chris@16: Chris@16: // flags Chris@16: # define BOOST_PYTHON_FUNCTION_POINTER 0x0001 Chris@16: # define BOOST_PYTHON_POINTER_TO_MEMBER 0x0002 Chris@16: Chris@16: #endif // PREPROCESSOR_DWA200247_HPP