diff --git a/doc/acknowledgements.htm b/doc/acknowledgements.htm index 1d0fcba..bd6fae2 100644 --- a/doc/acknowledgements.htm +++ b/doc/acknowledgements.htm @@ -3,7 +3,7 @@ Boost.Preprocessor - Acknowledgements - + @@ -32,9 +32,9 @@

© Copyright Housemarque Oy 2002

-

Permission to copy, use, modify, sell and distribute this document is granted +

Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

+for any purpose.

diff --git a/doc/bibliography.htm b/doc/bibliography.htm index 5df0663..44082e5 100644 --- a/doc/bibliography.htm +++ b/doc/bibliography.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Bibliography - +
@@ -39,9 +40,9 @@

© Copyright Housemarque Oy 2002

-

Permission to copy, use, modify, sell and distribute this document is granted +

Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

+for any purpose.

diff --git a/doc/examples.htm b/doc/examples.htm index 3627a01..092e187 100644 --- a/doc/examples.htm +++ b/doc/examples.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Bibliography - +
@@ -82,9 +83,9 @@ the actual C code.

© Copyright Housemarque Oy 2002

-

Permission to copy, use, modify, sell and distribute this document is granted +

Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

+for any purpose.

diff --git a/doc/examples_preprocessed.htm b/doc/examples_preprocessed.htm index 428efc8..6f0deb7 100644 --- a/doc/examples_preprocessed.htm +++ b/doc/examples_preprocessed.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Tutorial examples preprocessed - +
@@ -25,8 +26,7 @@

EXAMPLE: Use a Local Macro to avoid small scale repetition

-
-
template<class T, int n>
+
template<class T, int n>
 vec<T,n>&
   operator +=
   ( vec<T,n>&
@@ -78,14 +78,12 @@ vec<T,n>&
   return lhs;
 }
 
-

EXAMPLE: Use BOOST_PP_EMPTY() as an unused parameter in Local Macro instantiations

-
-
template<class base>
+
template<class base>
 typename implement_subscript_using_begin_subscript<base>::value_type&
   implement_subscript_using_begin_subscript<base>::operator[]
   ( index_type
@@ -103,13 +101,11 @@ const typename implement_subscript_using_begin_subscript<base>::value_type
 { return base::begin()[i];
 }
 
-

EXAMPLE: Use BOOST_PP_CAT instead of ## when necessary

-
-
enum
+
enum
 { static_check_152 = (sizeof(int) <= sizeof(long)) ? 1 : -1
 };
 typedef char
@@ -117,12 +113,9 @@ typedef char
   [ static_check_152
   ];
 
-

EXAMPLE: Use BOOST_PP_STRINGIZE instead of # whenever necessary

-
-
#pragma message("examples.cpp" "(" "20" ") : " "TBD!")
-
+
#pragma message("examples.cpp" "(" "20" ") : " "TBD!")

EXAMPLE: Use:

@@ -135,8 +128,7 @@ typedef char
  • BOOST_PP_COMMA_IF
  • to avoid O(N) repetition on lists in general

    -
    -
    struct make_type_list_end;
    +
    struct make_type_list_end;
     
     template
     < class T0=make_type_list_end
    @@ -179,15 +171,13 @@ public:
         >::type type;
     };
     
    -

    EXAMPLE: Use BOOST_PP_REPEAT and a Token Look-Up Function to eliminate categorical repetition

    -
    -
    catch (bool t)
    +
    catch (bool t)
     { report_typeid(t);
       report_value(t);
     }
    @@ -240,14 +230,12 @@ catch (long double t)
       report_value(t);
     }
     
    -

    EXAMPLE: Use BOOST_PP_REPEAT_2ND to avoid O(N*N) repetition

    -
    -
    vec()
    +
    vec()
     {
     }
     vec(T a0)
    @@ -303,30 +291,25 @@ vec(T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7)
       (*this)[7] = a7;
     }
     
    -


    EXAMPLE: Use BOOST_PP_IF to implement special case for the first element

    -
    -
    false == false;
    +
    false == false;
     true == true;
     
    -


    EXAMPLE: Use arithmetic, logical and comparison operations when necessary

    -
    -
    S, E0, E1
    +
    S, E0, E1
     E0, S, E1
     E0, E1, S
     BAD PARAMS FOR SPECIAL_NUMBERED_LIST! E0, E1, E2, S
    -

    Revised @@ -335,9 +318,9 @@ BAD PARAMS FOR SPECIAL_NUMBERED_LIST! E0, E1, E2, S

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/index.htm b/doc/index.htm index 8c7cb4f..41eb4e2 100644 --- a/doc/index.htm +++ b/doc/index.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Index - +
    @@ -20,7 +21,7 @@

    Contents

    -
    +
    Tutorial
    Examples
    Reference
    @@ -39,9 +40,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/known_problems_with_cpp.htm b/doc/known_problems_with_cpp.htm index e489fe7..c1d13e7 100644 --- a/doc/known_problems_with_cpp.htm +++ b/doc/known_problems_with_cpp.htm @@ -1,9 +1,10 @@ + Boost.Preprocessor - Widely known problems with the C preprocessor - +
    @@ -40,10 +41,10 @@ macro might replace other kind of code accidentally.

    SOLUTION B: Use the Local Macro idiom:

    -
    #define MACRO ...
    +
    #define MACRO ...
     // Use MACRO
     #undef MACRO
    -
    +

    This makes sure that a macro can not accidentally replace code outside of the scope of the local macro.

    @@ -52,9 +53,9 @@ forgotten. Experienced programmers generally write the #undef either immediately before (in time) or immediately after writing the macro definition.

    SOLUTION C: Use the Unique Macro Prefix idiom:

    -
    #define UMP_MACRO
    +
    #define UMP_MACRO
     // Use UMP_MACRO
    -
    +

    This makes accidental substitution and collisions highly @@ -116,9 +117,9 @@ long time.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/problems_with_compilers.htm b/doc/problems_with_compilers.htm index 03dad6e..03bc664 100644 --- a/doc/problems_with_compilers.htm +++ b/doc/problems_with_compilers.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Known problems with specific compilers - +
    @@ -36,14 +37,14 @@ specifically address this issue; for example, the above NUMBERED_EXPRESSION example doesn't compile on CW 7.0. Below is a simple test case that reproduces the bug:

    -
    -
    #define IDENTITY_MACRO(x) IDENTITY_MACRO_BODY(x)
    +
    +
    #define IDENTITY_MACRO(x) IDENTITY_MACRO_BODY(x)
     #define IDENTITY_MACRO_BODY(x) x
     #define COMMA_TOKEN() ,
     int a IDENTITY_MACRO(COMMA_TOKEN)() b; // this works
     int c IDENTITY_MACRO(IDENTITY_MACRO(COMMA_TOKEN))() d; // this doesn't
     
    -
    +

    Basically, what's happening here is that function-like COMMA_TOKEN macro gets expanded _inside_ of the nested IDENTITY_MACRO call - even although it's NOT followed by a '(' as the next preprocessing token - which is a clearly an incorrect @@ -54,8 +55,7 @@ int c IDENTITY_MACRO(IDENTITY_MACRO(COMMA_TOKEN))() d; // this doesn't to be mentioned in the documentation, may be with some examples of how to workaround the issue. Just to show one possible way around the problem, here is a NUMBERED_EXPRESSION macro that does work on MWCW:

    -
    -
    #define NUMBERED_EXPRESSION(n, x) \
    +
    #define NUMBERED_EXPRESSION(n, x) \
         BOOST_PP_CAT(BOOST_, \
         BOOST_PP_IF( \
           n \
    @@ -63,7 +63,7 @@ int c IDENTITY_MACRO(IDENTITY_MACRO(COMMA_TOKEN))() d; // this doesn't
         , PREPROCESSOR_EMPTY \
         ))() \
     /**/
    -
    +

    Reported by Aleksey Gurtovoy

    Comeau C/C++ 4.2.45.2 for Windows

    @@ -75,8 +75,7 @@ int c IDENTITY_MACRO(IDENTITY_MACRO(COMMA_TOKEN))() d; // this doesn't (see the timing data below). This behavior may or may not be problematic for you, depending on how intense is your usage of the library. -
    -
    #ifndef IS_FUNCTION_HELPER_TEST_MAX
    +
    #ifndef IS_FUNCTION_HELPER_TEST_MAX
     #define IS_FUNCTION_HELPER_TEST_MAX 40
     #endif
     
    @@ -91,7 +90,7 @@ typedef char yes_type;
     BOOST_PP_REPEAT_2ND(BOOST_PP_INC(IS_FUNCTION_HELPER_TEST_MAX),IS_FUNCTION_HELPER,A)
     
     #undef IS_FUNCTION_HELPER
    -
    +

    Timing data:

    @@ -131,9 +130,9 @@ BOOST_PP_REPEAT_2ND(BOOST_PP_INC(IS_FUNCTION_HELPER_TEST_MAX),IS_FUNCTION_HELPER

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/arithmetic.htm b/doc/reference/arithmetic.htm index 2b6e36e..8143bdb 100644 --- a/doc/reference/arithmetic.htm +++ b/doc/reference/arithmetic.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,7 +23,7 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/arithmetic.hpp>

    +

    #include <boost/preprocessor/arithmetic.hpp>

    Includes all arithmetic headers.


    @@ -33,9 +34,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/arithmetic_add.htm b/doc/reference/arithmetic_add.htm index 06c5061..a57139e 100644 --- a/doc/reference/arithmetic_add.htm +++ b/doc/reference/arithmetic_add.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/arithmetic/add.hpp>

    +

    #include <boost/preprocessor/arithmetic/add.hpp>


    -

    #define BOOST_PP_ADD(X,Y)

    +

    #define BOOST_PP_ADD(X,Y)

    Expands to the sum of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_ADD_D(D,X,Y)

    +

    #define BOOST_PP_ADD_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/arithmetic_div.htm b/doc/reference/arithmetic_div.htm index 2caa583..7d49c70 100644 --- a/doc/reference/arithmetic_div.htm +++ b/doc/reference/arithmetic_div.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/arithmetic/div.hpp>

    +

    #include <boost/preprocessor/arithmetic/div.hpp>


    -

    #define BOOST_PP_DIV(X,Y)

    +

    #define BOOST_PP_DIV(X,Y)

    Expands to the quotient of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_DIV_D(D,X,Y)

    +

    #define BOOST_PP_DIV_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/arithmetic_mod.htm b/doc/reference/arithmetic_mod.htm index 3e49efc..7d982b7 100644 --- a/doc/reference/arithmetic_mod.htm +++ b/doc/reference/arithmetic_mod.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/arithmetic/mod.hpp>

    +

    #include <boost/preprocessor/arithmetic/mod.hpp>


    -

    #define BOOST_PP_MOD(X,Y)

    +

    #define BOOST_PP_MOD(X,Y)

    Expands to the remainder of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_MOD_D(D,X,Y)

    +

    #define BOOST_PP_MOD_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/arithmetic_mul.htm b/doc/reference/arithmetic_mul.htm index 09c5dc9..e2f4c4a 100644 --- a/doc/reference/arithmetic_mul.htm +++ b/doc/reference/arithmetic_mul.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/arithmetic/mul.hpp>

    +

    #include <boost/preprocessor/arithmetic/mul.hpp>


    -

    #define BOOST_PP_MUL(X,Y)

    +

    #define BOOST_PP_MUL(X,Y)

    Expands to the product of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_MUL_D(D,X,Y)

    +

    #define BOOST_PP_MUL_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/arithmetic_sub.htm b/doc/reference/arithmetic_sub.htm index 0023437..c62a236 100644 --- a/doc/reference/arithmetic_sub.htm +++ b/doc/reference/arithmetic_sub.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/arithmetic/sub.hpp>

    +

    #include <boost/preprocessor/arithmetic/sub.hpp>


    -

    #define BOOST_PP_SUB(X,Y)

    +

    #define BOOST_PP_SUB(X,Y)

    Expands to the difference of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_SUB_D(D,X,Y)

    +

    #define BOOST_PP_SUB_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/assert_msg.htm b/doc/reference/assert_msg.htm index fbbcfed..df0b61c 100644 --- a/doc/reference/assert_msg.htm +++ b/doc/reference/assert_msg.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/assert_msg.hpp>

    +

    #include <boost/preprocessor/assert_msg.hpp>


    -

    #define BOOST_PP_ASSERT_MSG(COND,MSG)

    +

    #define BOOST_PP_ASSERT_MSG(COND,MSG)

    Expands to nothing if COND != 0 and to MSG if COND == 0.

    @@ -43,9 +44,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/cat.htm b/doc/reference/cat.htm index 706e990..ac3f1ee 100644 --- a/doc/reference/cat.htm +++ b/doc/reference/cat.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/cat.hpp>

    +

    #include <boost/preprocessor/cat.hpp>


    -

    #define BOOST_PP_CAT(X,Y)

    +

    #define BOOST_PP_CAT(X,Y)

    Concatenates X and Y after they are macro expanded.

    @@ -51,9 +52,9 @@ expanded.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comma.htm b/doc/reference/comma.htm index e5980bf..c3a6cf5 100644 --- a/doc/reference/comma.htm +++ b/doc/reference/comma.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comma.hpp>

    +

    #include <boost/preprocessor/comma.hpp>


    -

    #define BOOST_PP_COMMA()

    +

    #define BOOST_PP_COMMA()

    Expands to a comma.

    Commas need special handling in preprocessor code, because commas are used @@ -54,9 +55,9 @@ for separating macro parameters.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comma_if.htm b/doc/reference/comma_if.htm index 7cdec93..3ea0ec3 100644 --- a/doc/reference/comma_if.htm +++ b/doc/reference/comma_if.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comma_if.hpp>

    +

    #include <boost/preprocessor/comma_if.hpp>


    -

    #define BOOST_PP_COMMA_IF(COND)

    +

    #define BOOST_PP_COMMA_IF(COND)

    Expands to a comma if COND != 0 and nothing if COND == 0.

    @@ -43,9 +44,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison.htm b/doc/reference/comparison.htm index 57aae73..294e405 100644 --- a/doc/reference/comparison.htm +++ b/doc/reference/comparison.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,7 +23,7 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison.hpp>

    +

    #include <boost/preprocessor/comparison.hpp>

    Includes all comparison headers.


    @@ -33,9 +34,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison_equal.htm b/doc/reference/comparison_equal.htm index c361101..15193ae 100644 --- a/doc/reference/comparison_equal.htm +++ b/doc/reference/comparison_equal.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison/equal.hpp>

    +

    #include <boost/preprocessor/comparison/equal.hpp>


    -

    #define BOOST_PP_EQUAL(X,Y)

    +

    #define BOOST_PP_EQUAL(X,Y)

    Expands to 1 if X == Y and 0 otherwise.

    @@ -47,7 +48,7 @@ in the range [0, BOOST_PP_LIMIT_MAG]
    -

    #define BOOST_PP_EQUAL_D(D,X,Y)

    +

    #define BOOST_PP_EQUAL_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison_greater.htm b/doc/reference/comparison_greater.htm index e203551..df910fd 100644 --- a/doc/reference/comparison_greater.htm +++ b/doc/reference/comparison_greater.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison/greater.hpp>

    +

    #include <boost/preprocessor/comparison/greater.hpp>


    -

    #define BOOST_PP_GREATER(X,Y)

    +

    #define BOOST_PP_GREATER(X,Y)

    Expands to 1 if X > Y and 0 otherwise.

    @@ -47,7 +48,7 @@ in the range [0, BOOST_PP_LIMIT_MAG]
    -

    #define BOOST_PP_GREATER_D(D,X,Y)

    +

    #define BOOST_PP_GREATER_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison_greater_equal.htm b/doc/reference/comparison_greater_equal.htm index e03e4e9..0e5ac74 100644 --- a/doc/reference/comparison_greater_equal.htm +++ b/doc/reference/comparison_greater_equal.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison/greater_equal.hpp>

    +

    #include <boost/preprocessor/comparison/greater_equal.hpp>


    -

    #define BOOST_PP_GREATER_EQUAL(X,Y)

    +

    #define BOOST_PP_GREATER_EQUAL(X,Y)

    Expands to 1 if X >= Y and 0 otherwise.

    @@ -47,7 +48,7 @@ in the range [0, BOOST_PP_LIMIT_MAG]
    -

    #define BOOST_PP_GREATER_EQUAL_D(D,X,Y)

    +

    #define BOOST_PP_GREATER_EQUAL_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison_less.htm b/doc/reference/comparison_less.htm index c3a95bd..203f7ec 100644 --- a/doc/reference/comparison_less.htm +++ b/doc/reference/comparison_less.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison/less.hpp>

    +

    #include <boost/preprocessor/comparison/less.hpp>


    -

    #define BOOST_PP_LESS(X,Y)

    +

    #define BOOST_PP_LESS(X,Y)

    Expands to 1 if X < Y and 0 otherwise.

    @@ -47,7 +48,7 @@ in the range [0, BOOST_PP_LIMIT_MAG]
    -

    #define BOOST_PP_LESS_D(D,X,Y)

    +

    #define BOOST_PP_LESS_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison_less_equal.htm b/doc/reference/comparison_less_equal.htm index 4519d1a..7349918 100644 --- a/doc/reference/comparison_less_equal.htm +++ b/doc/reference/comparison_less_equal.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison/less_equal.hpp>

    +

    #include <boost/preprocessor/comparison/less_equal.hpp>


    -

    #define BOOST_PP_LESS_EQUAL(X,Y)

    +

    #define BOOST_PP_LESS_EQUAL(X,Y)

    Expands to 1 if X <= Y and 0 otherwise.

    @@ -47,7 +48,7 @@ in the range [0, BOOST_PP_LIMIT_MAG]
    -

    #define BOOST_PP_LESS_EQUAL_D(D,X,Y)

    +

    #define BOOST_PP_LESS_EQUAL_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/comparison_not_equal.htm b/doc/reference/comparison_not_equal.htm index b7a5ee2..6e18bd9 100644 --- a/doc/reference/comparison_not_equal.htm +++ b/doc/reference/comparison_not_equal.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/comparison/not_equal.hpp>

    +

    #include <boost/preprocessor/comparison/not_equal.hpp>


    -

    #define BOOST_PP_NOT_EQUAL(X,Y)

    +

    #define BOOST_PP_NOT_EQUAL(X,Y)

    Expands to 1 if X != Y and 0 otherwise.

    @@ -47,7 +48,7 @@ in the range [0, BOOST_PP_LIMIT_MAG]
    -

    #define BOOST_PP_NOT_EQUAL_D(D,X,Y)

    +

    #define BOOST_PP_NOT_EQUAL_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/dec.htm b/doc/reference/dec.htm index b96cbac..03b8d6c 100644 --- a/doc/reference/dec.htm +++ b/doc/reference/dec.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/dec.hpp>

    +

    #include <boost/preprocessor/dec.hpp>


    -

    #define BOOST_PP_DEC(X)

    +

    #define BOOST_PP_DEC(X)

    Decrements X expanding to a single token.

    For example, BOOST_PP_DEC(3) expands to 2 (a @@ -46,9 +47,9 @@ supported.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/empty.htm b/doc/reference/empty.htm index 9002c7e..a84f573 100644 --- a/doc/reference/empty.htm +++ b/doc/reference/empty.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/empty.hpp>

    +

    #include <boost/preprocessor/empty.hpp>


    -

    #define BOOST_PP_EMPTY()

    +

    #define BOOST_PP_EMPTY()

    Expands to nothing.

    For example,

    @@ -56,9 +57,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/enum.htm b/doc/reference/enum.htm index e42f2ad..764f22e 100644 --- a/doc/reference/enum.htm +++ b/doc/reference/enum.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/enum.hpp>

    +

    #include <boost/preprocessor/enum.hpp>


    -

    #define BOOST_PP_ENUM(COUNT,MACRO,DATA)

    +

    #define BOOST_PP_ENUM(COUNT,MACRO,DATA)

    Generates a comma separated list.

    In other words, expands to the sequence:

    @@ -68,9 +69,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/enum_params.htm b/doc/reference/enum_params.htm index fc76d92..ea9665b 100644 --- a/doc/reference/enum_params.htm +++ b/doc/reference/enum_params.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/enum_params.hpp>

    +

    #include <boost/preprocessor/enum_params.hpp>


    -

    #define BOOST_PP_ENUM_PARAMS(COUNT,PARAM)

    +

    #define BOOST_PP_ENUM_PARAMS(COUNT,PARAM)

    Generates a comma separated list of parameters.

    In other words, expands to the sequence:

    @@ -66,9 +67,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/enum_params_with_a_default.htm b/doc/reference/enum_params_with_a_default.htm index a4f285a..d7be67b 100644 --- a/doc/reference/enum_params_with_a_default.htm +++ b/doc/reference/enum_params_with_a_default.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/enum_params_with_a_default.hpp>

    +

    #include <boost/preprocessor/enum_params_with_a_default.hpp>


    -

    #define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(COUNT,PARAM,DEFAULT)

    +

    #define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(COUNT,PARAM,DEFAULT)

    Generates a comma separated list of parameters with a default.

    In other words, expands to the sequence:

    @@ -69,9 +70,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/enum_params_with_defaults.htm b/doc/reference/enum_params_with_defaults.htm index f20af91..eb8d13a 100644 --- a/doc/reference/enum_params_with_defaults.htm +++ b/doc/reference/enum_params_with_defaults.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/enum_params_with_defaults.hpp>

    +

    #include <boost/preprocessor/enum_params_with_defaults.hpp>


    -

    #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(COUNT,PARAM,DEFAULT)

    +

    #define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(COUNT,PARAM,DEFAULT)

    Generates a comma separated list of parameters with defaults.

    In other words, expands to the sequence:

    @@ -69,9 +70,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/enum_shifted.htm b/doc/reference/enum_shifted.htm index e88d1e7..506b5f6 100644 --- a/doc/reference/enum_shifted.htm +++ b/doc/reference/enum_shifted.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/enum_shifted.hpp>

    +

    #include <boost/preprocessor/enum_shifted.hpp>


    -

    #define BOOST_PP_ENUM_SHIFTED(COUNT,MACRO,DATA)

    +

    #define BOOST_PP_ENUM_SHIFTED(COUNT,MACRO,DATA)

    Generates a comma separated shifted list.

    In other words, expands to the sequence:

    @@ -63,9 +64,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/enum_shifted_params.htm b/doc/reference/enum_shifted_params.htm index 9ecad04..b21707b 100644 --- a/doc/reference/enum_shifted_params.htm +++ b/doc/reference/enum_shifted_params.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/enum_shifted_params.hpp>

    +

    #include <boost/preprocessor/enum_shifted_params.hpp>


    -

    #define BOOST_PP_ENUM_SHIFTED_PARAMS(COUNT,PARAM)

    +

    #define BOOST_PP_ENUM_SHIFTED_PARAMS(COUNT,PARAM)

    Generates a comma separated list of shifted actual parameters.

    In other words, expands to the sequence:

    @@ -71,9 +72,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/expand.htm b/doc/reference/expand.htm index 3be5eaf..6cb70d6 100644 --- a/doc/reference/expand.htm +++ b/doc/reference/expand.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/expand.hpp>

    +

    #include <boost/preprocessor/expand.hpp>


    -

    #define BOOST_PP_EXPAND(X)

    +

    #define BOOST_PP_EXPAND(X)

    Essentially macro expands the parameter X twice.


    @@ -37,9 +38,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/expr_if.htm b/doc/reference/expr_if.htm index f965150..cd0751d 100644 --- a/doc/reference/expr_if.htm +++ b/doc/reference/expr_if.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/expr_if.hpp>

    +

    #include <boost/preprocessor/expr_if.hpp>


    -

    #define BOOST_PP_EXPR_IF(COND,EXPR)

    +

    #define BOOST_PP_EXPR_IF(COND,EXPR)

    Expands to EXPR if COND != 0 and to nothing if COND == 0.

    COND must expand to an integer literal in the range [0, BOOST_PP_LIMIT_MAG].

    @@ -47,9 +48,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/for.htm b/doc/reference/for.htm index bb1fce4..2a03ed0 100644 --- a/doc/reference/for.htm +++ b/doc/reference/for.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/for.hpp>

    +

    #include <boost/preprocessor/for.hpp>


    -

    #define BOOST_PP_FOR(STATE,PRED,OP,MACRO)

    +

    #define BOOST_PP_FOR(STATE,PRED,OP,MACRO)

    Repeats MACRO(R,STATE) and iterates OP(R,STATE) while PRED(R,STATE) is true.

    @@ -100,9 +101,9 @@ invoking BOOST_PP_FOR##R() directly.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/identity.htm b/doc/reference/identity.htm index 586ea67..529e6ed 100644 --- a/doc/reference/identity.htm +++ b/doc/reference/identity.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/identity.hpp>

    +

    #include <boost/preprocessor/identity.hpp>


    -

    #define BOOST_PP_IDENTITY(X)

    +

    #define BOOST_PP_IDENTITY(X)

    Expands to X once invoked.

    Designed to be used with BOOST_PP_IF(), when one of the clauses need to be @@ -58,9 +59,9 @@ invoked.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/if.htm b/doc/reference/if.htm index 8b0ac49..bb0143a 100644 --- a/doc/reference/if.htm +++ b/doc/reference/if.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/if.hpp>

    +

    #include <boost/preprocessor/if.hpp>


    -

    #define BOOST_PP_IF(COND,THEN,ELSE)

    +

    #define BOOST_PP_IF(COND,THEN,ELSE)

    Expands to THEN if COND != 0 and ELSE if COND == 0.

    @@ -53,9 +54,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/inc.htm b/doc/reference/inc.htm index 0972275..607b2df 100644 --- a/doc/reference/inc.htm +++ b/doc/reference/inc.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/inc.hpp>

    +

    #include <boost/preprocessor/inc.hpp>


    -

    #define BOOST_PP_INC(X)

    +

    #define BOOST_PP_INC(X)

    Increments X expanding to a single token.

    For example, BOOST_PP_INC(3) expands to 4 (a @@ -47,9 +48,9 @@ supported.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/index.htm b/doc/reference/index.htm index 59a8d65..e7133a0 100644 --- a/doc/reference/index.htm +++ b/doc/reference/index.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -216,9 +217,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/limits.htm b/doc/reference/limits.htm index fcf3bd0..90bde90 100644 --- a/doc/reference/limits.htm +++ b/doc/reference/limits.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/limits.hpp>

    +

    #include <boost/preprocessor/limits.hpp>


    -

    #define BOOST_PP_LIMIT_DIM

    +

    #define BOOST_PP_LIMIT_DIM

    Expands to the number of dimensions of repeat supported by the library.

    @@ -35,7 +36,7 @@ library.


    -

    #define BOOST_PP_LIMIT_MAG

    +

    #define BOOST_PP_LIMIT_MAG

    Expands to the maximum straight numeric literal supported by the library.

    @@ -54,7 +55,7 @@ and BOOST_PP_REPEAT family).


    -

    #define BOOST_PP_LIMIT_TUPLE

    +

    #define BOOST_PP_LIMIT_TUPLE

    Expands to the maximum tuple size supported by the library.


    @@ -65,9 +66,9 @@ and BOOST_PP_REPEAT family).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list.htm b/doc/reference/list.htm index 4189693..25321b3 100644 --- a/doc/reference/list.htm +++ b/doc/reference/list.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,7 +23,7 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list.hpp>

    +

    #include <boost/preprocessor/list.hpp>

    Includes all list headers.


    @@ -33,9 +34,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_adt.htm b/doc/reference/list_adt.htm index 3371d35..e67e558 100644 --- a/doc/reference/list_adt.htm +++ b/doc/reference/list_adt.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,7 +23,7 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/adt.hpp>

    +

    #include <boost/preprocessor/list/adt.hpp>

    This header defines the fundamental list operations.

    Note

    @@ -34,7 +35,7 @@
    -

    #define BOOST_PP_LIST_CONS(FIRST,REST)

    +

    #define BOOST_PP_LIST_CONS(FIRST,REST)

    List constructor.

    Lists are build using list constructors BOOST_PP_LIST_NIL and @@ -75,19 +76,19 @@ and BOOST_PP_LIST


    -

    #define BOOST_PP_LIST_NIL

    +

    #define BOOST_PP_LIST_NIL

    List nil constructor.


    -

    #define BOOST_PP_LIST_IS_CONS(LIST)

    +

    #define BOOST_PP_LIST_IS_CONS(LIST)

    Expands to 1 if the list is not nil and 0 otherwise.


    -

    #define BOOST_PP_LIST_IS_NIL(LIST)

    +

    #define BOOST_PP_LIST_IS_NIL(LIST)

    Expands to 1 if the list is nil and 0 otherwise.


    -

    #define BOOST_PP_LIST_FIRST(LIST)

    +

    #define BOOST_PP_LIST_FIRST(LIST)

    Expands to the first element of the list. The list must not be nil.

    For example,

    @@ -100,7 +101,7 @@ and BOOST_PP_LIST
    -

    #define BOOST_PP_LIST_REST(LIST)

    +

    #define BOOST_PP_LIST_REST(LIST)

    Expands to a list of all but the first element of the list.

    The list must not be nil.

    @@ -126,9 +127,9 @@ and BOOST_PP_LIST

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_append.htm b/doc/reference/list_append.htm index 43c1388..b6fc491 100644 --- a/doc/reference/list_append.htm +++ b/doc/reference/list_append.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/append.hpp>

    +

    #include <boost/preprocessor/list/append.hpp>


    -

    #define BOOST_PP_LIST_APPEND(LIST_1ST,LIST_2ND)

    +

    #define BOOST_PP_LIST_APPEND(LIST_1ST,LIST_2ND)

    Catenates two lists together.

    For example,

    @@ -56,7 +57,7 @@
    -

    #define BOOST_PP_LIST_APPEND_D(D,LIST_1ST,LIST_2ND)

    +

    #define BOOST_PP_LIST_APPEND_D(D,LIST_1ST,LIST_2ND)

    Can be used inside BOOST_PP_WHILE().


    @@ -67,9 +68,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_at.htm b/doc/reference/list_at.htm index 86656f0..cea4793 100644 --- a/doc/reference/list_at.htm +++ b/doc/reference/list_at.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/at.hpp>

    +

    #include <boost/preprocessor/list/at.hpp>


    -

    #define BOOST_PP_LIST_AT(LIST,INDEX)

    +

    #define BOOST_PP_LIST_AT(LIST,INDEX)

    Expands to the INDEX:th element of the list LIST. The first element is at index 0.

    @@ -50,7 +51,7 @@ first element is at index 0.


    -

    #define BOOST_PP_LIST_AT_D(D,LIST,INDEX)

    +

    #define BOOST_PP_LIST_AT_D(D,LIST,INDEX)

    Can be used inside BOOST_PP_WHILE().


    @@ -61,9 +62,9 @@ first element is at index 0.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_cat.htm b/doc/reference/list_cat.htm index b081bab..0da7d57 100644 --- a/doc/reference/list_cat.htm +++ b/doc/reference/list_cat.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/cat.hpp>

    +

    #include <boost/preprocessor/list/cat.hpp>


    -

    #define BOOST_PP_LIST_CAT(LIST)

    +

    #define BOOST_PP_LIST_CAT(LIST)

    Catenates all elements of the list.

    For example,

    @@ -53,7 +54,7 @@
    -

    #define BOOST_PP_LIST_CAT_D(D,LIST)

    +

    #define BOOST_PP_LIST_CAT_D(D,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -64,9 +65,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_enum.htm b/doc/reference/list_enum.htm index 4b29c7c..de6e887 100644 --- a/doc/reference/list_enum.htm +++ b/doc/reference/list_enum.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/enum.hpp>

    +

    #include <boost/preprocessor/list/enum.hpp>


    -

    #define BOOST_PP_LIST_ENUM(LIST)

    +

    #define BOOST_PP_LIST_ENUM(LIST)

    Converts the list to a comma separated list.

    For example,

    @@ -48,7 +49,7 @@
    -

    #define BOOST_PP_LIST_ENUM_R(R,LIST)

    +

    #define BOOST_PP_LIST_ENUM_R(R,LIST)

    Can be used inside BOOST_PP_FOR().


    @@ -59,9 +60,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_filter.htm b/doc/reference/list_filter.htm index 0af8614..65d3375 100644 --- a/doc/reference/list_filter.htm +++ b/doc/reference/list_filter.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/filter.hpp>

    +

    #include <boost/preprocessor/list/filter.hpp>


    -

    #define BOOST_PP_LIST_FILTER(PRED,DATA,LIST)

    +

    #define BOOST_PP_LIST_FILTER(PRED,DATA,LIST)

    Expands to a list containing all the elements X of the list for which PRED(D,DATA,X) is true.

    @@ -55,7 +56,7 @@ for which PRED(D,DATA,X) is true.


    -

    #define BOOST_PP_LIST_FILTER_D(D,PRED,DATA,LIST)

    +

    #define BOOST_PP_LIST_FILTER_D(D,PRED,DATA,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -66,9 +67,9 @@ for which PRED(D,DATA,X) is true.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_first_n.htm b/doc/reference/list_first_n.htm index 31d9988..cb720a4 100644 --- a/doc/reference/list_first_n.htm +++ b/doc/reference/list_first_n.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/first_n.hpp>

    +

    #include <boost/preprocessor/list/first_n.hpp>


    -

    #define BOOST_PP_LIST_FIRST_N(COUNT,LIST)

    +

    #define BOOST_PP_LIST_FIRST_N(COUNT,LIST)

    Expands to a list of the first COUNT elements of the list LIST.

    @@ -59,7 +60,7 @@
    -

    #define BOOST_PP_LIST_FIRST_N_D(D,COUNT,LIST)

    +

    #define BOOST_PP_LIST_FIRST_N_D(D,COUNT,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -70,9 +71,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_fold_left.htm b/doc/reference/list_fold_left.htm index e9e65ce..32fb374 100644 --- a/doc/reference/list_fold_left.htm +++ b/doc/reference/list_fold_left.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/fold_left.hpp>

    +

    #include <boost/preprocessor/list/fold_left.hpp>


    -

    #define BOOST_PP_LIST_FOLD_LEFT(OP,STATE,LIST)

    +

    #define BOOST_PP_LIST_FOLD_LEFT(OP,STATE,LIST)

    Iterates OP(D,STATE,X) for each element X of the list LIST (from the left or the start of the list).

    @@ -76,7 +77,7 @@ list LIST (from the left or the start of the list).


    -

    #define BOOST_PP_LIST_FOLD_LEFT_D(D,OP,STATE,LIST)

    +

    #define BOOST_PP_LIST_FOLD_LEFT_D(D,OP,STATE,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -87,9 +88,9 @@ list LIST (from the left or the start of the list).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_fold_left_2nd.htm b/doc/reference/list_fold_left_2nd.htm index 442205b..8e7805e 100644 --- a/doc/reference/list_fold_left_2nd.htm +++ b/doc/reference/list_fold_left_2nd.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,15 +23,15 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/fold_left_2nd.hpp>

    +

    #include <boost/preprocessor/list/fold_left_2nd.hpp>


    -

    #define BOOST_PP_LIST_FOLD_LEFT_2ND(OP,STATE,LIST)

    +

    #define BOOST_PP_LIST_FOLD_LEFT_2ND(OP,STATE,LIST)

    Same as BOOST_PP_LIST_FOLD_LEFT(), but implemented independently.


    -

    #define BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,OP,STATE,LIST)

    +

    #define BOOST_PP_LIST_FOLD_LEFT_2ND_D(D,OP,STATE,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -41,9 +42,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_fold_right.htm b/doc/reference/list_fold_right.htm index 73dff04..6f1fb22 100644 --- a/doc/reference/list_fold_right.htm +++ b/doc/reference/list_fold_right.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/fold_right.hpp>

    +

    #include <boost/preprocessor/list/fold_right.hpp>


    -

    #define BOOST_PP_LIST_FOLD_RIGHT(OP,LIST,STATE)

    +

    #define BOOST_PP_LIST_FOLD_RIGHT(OP,LIST,STATE)

    Iterates OP(D,X,STATE) for each element X of the list LIST (from the right or the end of the list).

    @@ -74,7 +75,7 @@ list LIST (from the right or the end of the list).


    -

    #define BOOST_PP_LIST_FOLD_RIGHT_D(D,OP,LIST,STATE)

    +

    #define BOOST_PP_LIST_FOLD_RIGHT_D(D,OP,LIST,STATE)

    Can be used inside BOOST_PP_WHILE().


    @@ -85,9 +86,9 @@ list LIST (from the right or the end of the list).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_fold_right_2nd.htm b/doc/reference/list_fold_right_2nd.htm index c2f6d76..45fd704 100644 --- a/doc/reference/list_fold_right_2nd.htm +++ b/doc/reference/list_fold_right_2nd.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,15 +23,15 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/fold_right_2nd.hpp>

    +

    #include <boost/preprocessor/list/fold_right_2nd.hpp>


    -

    #define BOOST_PP_LIST_FOLD_RIGHT_2ND(OP,LIST,STATE)

    +

    #define BOOST_PP_LIST_FOLD_RIGHT_2ND(OP,LIST,STATE)

    Same as BOOST_PP_LIST_FOLD_RIGHT(), but implemented independently.


    -

    #define BOOST_PP_LIST_FOLD_RIGHT_2ND_D(D,OP,LIST,STATE)

    +

    #define BOOST_PP_LIST_FOLD_RIGHT_2ND_D(D,OP,LIST,STATE)

    Can be used inside BOOST_PP_WHILE().


    @@ -41,9 +42,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_for_each.htm b/doc/reference/list_for_each.htm index e9b462e..74e91b1 100644 --- a/doc/reference/list_for_each.htm +++ b/doc/reference/list_for_each.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/for_each.hpp>

    +

    #include <boost/preprocessor/list/for_each.hpp>


    -

    #define BOOST_PP_LIST_FOR_EACH(MACRO,DATA,LIST)

    +

    #define BOOST_PP_LIST_FOR_EACH(MACRO,DATA,LIST)

    Repeats MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,INDEX)) for each INDEX = [0, BOOST_PP_LIST_SIZE(LIST)).

    @@ -70,7 +71,7 @@
    -

    #define BOOST_PP_LIST_FOR_EACH_R(R,MACRO,DATA,LIST)

    +

    #define BOOST_PP_LIST_FOR_EACH_R(R,MACRO,DATA,LIST)

    Can be used inside BOOST_PP_FOR().


    @@ -81,9 +82,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_for_each_i.htm b/doc/reference/list_for_each_i.htm index 5ecf280..856c3be 100644 --- a/doc/reference/list_for_each_i.htm +++ b/doc/reference/list_for_each_i.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/for_each_i.hpp>

    +

    #include <boost/preprocessor/list/for_each_i.hpp>


    -

    #define BOOST_PP_LIST_FOR_EACH_I(MACRO,DATA,LIST)

    +

    #define BOOST_PP_LIST_FOR_EACH_I(MACRO,DATA,LIST)

    Repeats MACRO(R,DATA,INDEX,BOOST_PP_LIST_AT(LIST,INDEX)) for each INDEX = [0, BOOST_PP_LIST_SIZE(LIST)).

    @@ -59,7 +60,7 @@
    -

    #define BOOST_PP_LIST_FOR_EACH_I_R(R,MACRO,DATA,LIST)

    +

    #define BOOST_PP_LIST_FOR_EACH_I_R(R,MACRO,DATA,LIST)

    Can be used inside BOOST_PP_FOR().


    @@ -70,9 +71,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_for_each_product.htm b/doc/reference/list_for_each_product.htm index 17af68f..eda6873 100644 --- a/doc/reference/list_for_each_product.htm +++ b/doc/reference/list_for_each_product.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/for_each_product.hpp>

    +

    #include <boost/preprocessor/list/for_each_product.hpp>


    -

    #define BOOST_PP_LIST_FOR_EACH_PRODUCT(MACRO,SIZE_OF_TUPLE,TUPLE_OF_LISTS)

    +

    #define BOOST_PP_LIST_FOR_EACH_PRODUCT(MACRO,SIZE_OF_TUPLE,TUPLE_OF_LISTS)

    Repeats MACRO(R,X) for each element X of the cartesian product of the lists of the SIZE_OF_TUPLE-tuple TUPLE_OF_LISTS.

    @@ -70,7 +71,7 @@ explosion.


    -

    #define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(R,MACRO,SIZE_OF_TUPLE,TUPLE_OF_LISTS)

    +

    #define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(R,MACRO,SIZE_OF_TUPLE,TUPLE_OF_LISTS)

    Can be used inside BOOST_PP_FOR().


    @@ -81,9 +82,9 @@ explosion.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_rest_n.htm b/doc/reference/list_rest_n.htm index ca4c753..bf83845 100644 --- a/doc/reference/list_rest_n.htm +++ b/doc/reference/list_rest_n.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/rest_n.hpp>

    +

    #include <boost/preprocessor/list/rest_n.hpp>


    -

    #define BOOST_PP_LIST_REST_N(COUNT,LIST)

    +

    #define BOOST_PP_LIST_REST_N(COUNT,LIST)

    Expands to a list of all but the first COUNT elements of the list LIST.

    @@ -59,7 +60,7 @@ list LIST.


    -

    #define BOOST_PP_LIST_REST_N_D(D,COUNT,LIST)

    +

    #define BOOST_PP_LIST_REST_N_D(D,COUNT,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -70,9 +71,9 @@ list LIST.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_reverse.htm b/doc/reference/list_reverse.htm index 2a3578f..f39d0ae 100644 --- a/doc/reference/list_reverse.htm +++ b/doc/reference/list_reverse.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/reverse.hpp>

    +

    #include <boost/preprocessor/list/reverse.hpp>


    -

    #define BOOST_PP_LIST_REVERSE(LIST)

    +

    #define BOOST_PP_LIST_REVERSE(LIST)

    List reversal.

    For example,

    @@ -53,7 +54,7 @@
    -

    #define BOOST_PP_LIST_REVERSE_D(D,LIST)

    +

    #define BOOST_PP_LIST_REVERSE_D(D,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -64,9 +65,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_size.htm b/doc/reference/list_size.htm index 71b4a37..bc26f87 100644 --- a/doc/reference/list_size.htm +++ b/doc/reference/list_size.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/size.hpp>

    +

    #include <boost/preprocessor/list/size.hpp>


    -

    #define BOOST_PP_LIST_SIZE(LIST)

    +

    #define BOOST_PP_LIST_SIZE(LIST)

    Expands to the number of elements in the list.

    For example,

    @@ -49,7 +50,7 @@
    -

    #define BOOST_PP_LIST_SIZE_D(D,LIST)

    +

    #define BOOST_PP_LIST_SIZE_D(D,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -60,9 +61,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_to_tuple.htm b/doc/reference/list_to_tuple.htm index 3ad9eb4..b5225bf 100644 --- a/doc/reference/list_to_tuple.htm +++ b/doc/reference/list_to_tuple.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/to_tuple.hpp>

    +

    #include <boost/preprocessor/list/to_tuple.hpp>


    -

    #define BOOST_PP_LIST_TO_TUPLE(LIST)

    +

    #define BOOST_PP_LIST_TO_TUPLE(LIST)

    Converts the list to a tuple.

    For example,

    @@ -55,7 +56,7 @@
    -

    #define BOOST_PP_LIST_TO_TUPLE_R(R,LIST)

    +

    #define BOOST_PP_LIST_TO_TUPLE_R(R,LIST)

    Can be used inside BOOST_PP_FOR().


    @@ -66,9 +67,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/list_transform.htm b/doc/reference/list_transform.htm index ebde89a..736b915 100644 --- a/doc/reference/list_transform.htm +++ b/doc/reference/list_transform.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/list/transform.hpp>

    +

    #include <boost/preprocessor/list/transform.hpp>


    -

    #define BOOST_PP_LIST_TRANSFORM(OP,DATA,LIST)

    +

    #define BOOST_PP_LIST_TRANSFORM(OP,DATA,LIST)

    Applies the macro OP(D,DATA,X) to each element X of the list producing a new list.

    @@ -65,7 +66,7 @@ of the list producing a new list.


    -

    #define BOOST_PP_LIST_TRANSFORM_D(D,OP,DATA,LIST)

    +

    #define BOOST_PP_LIST_TRANSFORM_D(D,OP,DATA,LIST)

    Can be used inside BOOST_PP_WHILE().


    @@ -76,9 +77,9 @@ of the list producing a new list.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical.htm b/doc/reference/logical.htm index 6b10011..70da910 100644 --- a/doc/reference/logical.htm +++ b/doc/reference/logical.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,7 +23,7 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical.hpp>

    +

    #include <boost/preprocessor/logical.hpp>

    Includes all logical headers.


    @@ -33,9 +34,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical_and.htm b/doc/reference/logical_and.htm index 34ce738..080a2e4 100644 --- a/doc/reference/logical_and.htm +++ b/doc/reference/logical_and.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical/and.hpp>

    +

    #include <boost/preprocessor/logical/and.hpp>


    -

    #define BOOST_PP_AND(X,Y)

    +

    #define BOOST_PP_AND(X,Y)

    Expands to the logical AND of the operands.

    Both X and Y must expand to integer literals @@ -48,9 +49,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical_bool.htm b/doc/reference/logical_bool.htm index d3d6ebf..b0b46e7 100644 --- a/doc/reference/logical_bool.htm +++ b/doc/reference/logical_bool.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical/bool.hpp>

    +

    #include <boost/preprocessor/logical/bool.hpp>


    -

    #define BOOST_PP_BOOL(X)

    +

    #define BOOST_PP_BOOL(X)

    Expands to 0 if X == 0 and 1 if X != 0.

    X must be an integer literal in the range [0, BOOST_PP_LIMIT_MAG].

    @@ -42,9 +43,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical_nor.htm b/doc/reference/logical_nor.htm index 0a57d28..bab07c3 100644 --- a/doc/reference/logical_nor.htm +++ b/doc/reference/logical_nor.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical/nor.hpp>

    +

    #include <boost/preprocessor/logical/nor.hpp>


    -

    #define BOOST_PP_NOR(X,Y)

    +

    #define BOOST_PP_NOR(X,Y)

    Expands to the logical NEITHER OR of the operands.

    Both X and Y must expand to integer literals @@ -48,9 +49,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical_not.htm b/doc/reference/logical_not.htm index 50e16c9..41bf426 100644 --- a/doc/reference/logical_not.htm +++ b/doc/reference/logical_not.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical/not.hpp>

    +

    #include <boost/preprocessor/logical/not.hpp>


    -

    #define BOOST_PP_NOT(X)

    +

    #define BOOST_PP_NOT(X)

    Expands to the logical NOT of the operand.

    X must be an integer literal in the range [0, BOOST_PP_LIMIT_MAG].

    @@ -47,9 +48,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical_or.htm b/doc/reference/logical_or.htm index 5e83561..b993bfc 100644 --- a/doc/reference/logical_or.htm +++ b/doc/reference/logical_or.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical/or.hpp>

    +

    #include <boost/preprocessor/logical/or.hpp>


    -

    #define BOOST_PP_OR(X,Y)

    +

    #define BOOST_PP_OR(X,Y)

    Expands to the logical OR of the operands.

    Both X and Y must expand to integer literals @@ -48,9 +49,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/logical_xor.htm b/doc/reference/logical_xor.htm index 1a5190d..6a03485 100644 --- a/doc/reference/logical_xor.htm +++ b/doc/reference/logical_xor.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/logical/xor.hpp>

    +

    #include <boost/preprocessor/logical/xor.hpp>


    -

    #define BOOST_PP_XOR(X,Y)

    +

    #define BOOST_PP_XOR(X,Y)

    Expands to the logical EXCLUSIVE OR of the operands.

    Both X and Y must expand to integer literals @@ -48,9 +49,9 @@ in the range [0, BOOST_PP_LIMIT_MAG]

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/max.htm b/doc/reference/max.htm index 4d5379c..1c4c721 100644 --- a/doc/reference/max.htm +++ b/doc/reference/max.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/max.hpp>

    +

    #include <boost/preprocessor/max.hpp>


    -

    #define BOOST_PP_MAX(X,Y)

    +

    #define BOOST_PP_MAX(X,Y)

    Expands to the maximum of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_MAX_D(D,X,Y)

    +

    #define BOOST_PP_MAX_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/min.htm b/doc/reference/min.htm index ab4f33c..70ba392 100644 --- a/doc/reference/min.htm +++ b/doc/reference/min.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/min.hpp>

    +

    #include <boost/preprocessor/min.hpp>


    -

    #define BOOST_PP_MIN(X,Y)

    +

    #define BOOST_PP_MIN(X,Y)

    Expands to the minimum of X and Y.

    Both X and Y must expand to integer literals @@ -47,7 +48,7 @@ single token).


    -

    #define BOOST_PP_MIN_D(D,X,Y)

    +

    #define BOOST_PP_MIN_D(D,X,Y)

    Can be used inside BOOST_PP_WHILE().


    @@ -58,9 +59,9 @@ single token).

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/repeat.htm b/doc/reference/repeat.htm index 752173e..18ee8d9 100644 --- a/doc/reference/repeat.htm +++ b/doc/reference/repeat.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/repeat.hpp>

    +

    #include <boost/preprocessor/repeat.hpp>


    -

    #define BOOST_PP_REPEAT(COUNT,MACRO,DATA)

    +

    #define BOOST_PP_REPEAT(COUNT,MACRO,DATA)

    Repeats the macro MACRO(INDEX,DATA) for INDEX = [0,COUNT).

    In other words, expands to the sequence:

    @@ -74,9 +75,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/repeat_2nd.htm b/doc/reference/repeat_2nd.htm index d3e0902..b4273e4 100644 --- a/doc/reference/repeat_2nd.htm +++ b/doc/reference/repeat_2nd.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/repeat_2nd.hpp>

    +

    #include <boost/preprocessor/repeat_2nd.hpp>


    -

    #define BOOST_PP_REPEAT_2ND(COUNT,MACRO,DATA)

    +

    #define BOOST_PP_REPEAT_2ND(COUNT,MACRO,DATA)

    Same as BOOST_PP_REPEAT(), but implemented independently.

    Test

    @@ -43,9 +44,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/repeat_3rd.htm b/doc/reference/repeat_3rd.htm index 197847e..9d63664 100644 --- a/doc/reference/repeat_3rd.htm +++ b/doc/reference/repeat_3rd.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/repeat_3rd.hpp>

    +

    #include <boost/preprocessor/repeat_3rd.hpp>


    -

    #define BOOST_PP_REPEAT_3RD(COUNT,MACRO,DATA)

    +

    #define BOOST_PP_REPEAT_3RD(COUNT,MACRO,DATA)

    Same as BOOST_PP_REPEAT(), but implemented independently.


    @@ -37,9 +38,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/repeat_from_to.htm b/doc/reference/repeat_from_to.htm index cd2761e..3d1d8af 100644 --- a/doc/reference/repeat_from_to.htm +++ b/doc/reference/repeat_from_to.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/repeat_from_to.hpp>

    +

    #include <boost/preprocessor/repeat_from_to.hpp>


    -

    #define BOOST_PP_REPEAT_FROM_TO(FIRST,LAST,MACRO,DATA)

    +

    #define BOOST_PP_REPEAT_FROM_TO(FIRST,LAST,MACRO,DATA)

    Repeats the macro MACRO(INDEX,DATA) for INDEX = [FIRST,LAST).

    In other words, expands to the sequence:

    @@ -67,9 +68,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/repeat_from_to_2nd.htm b/doc/reference/repeat_from_to_2nd.htm index 419c034..1e2d93c 100644 --- a/doc/reference/repeat_from_to_2nd.htm +++ b/doc/reference/repeat_from_to_2nd.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/repeat_from_to_2nd.hpp>

    +

    #include <boost/preprocessor/repeat_from_to_2nd.hpp>


    -

    #define BOOST_PP_REPEAT_FROM_TO_2ND(FIRST,LAST,MACRO,DATA)

    +

    #define BOOST_PP_REPEAT_FROM_TO_2ND(FIRST,LAST,MACRO,DATA)

    Same as BOOST_PP_REPEAT_FROM_TO(), but implemented independently.


    @@ -37,9 +38,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/repeat_from_to_3rd.htm b/doc/reference/repeat_from_to_3rd.htm index a2644a4..23d67ff 100644 --- a/doc/reference/repeat_from_to_3rd.htm +++ b/doc/reference/repeat_from_to_3rd.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/repeat_from_to_3rd.hpp>

    +

    #include <boost/preprocessor/repeat_from_to_3rd.hpp>


    -

    #define BOOST_PP_REPEAT_FROM_TO_3RD(FIRST,LAST,MACRO,DATA)

    +

    #define BOOST_PP_REPEAT_FROM_TO_3RD(FIRST,LAST,MACRO,DATA)

    Same as BOOST_PP_REPEAT_FROM_TO(), but implemented independently.


    @@ -37,9 +38,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/stringize.htm b/doc/reference/stringize.htm index c3f183a..3dccf83 100644 --- a/doc/reference/stringize.htm +++ b/doc/reference/stringize.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/stringize.hpp>

    +

    #include <boost/preprocessor/stringize.hpp>


    -

    #define BOOST_PP_STRINGIZE(X)

    +

    #define BOOST_PP_STRINGIZE(X)

    Stringizes X after it is macro expanded.

    For example, BOOST_PP_STRINGIZE(BOOST_PP_CAT(a,b)) expands to "ab".

    @@ -50,9 +51,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/tuple.htm b/doc/reference/tuple.htm index 8964118..dde75eb 100644 --- a/doc/reference/tuple.htm +++ b/doc/reference/tuple.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,7 +23,7 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/tuple.hpp>

    +

    #include <boost/preprocessor/tuple.hpp>

    Includes all tuple headers.

    A tuple is a fixed size collection of elements.

    @@ -50,9 +51,9 @@ constitutes a single macro parameter.

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/tuple_eat.htm b/doc/reference/tuple_eat.htm index 0995ea1..8951704 100644 --- a/doc/reference/tuple_eat.htm +++ b/doc/reference/tuple_eat.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/tuple/eat.hpp>

    +

    #include <boost/preprocessor/tuple/eat.hpp>


    -

    #define BOOST_PP_TUPLE_EAT(SIZE_OF_TUPLE)

    +

    #define BOOST_PP_TUPLE_EAT(SIZE_OF_TUPLE)

    Expands to a macro that eats a tuple of the specified size.

    BOOST_PP_TUPLE_EAT() is designed to be used with BOOST_PP_IF() like @@ -49,9 +50,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/tuple_elem.htm b/doc/reference/tuple_elem.htm index d733a24..e556c69 100644 --- a/doc/reference/tuple_elem.htm +++ b/doc/reference/tuple_elem.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/tuple/elem.hpp>

    +

    #include <boost/preprocessor/tuple/elem.hpp>


    -

    #define BOOST_PP_TUPLE_ELEM(SIZE_OF_TUPLE,INDEX,TUPLE)

    +

    #define BOOST_PP_TUPLE_ELEM(SIZE_OF_TUPLE,INDEX,TUPLE)

    Expands to the INDEX:th element of an SIZE_OF_TUPLE-tuple.

    For example,

    @@ -51,9 +52,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/tuple_reverse.htm b/doc/reference/tuple_reverse.htm index 0e337aa..2e1633c 100644 --- a/doc/reference/tuple_reverse.htm +++ b/doc/reference/tuple_reverse.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/tuple/reverse.hpp>

    +

    #include <boost/preprocessor/tuple/reverse.hpp>


    -

    #define BOOST_PP_TUPLE_REVERSE(SIZE_OF_TUPLE,TUPLE)

    +

    #define BOOST_PP_TUPLE_REVERSE(SIZE_OF_TUPLE,TUPLE)

    Tuple reversal.

    For example,

    @@ -46,9 +47,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/tuple_to_list.htm b/doc/reference/tuple_to_list.htm index 268266f..0b260c1 100644 --- a/doc/reference/tuple_to_list.htm +++ b/doc/reference/tuple_to_list.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/tuple/to_list.hpp>

    +

    #include <boost/preprocessor/tuple/to_list.hpp>


    -

    #define BOOST_PP_TUPLE_TO_LIST(SIZE_OF_TUPLE,TUPLE)

    +

    #define BOOST_PP_TUPLE_TO_LIST(SIZE_OF_TUPLE,TUPLE)

    Converts a tuple to a list.

    For example,

    @@ -58,9 +59,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/reference/while.htm b/doc/reference/while.htm index 16d5a99..eb79026 100644 --- a/doc/reference/while.htm +++ b/doc/reference/while.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Reference - +
    @@ -22,11 +23,11 @@ PrevNextMacrosHeaders
    -

    #include <boost/preprocessor/while.hpp>

    +

    #include <boost/preprocessor/while.hpp>


    -

    #define BOOST_PP_WHILE(PRED,OP,STATE)

    +

    #define BOOST_PP_WHILE(PRED,OP,STATE)

    Iterates OP(D,STATE) while PRED(D,STATE) is true.

    In other words, expands to:

    @@ -93,9 +94,9 @@

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.

    diff --git a/doc/tutorial.htm b/doc/tutorial.htm index dbc6e8d..83e5a2c 100644 --- a/doc/tutorial.htm +++ b/doc/tutorial.htm @@ -1,9 +1,10 @@ +Boost.Preprocessor - Tutorial - +
    @@ -19,10 +20,10 @@

    Contents

    -
    +
    Motivation
    Preprocessor Metaprogramming Techniques -
    +
    Use a Local Macro to avoid small scale repetition
    Use BOOST_PP_EMPTY as an unused parameter in Local Macro instantiations
    @@ -53,8 +54,7 @@ must be overloaded for every distinct number of parameters that is to be supported. Example:

    -
    -
    template <class R>
    +
    template <class R>
     yes_type is_function_tester(R (*)());
     template <class R, class A0>
     yes_type is_function_tester(R (*)(A0));
    @@ -65,7 +65,6 @@ yes_type is_function_tester(R (*)(A0, A1, A2));
     
     // ...
     
    -

    The need for this kind of repetition occurs particularly frequently while implementing generic components or metaprogramming facilities, but the need also manifests @@ -108,15 +107,14 @@ yes_type is_function_tester(R (*)(A0, A1, A2));

    Using the primitives of the PREPROCESSOR library, the is_function_tester()s could be implemented like this:

    -
    -
    #define IS_FUNCTION_TESTER(N,_)\
    +
    #define IS_FUNCTION_TESTER(N,_)\
       template<class R BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, class A)>\
       yes_type is_function_tester(R (*)(BOOST_PP_ENUM_PARAMS(N,A)));
     
     BOOST_PP_REPEAT_2ND(BOOST_PP_INC(MAX_IS_FUNCTION_TESTER_PARAMS),IS_FUNCTION_TESTER,_)
     #undef IS_FUNCTION_TESTER
     
    -
    +

    In order to change the maximum number of function parameters supported, you now simply change the MAX_IS_FUNCTION_TESTER_PARAMS definition and recompile.


    @@ -128,8 +126,7 @@ BOOST_PP_REPEAT_2ND(BOOST_PP_INC(MAX_IS_FUNCTION_TESTER_PARAMS),IS_FUNCTION_TEST

    EXAMPLE: Use a Local Macro to avoid small scale repetition

    -
    -
    #define BOOST_PP_DEF(OP)   \
    +
    #define BOOST_PP_DEF(OP)   \
       template<class T, int n> \
       vec<T,n>&                \
         operator OP##=         \
    @@ -149,7 +146,6 @@ BOOST_PP_DEF(*)
     BOOST_PP_DEF(/)
     #undef BOOST_PP_DEF
     
    -

    TIP: It is usually okay to use a standard macro name like BOOST_PP_DEF for this kind of code, because the macro is both defined and undefined in the @@ -167,8 +163,7 @@ the line continuation operator when they are aligned.

    EXAMPLE: Use BOOST_PP_EMPTY as an unused parameter in Local Macro instantiations

    -
    -
    #define BOOST_PP_DEF(CV)  \
    +
    #define BOOST_PP_DEF(CV)  \
       template<class base>    \
       CV() typename implement_subscript_using_begin_subscript<base>::value_type&\
         implement_subscript_using_begin_subscript<base>::operator[]\
    @@ -182,7 +177,6 @@ BOOST_PP_DEF(BOOST_PP_EMPTY)
     BOOST_PP_DEF(const BOOST_PP_EMPTY)
     #undef BOOST_PP_DEF
     
    -

    HOW: BOOST_PP_EMPTY() expands to nothing and can be used as an unused parameter.

    @@ -206,8 +200,7 @@ of the line continuation operators without making the code too unreadable.


    EXAMPLE: Use BOOST_PP_CAT instead of ## when necessary

    -
    -
    #define STATIC_ASSERT(EXPR)\
    +
    #define STATIC_ASSERT(EXPR)\
       enum\
       { BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\
       };\
    @@ -220,22 +213,21 @@ of the line continuation operators without making the code too unreadable.

    STATIC_ASSERT(sizeof(int) <= sizeof(long));
    -

    WHY: Macro expansion proceeds recursively in "layers". Token pasting prevents the preprocessor from performing macro expansion, therefore it is often necessary to delay token concatenation.


    EXAMPLE: Use BOOST_PP_STRINGIZE instead of # whenever necessary

    -
    -
    #define NOTE(STR)\
    +
    +
    #define NOTE(STR)\
       message(__FILE__ "(" BOOST_PP_STRINGIZE(__LINE__) ") : " STR)
     
     // ...
     
     #pragma NOTE("TBD!")
     
    -
    +

    WHY: Macro expansion proceeds recursively in "layers". Stringization prevents the preprocessor from performing macro expansion, therefore it is often necessary to delay stringization.

    @@ -251,8 +243,8 @@ STATIC_ASSERT(sizeof(int) <= sizeof(long));
  • BOOST_PP_COMMA_IF
  • to avoid O(N) repetition on lists in general

    -
    -
    struct make_type_list_end;
    +
    +
    struct make_type_list_end;
     
     template
     < BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT
    @@ -290,12 +282,10 @@ public:
         >::type type;
     };
     
    -

    HOW: BOOST_PP_REPEAT uses simulated recursion (pseudo code):

    -
    -
    #define BOOST_PP_REPEAT(N,M,P) BOOST_PP_REPEAT##N(M,P)
    +
    #define BOOST_PP_REPEAT(N,M,P) BOOST_PP_REPEAT##N(M,P)
     #define BOOST_PP_REPEAT0(M,P)
     #define BOOST_PP_REPEAT1(M,P) M(0,P)
     #define BOOST_PP_REPEAT2(M,P) M(0,P) M(1,P)
    @@ -303,7 +293,6 @@ public:
     #define BOOST_PP_REPEAT4(M,P) BOOST_PP_REPEAT3(M,P) M(3,P)
     // ...
     
    -

    BOOST_PP_ENUM_PARAMS variations use BOOST_PP_REPEAT

    @@ -318,12 +307,10 @@ public: enable user configuration of code repetition based on need rather than some "reasonable" upper limit

    -
    -
    #ifndef MAKE_TYPE_LIST_MAX_LENGTH
    +
    #ifndef MAKE_TYPE_LIST_MAX_LENGTH
     #define MAKE_TYPE_LIST_MAX_LENGTH 8
     #endif
     
    -

    Now the user can configure the make_type_list primitive without modifying library code.

    @@ -332,8 +319,7 @@ enable user configuration of code repetition based on need rather than some Use BOOST_PP_REPEAT and a Token Look-Up Function to eliminate categorical repetition

    -
    -
    // CAVEAT: My compiler is not standard on arithmetic types.
    +
    // CAVEAT: My compiler is not standard on arithmetic types.
     #define ARITHMETIC_TYPE(I)  ARITHMETIC_TYPE##I
     #define ARITHMETIC_TYPE0    bool
     #define ARITHMETIC_TYPE1    char
    @@ -366,7 +352,6 @@ BOOST_PP_REPEAT
     
     // ...
     
    -

    NOTE: The repetition of the above example can be eliminated using template metaprogramming [Czarnecki] as well. However @@ -376,8 +361,7 @@ using template metaprogramming.

    EXAMPLE: Use BOOST_PP_REPEAT_2ND to avoid O(N*N) repetition

    -
    -
    #ifndef MAX_VEC_ARG_CNT
    +
    #ifndef MAX_VEC_ARG_CNT
     #define MAX_VEC_ARG_CNT 8
     #endif
     
    @@ -403,8 +387,6 @@ BOOST_PP_REPEAT_2ND
     
     // ...
     
    -
    -

    HOW: BOOST_PP_REPEAT_2ND is implemented separately, so it is possible to combine BOOST_PP_REPEAT and BOOST_PP_REPEAT_2ND.

    @@ -412,14 +394,12 @@ BOOST_PP_REPEAT_2ND

    EXAMPLE: Use BOOST_PP_IF to implement special case for the first element

    -
    -
    #define BOOST_PP_COMMA_IF(C)\
    +
    #define BOOST_PP_COMMA_IF(C)\
       BOOST_PP_IF(C,BOOST_PP_COMMA,BOOST_PP_EMPTY)()
     
     BOOST_PP_IF(0,true,false) == false;
     BOOST_PP_IF(1,true,false) == true;
     
    -

    BOOST_PP_IF enables convenient generation of lists using BOOST_PP_REPEAT.

    @@ -428,28 +408,27 @@ BOOST_PP_IF(1,true,false) == true; you have to make the other parameter a function-like macro, too. This can often be done using BOOST_PP_IDENTITY. Consider the following example (by Aleksey Gurtovoy):

    -
    -
    #define NUMBERED_EXPRESSION(I,X)\
    +
    +
    #define NUMBERED_EXPRESSION(I,X)\
       BOOST_PP_IF                   \
       ( I                           \
       , BOOST_PP_IDENTITY(X##I)     \
       , BOOST_PP_EMPTY              \
       )()
    -
    +

    NOTE: Like in the above implementation of COMMA_IF, the result of IF is often invoked and not the THEN and ELSE parameters. If the parameters were invoked, the code would not expand correctly, because the EMPTY parameter would get expanded to nothing before the IF would be properly expanded.

    HOW: BOOST_PP_IF is defined for the entire repeat range (pseudo code):

    -
    -
    #define BOOST_PP_IF(C,THEN,ELSE) BOOST_PP_IF##C(THEN,ELSE)
    +
    +
    #define BOOST_PP_IF(C,THEN,ELSE) BOOST_PP_IF##C(THEN,ELSE)
     #define BOOST_PP_IF0(THEN,ELSE) ELSE
     #define BOOST_PP_IF1(THEN,ELSE) THEN
     #define BOOST_PP_IF2(THEN,ELSE) THEN
     // ...
     
    -

    @@ -461,8 +440,7 @@ comparison operations on decimal integer literals in the range [0,BOOST_PP_LIMIT

    Suppose that you want to generate a numbered lists with a special element inserted at a desired position. For example: E0, E1, S, E2. Consider the following example:

    -
    -
    #define SPECIAL_NUMBERED_LIST(N,I,ELEM,SPECIAL)\
    +
    #define SPECIAL_NUMBERED_LIST(N,I,ELEM,SPECIAL)\
       BOOST_PP_ASSERT_MSG(BOOST_PP_LESS(I,N),BAD PARAMS FOR SPECIAL_NUMBERED_LIST!)\
       BOOST_PP_ENUM_PARAMS(I,ELEM)\
       BOOST_PP_COMMA_IF(I) SPECIAL\
    @@ -483,7 +461,6 @@ SPECIAL_NUMBERED_LIST(3,1,E,S)
     SPECIAL_NUMBERED_LIST(3,2,E,S)
     SPECIAL_NUMBERED_LIST(3,3,E,S)
     
    -

    Revised @@ -492,9 +469,9 @@ SPECIAL_NUMBERED_LIST(3,3,E,S)

    © Copyright Housemarque Oy 2002

    -

    Permission to copy, use, modify, sell and distribute this document is granted +

    Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

    +for any purpose.