1 // Copyright David Abrahams 2002. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 #ifndef TYPE_LIST_DWA2002913_HPP 6 # define TYPE_LIST_DWA2002913_HPP 7 8 # include <boost/config.hpp> 9 # include <boost/python/detail/preprocessor.hpp> 10 # include <boost/preprocessor/arithmetic/inc.hpp> 11 12 # if BOOST_PYTHON_MAX_ARITY + 2 > BOOST_PYTHON_MAX_BASES 13 # define BOOST_PYTHON_LIST_SIZE BOOST_PP_INC(BOOST_PP_INC(BOOST_PYTHON_MAX_ARITY)) 14 # else 15 # define BOOST_PYTHON_LIST_SIZE BOOST_PYTHON_MAX_BASES 16 # endif 17 18 // Compute the MPL vector header to use for lists up to BOOST_PYTHON_LIST_SIZE in length 19 # if BOOST_PYTHON_LIST_SIZE > 48 20 # error Arities above 48 not supported by Boost.Python due to MPL internal limit 21 # elif BOOST_PYTHON_LIST_SIZE > 38 22 # include <boost/mpl/vector/vector50.hpp> 23 # elif BOOST_PYTHON_LIST_SIZE > 28 24 # include <boost/mpl/vector/vector40.hpp> 25 # elif BOOST_PYTHON_LIST_SIZE > 18 26 # include <boost/mpl/vector/vector30.hpp> 27 # elif BOOST_PYTHON_LIST_SIZE > 8 28 # include <boost/mpl/vector/vector20.hpp> 29 # else 30 # include <boost/mpl/vector/vector10.hpp> 31 # endif 32 33 # include <boost/python/detail/type_list_impl.hpp> 34 35 #endif // TYPE_LIST_DWA2002913_HPP 36