forked from boostorg/preprocessor
pre
[SVN r13974]
This commit is contained in:
@ -32,18 +32,18 @@
|
||||
BOOST_PP_LIST_CONS(). For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_CONS(1,
|
||||
BOOST_PP_LIST_CONS(2,
|
||||
BOOST_PP_LIST_CONS(3,
|
||||
BOOST_PP_LIST_CONS(4,
|
||||
BOOST_PP_LIST_CONS(5,
|
||||
BOOST_PP_LIST_NIL)))))
|
||||
BOOST_PP_LIST_CONS(1,
|
||||
BOOST_PP_LIST_CONS(2,
|
||||
BOOST_PP_LIST_CONS(3,
|
||||
BOOST_PP_LIST_CONS(4,
|
||||
BOOST_PP_LIST_CONS(5,
|
||||
BOOST_PP_LIST_NIL)))))
|
||||
</pre>
|
||||
|
||||
<p>Short lists can also be build from tuples:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5))
|
||||
BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5))
|
||||
</pre>
|
||||
|
||||
<p>Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5.</p>
|
||||
@ -52,16 +52,16 @@ BOOST_PP_LIST_CONS(). For example,</p>
|
||||
and BOOST_PP_LIST_FOLD_RIGHT_2ND():</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_FOLD_RIGHT_2ND
|
||||
( BOOST_PP_LIST_APPEND_D
|
||||
, BOOST_PP_TUPLE_TO_LIST
|
||||
( N
|
||||
, BOOST_PP_TUPLE_TO_LIST(M, (E11, E12, ..., E1M) )
|
||||
, BOOST_PP_TUPLE_TO_LIST(M, (E21, E22, ..., E2M) )
|
||||
, ...
|
||||
, BOOST_PP_TUPLE_TO_LIST(M, (EN1, EN2, ..., ENM) )
|
||||
)
|
||||
BOOST_PP_LIST_FOLD_RIGHT_2ND
|
||||
( BOOST_PP_LIST_APPEND_D
|
||||
, BOOST_PP_TUPLE_TO_LIST
|
||||
( N
|
||||
, BOOST_PP_TUPLE_TO_LIST(M, (E11, E12, ..., E1M) )
|
||||
, BOOST_PP_TUPLE_TO_LIST(M, (E21, E22, ..., E2M) )
|
||||
, ...
|
||||
, BOOST_PP_TUPLE_TO_LIST(M, (EN1, EN2, ..., ENM) )
|
||||
)
|
||||
)
|
||||
</pre>
|
||||
*/
|
||||
#define BOOST_PP_LIST_CONS(FIRST,REST) (FIRST,REST,1)
|
||||
@ -88,7 +88,7 @@ and BOOST_PP_LIST_FOLD_RIGHT_2ND():</p>
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5)))
|
||||
BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5)))
|
||||
</pre>
|
||||
|
||||
<p>expands to 1.</p>
|
||||
@ -106,13 +106,13 @@ and BOOST_PP_LIST_FOLD_RIGHT_2ND():</p>
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_REST(BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5)))
|
||||
BOOST_PP_LIST_REST(BOOST_PP_TUPLE_TO_LIST(5,(1,2,3,4,5)))
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(4,(2,3,4,5))
|
||||
BOOST_PP_TUPLE_TO_LIST(4,(2,3,4,5))
|
||||
</pre>
|
||||
*/
|
||||
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
|
||||
|
@ -20,16 +20,16 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_APPEND
|
||||
( BOOST_PP_TUPLE_TO_LIST(2,(1,2))
|
||||
, BOOST_PP_TUPLE_TO_LIST(2,(3,4))
|
||||
)
|
||||
BOOST_PP_LIST_APPEND
|
||||
( BOOST_PP_TUPLE_TO_LIST(2,(1,2))
|
||||
, BOOST_PP_TUPLE_TO_LIST(2,(3,4))
|
||||
)
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(4,(1,2,3,4))
|
||||
BOOST_PP_TUPLE_TO_LIST(4,(1,2,3,4))
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -21,7 +21,7 @@ first element is at index <code>0</code>.</p>
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)),1)
|
||||
BOOST_PP_LIST_AT(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)),1)
|
||||
</pre>
|
||||
|
||||
<p>expands to <code>B</code>.</p>
|
||||
|
@ -21,13 +21,13 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
|
||||
BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
123
|
||||
123
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -21,13 +21,13 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_ENUM(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
BOOST_PP_LIST_ENUM(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
A,B,C
|
||||
A,B,C
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -21,13 +21,13 @@ for which <code>PRED(D,DATA,X)</code> is true.</p>
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_FILTER(BOOST_PP_NOT_EQUAL_D,2,BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
|
||||
BOOST_PP_LIST_FILTER(BOOST_PP_NOT_EQUAL_D,2,BOOST_PP_TUPLE_TO_LIST(3,(1,2,3)))
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(1,3))
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(1,3))
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -23,13 +23,13 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_FIRST_N(2,BOOST_PP_TUPLE_TO_LIST(4,(+,-,*,/)))
|
||||
BOOST_PP_LIST_FIRST_N(2,BOOST_PP_TUPLE_TO_LIST(4,(+,-,*,/)))
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(+,-))
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(+,-))
|
||||
</pre>
|
||||
|
||||
<h3>See</h3>
|
||||
|
@ -22,24 +22,24 @@ list <code>LIST</code> (from the left or the start of the list).</p>
|
||||
<p>In other words, expands to:</p>
|
||||
|
||||
<pre>
|
||||
OP
|
||||
( D
|
||||
, ... OP(D, OP(D,STATE,BOOST_PP_LIST_AT(LIST,0)), BOOST_PP_LIST_AT(LIST,1)) ...
|
||||
, BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST))
|
||||
)
|
||||
OP
|
||||
( D
|
||||
, ... OP(D, OP(D,STATE,BOOST_PP_LIST_AT(LIST,0)), BOOST_PP_LIST_AT(LIST,1)) ...
|
||||
, BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST))
|
||||
)
|
||||
</pre>
|
||||
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
#define TEST(D,STATE,X) BOOST_PP_CAT(STATE,X)
|
||||
BOOST_PP_LIST_FOLD_LEFT(TEST,_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
#define TEST(D,STATE,X) BOOST_PP_CAT(STATE,X)
|
||||
BOOST_PP_LIST_FOLD_LEFT(TEST,_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
_ABC
|
||||
_ABC
|
||||
</pre>
|
||||
|
||||
<h3>Note</h3>
|
||||
|
@ -21,32 +21,32 @@ list <code>LIST</code> (from the right or the end of the list).</p>
|
||||
<p>In other words, expands to:</p>
|
||||
|
||||
<pre>
|
||||
OP
|
||||
( D
|
||||
, BOOST_PP_LIST_AT(LIST,0)
|
||||
, ... OP
|
||||
OP
|
||||
( D
|
||||
, BOOST_PP_LIST_AT(LIST,0)
|
||||
, ... OP
|
||||
( D
|
||||
, BOOST_PP_LIST_AT(LIST,BOOST_PP_SUB(BOOST_PP_LIST_SIZE(LIST),2))
|
||||
, OP
|
||||
( D
|
||||
, BOOST_PP_LIST_AT(LIST,BOOST_PP_SUB(BOOST_PP_LIST_SIZE(LIST),2))
|
||||
, OP
|
||||
( D
|
||||
, BOOST_PP_LIST_AT(LIST,BOOST_PP_SUB(BOOST_PP_LIST_SIZE(LIST),1))
|
||||
, STATE
|
||||
)
|
||||
) ...
|
||||
)
|
||||
, BOOST_PP_LIST_AT(LIST,BOOST_PP_SUB(BOOST_PP_LIST_SIZE(LIST),1))
|
||||
, STATE
|
||||
)
|
||||
) ...
|
||||
)
|
||||
</pre>
|
||||
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
#define TEST(D,X,STATE) BOOST_PP_CAT(STATE,X)
|
||||
BOOST_PP_LIST_FOLD_RIGHT(TEST,_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
#define TEST(D,X,STATE) BOOST_PP_CAT(STATE,X)
|
||||
BOOST_PP_LIST_FOLD_RIGHT(TEST,_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
_CBA
|
||||
_CBA
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -21,23 +21,23 @@ BOOST_PP_LIST_SIZE(LIST)).</p>
|
||||
<p>In other words, expands to the sequence:</p>
|
||||
|
||||
<pre>
|
||||
MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,0))
|
||||
MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,1))
|
||||
...
|
||||
MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST))))
|
||||
MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,0))
|
||||
MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,1))
|
||||
...
|
||||
MACRO(R,DATA,BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST))))
|
||||
</pre>
|
||||
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
#define TEST(R,DATA,X) BOOST_PP_CAT(DATA,X)();
|
||||
BOOST_PP_LIST_FOR_EACH(TEST,prefix_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
#define TEST(R,DATA,X) BOOST_PP_CAT(DATA,X)();
|
||||
BOOST_PP_LIST_FOR_EACH(TEST,prefix_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
prefix_A(); prefix_B(); prefix_C();
|
||||
prefix_A(); prefix_B(); prefix_C();
|
||||
</pre>
|
||||
|
||||
<h3>Example</h3>
|
||||
|
@ -23,23 +23,23 @@ BOOST_PP_LIST_SIZE(LIST)).</p>
|
||||
<p>In other words, expands to the sequence:</p>
|
||||
|
||||
<pre>
|
||||
MACRO(R,DATA,0,BOOST_PP_LIST_AT(LIST,0))
|
||||
MACRO(R,DATA,1,BOOST_PP_LIST_AT(LIST,1))
|
||||
...
|
||||
MACRO(R,DATA,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST)),BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST))))
|
||||
MACRO(R,DATA,0,BOOST_PP_LIST_AT(LIST,0))
|
||||
MACRO(R,DATA,1,BOOST_PP_LIST_AT(LIST,1))
|
||||
...
|
||||
MACRO(R,DATA,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST)),BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST))))
|
||||
</pre>
|
||||
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
#define TEST(R,DATA,INDEX,X) BOOST_PP_CAT(DATA,X)(INDEX);
|
||||
BOOST_PP_LIST_FOR_EACH_I(TEST,prefix_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
#define TEST(R,DATA,INDEX,X) BOOST_PP_CAT(DATA,X)(INDEX);
|
||||
BOOST_PP_LIST_FOR_EACH_I(TEST,prefix_,BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
prefix_A(0); prefix_B(1); prefix_C(2);
|
||||
prefix_A(0); prefix_B(1); prefix_C(2);
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -28,20 +28,20 @@ explosion.</p>
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
#define TEST(R,X) X
|
||||
BOOST_PP_LIST_FOR_EACH_PRODUCT
|
||||
( TEST
|
||||
, 2
|
||||
, ( BOOST_PP_TUPLE_TO_LIST(3,(A,B,C))
|
||||
, BOOST_PP_TUPLE_TO_LIST(2,(1,2))
|
||||
)
|
||||
#define TEST(R,X) X
|
||||
BOOST_PP_LIST_FOR_EACH_PRODUCT
|
||||
( TEST
|
||||
, 2
|
||||
, ( BOOST_PP_TUPLE_TO_LIST(3,(A,B,C))
|
||||
, BOOST_PP_TUPLE_TO_LIST(2,(1,2))
|
||||
)
|
||||
)
|
||||
</pre>
|
||||
|
||||
<p>expands to:</p>
|
||||
|
||||
<pre>
|
||||
(A,1) (A,2) (B,1) (B,2) (C,1) (C,2)
|
||||
(A,1) (A,2) (B,1) (B,2) (C,1) (C,2)
|
||||
</pre>
|
||||
|
||||
<h3>Example</h3>
|
||||
|
@ -23,13 +23,13 @@ list <code>LIST</code>.</p>
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_REST_N(2,BOOST_PP_TUPLE_TO_LIST(4,(+,-,*,/)))
|
||||
BOOST_PP_LIST_REST_N(2,BOOST_PP_TUPLE_TO_LIST(4,(+,-,*,/)))
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(*,/))
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(*,/))
|
||||
</pre>
|
||||
|
||||
<h3>See</h3>
|
||||
|
@ -20,13 +20,13 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_REVERSE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
BOOST_PP_LIST_REVERSE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(3,(C,B,A))
|
||||
BOOST_PP_TUPLE_TO_LIST(3,(C,B,A))
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
@ -21,7 +21,7 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
BOOST_PP_LIST_SIZE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to <code>3</code>.</p>
|
||||
|
@ -20,7 +20,7 @@
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_TO_TUPLE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
BOOST_PP_LIST_TO_TUPLE(BOOST_PP_TUPLE_TO_LIST(3,(A,B,C)))
|
||||
</pre>
|
||||
|
||||
<p>expands to <code>(A,B,C)</code>.</p>
|
||||
|
@ -21,23 +21,23 @@ of the list producing a new list.</p>
|
||||
<p>In other words, expands to:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_CONS(OP(D,DATA,BOOST_PP_LIST_AT(LIST,0)),
|
||||
BOOST_PP_LIST_CONS(OP(D,DATA,BOOST_PP_LIST_AT(LIST,1)),
|
||||
...
|
||||
BOOST_PP_LIST_CONS(OP(D,DATA,BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST)))),
|
||||
BOOST_PP_LIST_NIL) ... ))
|
||||
BOOST_PP_LIST_CONS(OP(D,DATA,BOOST_PP_LIST_AT(LIST,0)),
|
||||
BOOST_PP_LIST_CONS(OP(D,DATA,BOOST_PP_LIST_AT(LIST,1)),
|
||||
...
|
||||
BOOST_PP_LIST_CONS(OP(D,DATA,BOOST_PP_LIST_AT(LIST,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(LIST)))),
|
||||
BOOST_PP_LIST_NIL) ... ))
|
||||
</pre>
|
||||
|
||||
<p>For example,</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,BOOST_PP_TUPLE_TO_LIST(2,(1,2)))
|
||||
BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D,2,BOOST_PP_TUPLE_TO_LIST(2,(1,2)))
|
||||
</pre>
|
||||
|
||||
<p>expands to the same as:</p>
|
||||
|
||||
<pre>
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(3,4))
|
||||
BOOST_PP_TUPLE_TO_LIST(2,(3,4))
|
||||
</pre>
|
||||
|
||||
<h3>Uses</h3>
|
||||
|
Reference in New Issue
Block a user