diff --git a/doc/headers/config/variadics.html b/doc/headers/config/variadics.html index 334f053..385c1ab 100644 --- a/doc/headers/config/variadics.html +++ b/doc/headers/config/variadics.html @@ -1,32 +1,38 @@ + - - config/config.hpp - - - -
- 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.
-

- Usage -

-
- #include <boost/preprocessor/config/config.hpp> -
-

- Contents -

- -
-
© Copyright Edward Diener 2011,2014 -
-
-

Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

-
- + + + + config/config.hpp + + + +
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.
+

Usage

+
#include <boost/preprocessor/config/config.hpp> +
+

Contents

+ +
+
© Copyright Edward Diener + 2011,2014
+
+

Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

+
+ diff --git a/doc/ref.html b/doc/ref.html index f5328e6..624524b 100644 --- a/doc/ref.html +++ b/doc/ref.html @@ -110,6 +110,7 @@
  • IS_BEGIN_PARENS (v)
  • IS_ITERATING
  • IS_SELFISH
  • +
  • IS_STANDARD
  • ITERATE
  • ITERATION
  • ITERATION_DEPTH
  • diff --git a/doc/ref/is_standard.html b/doc/ref/is_standard.html new file mode 100644 index 0000000..a273233 --- /dev/null +++ b/doc/ref/is_standard.html @@ -0,0 +1,44 @@ + + + + + + BOOST_PP_IS_STANDARD + + + +
    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.
    + Requirements +
    Header:  <boost/preprocessor/config/config.hpp> +
    +

    Sample Code

    +
    +
    // Beginning of source file

    #include <boost/preprocessor/config/config.hpp>

    #if BOOST_PP_IS_STANDARD()
    #define BOOST_PP_LIMIT_MAG 512
    #endif

    #include <boost/preprocessor/arithmetic.hpp> // etc.
    +
    +
    +
    © Copyright Edward Diener 2020 +
    +
    +

    Distributed under the Boost Software License, Version + 1.0. + (See accompanying file LICENSE_1_0.txt + or copy at www.boost.org/LICENSE_1_0.txt)

    +
    + + diff --git a/doc/ref/limit_for.html b/doc/ref/limit_for.html index 07eadc6..414b81c 100644 --- a/doc/ref/limit_for.html +++ b/doc/ref/limit_for.html @@ -1,34 +1,36 @@ + - - BOOST_PP_LIMIT_FOR - - - -
    - The BOOST_PP_LIMIT_FOR macro defines the maximum number of BOOST_PP_FOR repetitions. -
    -

    Usage

    -
    - BOOST_PP_LIMIT_FOR -
    -

    Remarks

    -
    - This macro currently expands to 256. -
    -

    Requirements

    -
    - Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    - © Copyright Housemarque Oy 2002 -
    © Copyright Paul Mensonides 2002 -
    -
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

    -
    - + + + + BOOST_PP_LIMIT_FOR + + + +
    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.
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Housemarque Oy + 2002
    + © Copyright Paul Mensonides 2002
    +
    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    +
    + diff --git a/doc/ref/limit_iteration.html b/doc/ref/limit_iteration.html index 5cd8b87..25df9a3 100644 --- a/doc/ref/limit_iteration.html +++ b/doc/ref/limit_iteration.html @@ -1,34 +1,37 @@ + - - BOOST_PP_LIMIT_ITERATION - - - -
    - The BOOST_PP_LIMIT_ITERATION macro defines the maximum number of local and file iterations. -
    -

    Usage

    -
    - BOOST_PP_LIMIT_ITERATION -
    -

    Remarks

    -
    - This macro currently expands to 256. -
    -

    Requirements

    -
    - Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    - © Copyright Housemarque Oy 2002 -
    © Copyright Paul Mensonides 2002 -
    -
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

    -
    - + + + + BOOST_PP_LIMIT_ITERATION + + + +
    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.
    +
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Housemarque Oy + 2002
    + © Copyright Paul Mensonides 2002
    +
    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    +
    + diff --git a/doc/ref/limit_mag.html b/doc/ref/limit_mag.html index d136f8c..dbdc8e1 100644 --- a/doc/ref/limit_mag.html +++ b/doc/ref/limit_mag.html @@ -1,34 +1,33 @@ + - - BOOST_PP_LIMIT_MAG - - - -
    - The BOOST_PP_LIMIT_MAG macro defines the maximum input and result magnitudes of arithmetic. -
    -

    Usage

    -
    - BOOST_PP_LIMIT_MAG -
    -

    Remarks

    -
    - This macro currently expands to 256. -
    -

    Requirements

    -
    - Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    - © Copyright Housemarque Oy 2002 -
    © Copyright Paul Mensonides 2002 -
    -
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

    -
    - + + + + BOOST_PP_LIMIT_MAG + + + +
    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.
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Housemarque Oy + 2002
    + © Copyright Paul Mensonides 2002
    +
    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    +
    + diff --git a/doc/ref/limit_repeat.html b/doc/ref/limit_repeat.html index b31272d..28de226 100644 --- a/doc/ref/limit_repeat.html +++ b/doc/ref/limit_repeat.html @@ -1,39 +1,53 @@ + - + BOOST_PP_LIMIT_REPEAT -
    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.
    +

    Requirements

    Header:  <boost/preprocessor/config/limits.hpp>

    -
    © Copyright Housemarque Oy 2002
    +
    © Copyright Housemarque Oy + 2002
    © Copyright Paul Mensonides 2002
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt - or copy at www.boost.org/LICENSE_1_0.txt)

    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    diff --git a/doc/ref/limit_seq.html b/doc/ref/limit_seq.html index 6535a4f..a21bbf3 100644 --- a/doc/ref/limit_seq.html +++ b/doc/ref/limit_seq.html @@ -1,41 +1,35 @@ + - - BOOST_PP_LIMIT_SEQ - - - -
    - The BOOST_PP_LIMIT_SEQ macro defines the maximum seq size - supported by the library. -
    -

    - Usage -

    -
    - BOOST_PP_LIMIT_SEQ -
    -

    - Remarks -

    -
    - This macro currently expands to 256. -
    -

    - Requirements -

    -
    - Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    - © Copyright Housemarque Oy 2002 -
    © Copyright Paul Mensonides 2002 -
    -
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

    -
    - + + + + BOOST_PP_LIMIT_SEQ + + + +
    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.
    +
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Housemarque Oy + 2002
    + © Copyright Paul Mensonides 2002
    +
    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    +
    + diff --git a/doc/ref/limit_tuple.html b/doc/ref/limit_tuple.html index a249727..3102188 100644 --- a/doc/ref/limit_tuple.html +++ b/doc/ref/limit_tuple.html @@ -1,33 +1,38 @@ + - + + + BOOST_PP_LIMIT_TUPLE - - - -
    - The BOOST_PP_LIMIT_TUPLE macro defines the maximum tuple size supported by the library. -
    -

    Usage

    -
    - BOOST_PP_LIMIT_TUPLE -
    -

    Remarks

    -
    - This macro currently expands to 64. -
    -

    Requirements

    -
    - Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    - © Copyright Housemarque Oy 2002 -
    © Copyright Paul Mensonides 2002 -
    -
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

    -
    - - \ No newline at end of file + + + +
    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.
    +
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Housemarque Oy + 2002
    + © Copyright Paul Mensonides 2002
    +
    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    +
    + + diff --git a/doc/ref/limit_variadic.html b/doc/ref/limit_variadic.html index 7fd3d04..e86aba7 100644 --- a/doc/ref/limit_variadic.html +++ b/doc/ref/limit_variadic.html @@ -1,24 +1,35 @@ + - - BOOST_PP_LIMIT_VARIADIC - - - -
    The BOOST_PP_LIMIT_VARIADIC macro -defines the maximum variadic data size supported by the library.
    -

    Usage

    -
    BOOST_PP_LIMIT_VARIADIC
    -

    Remarks

    -
    This macro currently expands to 64.
    -

    Requirements

    -
    Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    © Copyright Edward Diener 2011
    -
    -

    Distributed under the Boost Software License, Version 1.0. -(See accompanying file LICENSE_1_0.txt -or copy at www.boost.org/LICENSE_1_0.txt)

    -
    - - \ No newline at end of file + + + + BOOST_PP_LIMIT_VARIADIC + + + +
    The BOOST_PP_LIMIT_VARIADIC + macro + defines the maximum variadic data size supported by + the library.
    +

    Usage

    +
    BOOST_PP_LIMIT_VARIADIC
    +

    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. This value can never be less + than the value of BOOST_PP_LIMIT_TUPLE.
    +
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Edward Diener + 2011
    +
    +

    Distributed under the Boost Software License, Version + 1.0. + (See accompanying file LICENSE_1_0.txt + or copy at www.boost.org/LICENSE_1_0.txt)

    +
    + + diff --git a/doc/ref/limit_while.html b/doc/ref/limit_while.html index 8662b74..8edfa7c 100644 --- a/doc/ref/limit_while.html +++ b/doc/ref/limit_while.html @@ -1,34 +1,35 @@ + - - BOOST_PP_LIMIT_WHILE - - - -
    - The BOOST_PP_LIMIT_WHILE macro defines the maximum number of BOOST_PP_WHILE iterations. -
    -

    Usage

    -
    - BOOST_PP_LIMIT_WHILE -
    -

    Remarks

    -
    - This macro currently expands to 256. -
    -

    Requirements

    -
    - Header:  <boost/preprocessor/config/limits.hpp> -
    -
    -
    - © Copyright Housemarque Oy 2002 -
    © Copyright Paul Mensonides 2002 -
    -
    -

    Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at www.boost.org/LICENSE_1_0.txt)

    -
    - + + + + BOOST_PP_LIMIT_WHILE + + + +
    The BOOST_PP_LIMIT_WHILE + macro defines the maximum number of BOOST_PP_WHILE + iterations.
    +

    Usage

    +
    BOOST_PP_LIMIT_WHILE
    +

    Remarks

    +
    This macro expands by default to 256. The macro + actually expands to the value of the BOOST_PP_LIMIT_MAG + macro and can not be changed.
    +

    Requirements

    +
    Header:  <boost/preprocessor/config/limits.hpp> +
    +
    +
    © Copyright Housemarque Oy + 2002
    + © Copyright Paul Mensonides 2002
    +
    +

    Distributed under the Boost Software License, Version + 1.0. (See accompanying file LICENSE_1_0.txt or + copy at www.boost.org/LICENSE_1_0.txt)

    +
    + diff --git a/doc/topics.html b/doc/topics.html index cff091a..6cb9cd1 100644 --- a/doc/topics.html +++ b/doc/topics.html @@ -16,10 +16,12 @@
  • evaluated slots
  • variadic macros
  • emptiness
  • +
  • limitations