...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Macros / Configuration / BOOST_MPL_LIMIT_MAP_SIZE |
#if !defined(BOOST_MPL_LIMIT_MAP_SIZE) # define BOOST_MPL_LIMIT_MAP_SIZE \ implementation-defined integral constant \ /**/ #endif
BOOST_MPL_LIMIT_MAP_SIZE is an overridable configuration macro regulating the maximum arity of the map's variadic form. In this implementation of the library, BOOST_MPL_LIMIT_MAP_SIZE has a default value of 20. To override the default limit, define BOOST_MPL_LIMIT_MAP_SIZE to the desired maximum arity rounded up to the nearest multiple of ten before including any library header. [Note: Overriding will take effect only if the library is configured not to use preprocessed headers. See BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS for more information. — end note]
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #define BOOST_MPL_LIMIT_MAP_SIZE 10 #include <boost/mpl/map.hpp> #include <boost/mpl/pair.hpp> #include <boost/mpl/int.hpp> using namespace boost::mpl; template< int i > struct ints : pair< int_<i>,int_<i> > {}; typedef map< ints<1> > m_1; typedef map< ints<1>, ints<2>, ints<3>, ints<4>, ints<5> ints<6>, ints<7>, ints<8>, ints<9>, ints<10> > m_10; // typedef map< ints<1>, ints<2>, ints<3>, ints<4>, ints<5> // ints<6>, ints<7>, ints<8>, ints<9>, ints<10>, ints<11> > m_11; // error!