- The config/config.hpp
-header defines internal configuration macros as well as a macro for determining variadic macro support. The file
-is automatically included whenever any Boost PP macros are used. The end-user can manually
-include it in order to use the BOOST_PP_VARIADICS macro, but normally should never have to do so.
The config/config.hpp
+ header defines internal configuration macros as well as macros for
+ determining variadic macro support and for determining whether the
+ compiler's preprocessor conforms to the standard. The file
+ is automatically included whenever any Boost PP macros are used.
+ The end-user can manually
+ include it in order to use the BOOST_PP_VARIADICS macro or the
+ BOOST_PP_IS_STANDARD macro, but normally should never have to do
+ so.
The BOOST_PP_IS_STANDARD macro
+ specifies whether the compiler's preprocessor is a standard
+ conforming one or not.
+
+
Usage
+
BOOST_PP_IS_STANDARD()
+
+ Remarks
+
The macro is a function-like macro taking no
+ parameters. It is used to check if the compiler's preprocessor is
+ standard conforming. One use for the end-user is to see if limitations can be
+ changed, since changes will only take affect for standard
+ conforming preprocessors. The macro expands to 1 if
+ the compiler's preprocessor is standard conforming and 0 if it is
+ not.
The BOOST_PP_LIMIT_FOR macro
+ defines the maximum number of BOOST_PP_FOR repetitions.
+
Usage
+
BOOST_PP_LIMIT_FOR
+
Remarks
+
This macro expands by default to 256. The end-user can
+ change this to 512 or 1024 by defining this macro to either value
+ before including any library headers, as long as the end-user also
+ defines the BOOST_PP_LIMIT_MAG
+ macro to be equal to or greater than this value.
The BOOST_PP_LIMIT_ITERATION
+ macro defines the maximum number of local and file
+ iterations.
+
Usage
+
BOOST_PP_LIMIT_ITERATION
+
Remarks
+
This macro expands by default to 256. The end-user can
+ change this to 512 or 1024 by defining this macro to either value
+ before including any library headers, as long as the end-user also
+ defines the BOOST_PP_LIMIT_MAG
+ macro to be equal to or greater than this value.
+
The BOOST_PP_LIMIT_MAG macro
+ defines the maximum input and result magnitudes of arithmetic.
+
Usage
+
BOOST_PP_LIMIT_MAG
+
Remarks
+
This macro expands by default to 256. The end-user can
+ change this to 512 or 1024 by defining this macro to either value
+ before including any library headers.
The BOOST_PP_LIMIT_REPEAT macro
- defines the maximum number of repetitions supported by each BOOST_PP_REPEAT
- dimension.
+
The BOOST_PP_LIMIT_REPEAT
+ macro defines the maximum number of repetitions supported by each
+ BOOST_PP_REPEAT dimension.
Usage
BOOST_PP_LIMIT_REPEAT
Remarks
-
This macro current expands to 256.
+
This macro expands by default to 256. The end-user can
+ change this to 512 or 1024 by defining this macro to either value
+ before including any library headers, as long as the end-user also
+ defines the BOOST_PP_LIMIT_MAG
+ macro to be equal to or greater than this value.
- NOTE: for the current latest versions of Microsoft's VC++ compiler there
- is a nested macro limit of 256. This means in actuality that the number of
- repetitions using VC++ is actually less than 256 depending on the
- repetition macro being used. For the BOOST_PP_REPEAT macro this limit
- appears to be 252 while for the BOOST_PP_ENUM... series of macros this
- limit appears to be around 230, before the VC++ compiler gives a "C1009:
- compiler limit : macros nested too deeply" error. This is a compiler
- limitation of VC++ which may vary depending on the specific repetition
- macro being used, and therefore is not a problem the preprocessor library
- can solve.
+ NOTE: for the current latest versions of default preprocessor for
+ Microsoft's VC++ compiler there is a nested macro limit of 256.
+ This means in actuality that the number of repetitions using VC++
+ is actually less than 256 depending on the repetition macro being
+ used. For the BOOST_PP_REPEAT macro this limit appears to be 252
+ while for the BOOST_PP_ENUM... series of macros this limit appears
+ to be around 230, before the VC++ compiler gives a "C1009:
+ compiler limit : macros nested too deeply" error. This is a
+ compiler limitation of VC++ which may vary depending on the
+ specific repetition macro being used, and therefore is not a
+ problem the preprocessor library can solve. This limitation of the
+ default preprocessor for VC++ does not exist for the new standard
+ conforming preprocessor for VC++ in Visual Studio 2019 invoked
+ with the /Zc:preprocessor switch.
+
The BOOST_PP_LIMIT_SEQ macro
+ defines the maximum seq size supported by the library.
+
Usage
+
BOOST_PP_LIMIT_SEQ
+
Remarks
+
This macro expands by default to 256. The macro actually
+ expands to the value of the BOOST_PP_LIMIT_MAG
+ macro, but can be set to a lower value than BOOST_PP_LIMIT_MAG if
+ desired, but never to a higher value.
+
The BOOST_PP_LIMIT_TUPLE
+ macro defines the maximum tuple/array size supported by
+ the library.
+
Usage
+
BOOST_PP_LIMIT_TUPLE
+
Remarks
+
This macro expands by default to 64. The end-user can
+ change this to 128 or 256 by defining this macro to either value
+ before including any library headers. If the end-user changes the
+ value of the macro the BOOST_PP_LIMIT_VARIADIC
+ macro is changed to the same value unless the end-user has changed
+ BOOST_PP_LIMIT_VARIADIC to a higher value.
+