Boost logo

Boost Users :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2006-11-03 20:50:37


Hi Ovanes,

> I need to define a map with int_<1...150>->Type1...150 pairs.
>
> Im source file I define:
>
> #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
> #define BOOST_MPL_LIMIT_MAP_SIZE 150
>
> #include <boost/mpl/map.hpp>

A word of caution: redefining BOOST_MPL_LIMIT_MAP_SIZE is not
recommended. Doing so globally will make you pay for what you probably
don't use (unless all present and future 'map' usages in your project
demand the 150-elements limit), and doing so within a translation unit
will lead to an ODR violation.

If you need to construct a sequence beyond the default size, use its
numbered form
(http://www.boost.org/libs/mpl/doc/refmanual/variadic-sequence.html).

> When compiling I get an error in the file:
> ...\boost\include\boost-1_33_1\boost\mpl\map.hpp on line: 36 fatal
> error C1083: Cannot open include file: 'boost/mpl/map/map150.hpp':
> No such file or directory
>
> Development environment is Visual C++ 8 Express Edition
>
> The help states:
> BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS is an boolean
> configuration macro regulating library's internal use of
> preprocessed headers. When defined, it instructs the MPL to discard
> the pre-generated headers found in boost/mpl/aux_/preprocessed
> directory and use preprocessor metaprogramming techniques to
> generate the necessary versions of the library components on the
> fly.
>
> In this implementation of the library, the macro is not defined by
> default. To change the default configuration, define
> BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS before including any library
> header.

Note that the text above does _not_ say that discarding the
the pre-generated headers

-- 
Aleksey Gurtovoy
MetaCommunications Engineering

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net