| // Copyright David Abrahams 2002. |
| // Distributed under the Boost Software License, Version 1.0. (See |
| // accompanying file LICENSE_1_0.txt or copy at |
| // http://www.boost.org/LICENSE_1_0.txt) |
| #ifndef TYPE_LIST_DWA2002913_HPP |
| # define TYPE_LIST_DWA2002913_HPP |
| |
| # include <boost/config.hpp> |
| # include <boost/python/detail/preprocessor.hpp> |
| # include <boost/preprocessor/arithmetic/inc.hpp> |
| |
| # if BOOST_PYTHON_MAX_ARITY + 2 > BOOST_PYTHON_MAX_BASES |
| # define BOOST_PYTHON_LIST_SIZE BOOST_PP_INC(BOOST_PP_INC(BOOST_PYTHON_MAX_ARITY)) |
| # else |
| # define BOOST_PYTHON_LIST_SIZE BOOST_PYTHON_MAX_BASES |
| # endif |
| |
| // Compute the MPL vector header to use for lists up to BOOST_PYTHON_LIST_SIZE in length |
| # if BOOST_PYTHON_LIST_SIZE > 48 |
| # error Arities above 48 not supported by Boost.Python due to MPL internal limit |
| # elif BOOST_PYTHON_LIST_SIZE > 38 |
| # include <boost/mpl/vector/vector50.hpp> |
| # elif BOOST_PYTHON_LIST_SIZE > 28 |
| # include <boost/mpl/vector/vector40.hpp> |
| # elif BOOST_PYTHON_LIST_SIZE > 18 |
| # include <boost/mpl/vector/vector30.hpp> |
| # elif BOOST_PYTHON_LIST_SIZE > 8 |
| # include <boost/mpl/vector/vector20.hpp> |
| # else |
| # include <boost/mpl/vector/vector10.hpp> |
| # endif |
| |
| # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION |
| # include <boost/python/detail/type_list_impl.hpp> |
| # else |
| # include <boost/python/detail/type_list_impl_no_pts.hpp> |
| # endif |
| |
| #endif // TYPE_LIST_DWA2002913_HPP |