mirror of
https://github.com/boostorg/preprocessor.git
synced 2025-07-16 14:02:17 +02:00
Added BOOST_PP_LIST_FOR_EACH_I
[SVN r12928]
This commit is contained in:
@ -57,6 +57,8 @@ BOOST_PP_LIST_FOLD_RIGHT_D
|
|||||||
BOOST_PP_LIST_FOLD_RIGHT_2ND
|
BOOST_PP_LIST_FOLD_RIGHT_2ND
|
||||||
BOOST_PP_LIST_FOLD_RIGHT_2ND_D
|
BOOST_PP_LIST_FOLD_RIGHT_2ND_D
|
||||||
BOOST_PP_LIST_FOR_EACH
|
BOOST_PP_LIST_FOR_EACH
|
||||||
|
BOOST_PP_LIST_FOR_EACH_I
|
||||||
|
BOOST_PP_LIST_FOR_EACH_I_R
|
||||||
BOOST_PP_LIST_FOR_EACH_R
|
BOOST_PP_LIST_FOR_EACH_R
|
||||||
BOOST_PP_LIST_FOR_EACH_PRODUCT
|
BOOST_PP_LIST_FOR_EACH_PRODUCT
|
||||||
BOOST_PP_LIST_FOR_EACH_PRODUCT_R
|
BOOST_PP_LIST_FOR_EACH_PRODUCT_R
|
||||||
|
@ -80,6 +80,8 @@
|
|||||||
<dt><a href="list_fold_right_2nd.htm#BOOST_PP_LIST_FOLD_RIGHT_2ND_D">BOOST_PP_LIST_FOLD_RIGHT_2ND_D</a></dt>
|
<dt><a href="list_fold_right_2nd.htm#BOOST_PP_LIST_FOLD_RIGHT_2ND_D">BOOST_PP_LIST_FOLD_RIGHT_2ND_D</a></dt>
|
||||||
<dt><a href="list_fold_right.htm#BOOST_PP_LIST_FOLD_RIGHT_D">BOOST_PP_LIST_FOLD_RIGHT_D</a></dt>
|
<dt><a href="list_fold_right.htm#BOOST_PP_LIST_FOLD_RIGHT_D">BOOST_PP_LIST_FOLD_RIGHT_D</a></dt>
|
||||||
<dt><a href="list_for_each.htm#BOOST_PP_LIST_FOR_EACH">BOOST_PP_LIST_FOR_EACH</a></dt>
|
<dt><a href="list_for_each.htm#BOOST_PP_LIST_FOR_EACH">BOOST_PP_LIST_FOR_EACH</a></dt>
|
||||||
|
<dt><a href="list_for_each_i.htm#BOOST_PP_LIST_FOR_EACH_I">BOOST_PP_LIST_FOR_EACH_I</a></dt>
|
||||||
|
<dt><a href="list_for_each_i.htm#BOOST_PP_LIST_FOR_EACH_I_R">BOOST_PP_LIST_FOR_EACH_I_R</a></dt>
|
||||||
<dt><a href="list_for_each_product.htm#BOOST_PP_LIST_FOR_EACH_PRODUCT">BOOST_PP_LIST_FOR_EACH_PRODUCT</a></dt>
|
<dt><a href="list_for_each_product.htm#BOOST_PP_LIST_FOR_EACH_PRODUCT">BOOST_PP_LIST_FOR_EACH_PRODUCT</a></dt>
|
||||||
<dt><a href="list_for_each_product.htm#BOOST_PP_LIST_FOR_EACH_PRODUCT_R">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a></dt>
|
<dt><a href="list_for_each_product.htm#BOOST_PP_LIST_FOR_EACH_PRODUCT_R">BOOST_PP_LIST_FOR_EACH_PRODUCT_R</a></dt>
|
||||||
<dt><a href="list_for_each.htm#BOOST_PP_LIST_FOR_EACH_R">BOOST_PP_LIST_FOR_EACH_R</a></dt>
|
<dt><a href="list_for_each.htm#BOOST_PP_LIST_FOR_EACH_R">BOOST_PP_LIST_FOR_EACH_R</a></dt>
|
||||||
@ -212,6 +214,7 @@
|
|||||||
<dt>#include <<a href="list_fold_right.htm">boost/preprocessor/list/fold_right.hpp</a>></dt>
|
<dt>#include <<a href="list_fold_right.htm">boost/preprocessor/list/fold_right.hpp</a>></dt>
|
||||||
<dt>#include <<a href="list_fold_right_2nd.htm">boost/preprocessor/list/fold_right_2nd.hpp</a>></dt>
|
<dt>#include <<a href="list_fold_right_2nd.htm">boost/preprocessor/list/fold_right_2nd.hpp</a>></dt>
|
||||||
<dt>#include <<a href="list_for_each.htm">boost/preprocessor/list/for_each.hpp</a>></dt>
|
<dt>#include <<a href="list_for_each.htm">boost/preprocessor/list/for_each.hpp</a>></dt>
|
||||||
|
<dt>#include <<a href="list_for_each_i.htm">boost/preprocessor/list/for_each_i.hpp</a>></dt>
|
||||||
<dt>#include <<a href="list_for_each_product.htm">boost/preprocessor/list/for_each_product.hpp</a>></dt>
|
<dt>#include <<a href="list_for_each_product.htm">boost/preprocessor/list/for_each_product.hpp</a>></dt>
|
||||||
<dt>#include <<a href="list_rest_n.htm">boost/preprocessor/list/rest_n.hpp</a>></dt>
|
<dt>#include <<a href="list_rest_n.htm">boost/preprocessor/list/rest_n.hpp</a>></dt>
|
||||||
<dt>#include <<a href="list_reverse.htm">boost/preprocessor/list/reverse.hpp</a>></dt>
|
<dt>#include <<a href="list_reverse.htm">boost/preprocessor/list/reverse.hpp</a>></dt>
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<h3>Uses</h3>
|
<h3>Uses</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>()</li>
|
<li><a href="list_for_each_i.htm#BOOST_PP_LIST_FOR_EACH_I">BOOST_PP_LIST_FOR_EACH_I</a>()</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a href="list_fold_right_2nd.htm">Prev</a> <a href="list_for_each_product.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
<a href="list_fold_right_2nd.htm">Prev</a> <a href="list_for_each_i.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h1>#include <<a href="../../../../boost/preprocessor/list/for_each.hpp">boost/preprocessor/list/for_each.hpp</a>></h1>
|
<h1>#include <<a href="../../../../boost/preprocessor/list/for_each.hpp">boost/preprocessor/list/for_each.hpp</a>></h1>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
<h3>Uses</h3>
|
<h3>Uses</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>()</li>
|
<li><a href="list_for_each_i.htm#BOOST_PP_LIST_FOR_EACH_I">BOOST_PP_LIST_FOR_EACH_I</a>()</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Test</h3>
|
<h3>Test</h3>
|
||||||
@ -60,7 +60,7 @@
|
|||||||
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a href="list_fold_right_2nd.htm">Prev</a> <a href="list_for_each_product.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
<a href="list_fold_right_2nd.htm">Prev</a> <a href="list_for_each_i.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" --></p>
|
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" --></p>
|
||||||
|
65
doc/reference/list_for_each_i.htm
Normal file
65
doc/reference/list_for_each_i.htm
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||||
|
<title>Boost.Preprocessor - Reference</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" link="#0000ff" vlink="#800080">
|
||||||
|
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
|
||||||
|
"header">
|
||||||
|
<tr>
|
||||||
|
<td valign="top" width="300">
|
||||||
|
<h3><a href="../../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../../c++boost.gif" border="0"></a></h3>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<h1 align="center">Boost.Preprocessor</h1>
|
||||||
|
<h2 align="center">Reference</h2>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<a href="list_for_each.htm">Prev</a> <a href="list_for_each_product.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h1>#include <<a href="../../../../boost/preprocessor/list/for_each_i.hpp">boost/preprocessor/list/for_each_i.hpp</a>></h1>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h2><a name="BOOST_PP_LIST_FOR_EACH_I">#define BOOST_PP_LIST_FOR_EACH_I</a>(F,P,L)</h2>
|
||||||
|
<p>Repeats <code>F(R,P,I,<a href="list_at.htm#BOOST_PP_LIST_AT">BOOST_PP_LIST_AT</a>(L,I))</code> for each I = [0,
|
||||||
|
<a href="list_size.htm#BOOST_PP_LIST_SIZE">BOOST_PP_LIST_SIZE</a>(L)[.</p>
|
||||||
|
|
||||||
|
<p>In other words, expands to the sequence:</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
F(R,P,0,<a href="list_at.htm#BOOST_PP_LIST_AT">BOOST_PP_LIST_AT</a>(L,0))
|
||||||
|
F(R,P,1,<a href="list_at.htm#BOOST_PP_LIST_AT">BOOST_PP_LIST_AT</a>(L,1))
|
||||||
|
...
|
||||||
|
F(R,P,<a href="dec.htm#BOOST_PP_DEC">BOOST_PP_DEC</a>(<a href="list_size.htm#BOOST_PP_LIST_SIZE">BOOST_PP_LIST_SIZE</a>(L)),<a href="list_at.htm#BOOST_PP_LIST_AT">BOOST_PP_LIST_AT</a>(L,<a href="dec.htm#BOOST_PP_DEC">BOOST_PP_DEC</a>(<a href="list_size.htm#BOOST_PP_LIST_SIZE">BOOST_PP_LIST_SIZE</a>(L))))
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Uses</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>()</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h2><a name="BOOST_PP_LIST_FOR_EACH_I_R">#define BOOST_PP_LIST_FOR_EACH_I_R</a>(R,F,P,L)</h2>
|
||||||
|
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<a href="list_for_each.htm">Prev</a> <a href="list_for_each_product.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" --></p>
|
||||||
|
|
||||||
|
<p><i>© Copyright <a href="http://www.housemarque.com">Housemarque Oy</a> 2002</i></p>
|
||||||
|
|
||||||
|
<p><i>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.</i></p>
|
||||||
|
|
||||||
|
</body></html>
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a href="list_for_each.htm">Prev</a> <a href="list_rest_n.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
<a href="list_for_each_i.htm">Prev</a> <a href="list_rest_n.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h1>#include <<a href="../../../../boost/preprocessor/list/for_each_product.hpp">boost/preprocessor/list/for_each_product.hpp</a>></h1>
|
<h1>#include <<a href="../../../../boost/preprocessor/list/for_each_product.hpp">boost/preprocessor/list/for_each_product.hpp</a>></h1>
|
||||||
@ -55,7 +55,7 @@ explosion.</p>
|
|||||||
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<a href="list_for_each.htm">Prev</a> <a href="list_rest_n.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
<a href="list_for_each_i.htm">Prev</a> <a href="list_rest_n.htm">Next</a> <a href="index.htm#Macros">Macros</a> <a href="index.htm#Headers">Headers</a>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" --></p>
|
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" --></p>
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2><a name="BOOST_PP_LIST_TO_TUPLE_R">#define BOOST_PP_LIST_TO_TUPLE_R</a>(D,L)</h2>
|
<h2><a name="BOOST_PP_LIST_TO_TUPLE_R">#define BOOST_PP_LIST_TO_TUPLE_R</a>(R,L)</h2>
|
||||||
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
<p>Can be used inside <a href="for.htm#BOOST_PP_FOR">BOOST_PP_FOR</a>().</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
@ -13,10 +13,8 @@
|
|||||||
* See http://www.boost.org for most recent version.
|
* See http://www.boost.org for most recent version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <boost/preprocessor/comma.hpp>
|
#include <boost/preprocessor/comma_if.hpp>
|
||||||
#include <boost/preprocessor/empty.hpp>
|
#include <boost/preprocessor/list/for_each_i.hpp>
|
||||||
#include <boost/preprocessor/for.hpp>
|
|
||||||
#include <boost/preprocessor/list/adt.hpp>
|
|
||||||
|
|
||||||
/** <p>Converts the list to a comma separated list.</p>
|
/** <p>Converts the list to a comma separated list.</p>
|
||||||
|
|
||||||
@ -34,14 +32,12 @@
|
|||||||
|
|
||||||
<h3>Uses</h3>
|
<h3>Uses</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>BOOST_PP_FOR()</li>
|
<li>BOOST_PP_LIST_FOR_EACH_I()</li>
|
||||||
</ul>
|
</ul>
|
||||||
*/
|
*/
|
||||||
#define BOOST_PP_LIST_ENUM(L) BOOST_PP_LIST_ENUM_R(0,L)
|
#define BOOST_PP_LIST_ENUM(L) BOOST_PP_LIST_ENUM_R(0,L)
|
||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
||||||
#define BOOST_PP_LIST_ENUM_R(R,L) BOOST_PP_FOR##R((L,BOOST_PP_EMPTY),BOOST_PP_LIST_ENUM_C,BOOST_PP_LIST_ENUM_F,BOOST_PP_LIST_ENUM_I)
|
#define BOOST_PP_LIST_ENUM_R(R,L) BOOST_PP_LIST_FOR_EACH_I_R(R,BOOST_PP_LIST_ENUM_F,_,L)
|
||||||
#define BOOST_PP_LIST_ENUM_C(R,P) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(2,0,P))
|
#define BOOST_PP_LIST_ENUM_F(R,_,I,X) BOOST_PP_COMMA_IF(I) X
|
||||||
#define BOOST_PP_LIST_ENUM_F(R,P) (BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(2,0,P)),BOOST_PP_COMMA)
|
|
||||||
#define BOOST_PP_LIST_ENUM_I(R,P) BOOST_PP_TUPLE_ELEM(2,1,P)() BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(2,0,P))
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -13,8 +13,7 @@
|
|||||||
* See http://www.boost.org for most recent version.
|
* See http://www.boost.org for most recent version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <boost/preprocessor/list/adt.hpp>
|
#include <boost/preprocessor/list/for_each_i.hpp>
|
||||||
#include <boost/preprocessor/for.hpp>
|
|
||||||
|
|
||||||
/** <p>Repeats <code>F(R,P,BOOST_PP_LIST_AT(L,I))</code> for each I = [0,
|
/** <p>Repeats <code>F(R,P,BOOST_PP_LIST_AT(L,I))</code> for each I = [0,
|
||||||
BOOST_PP_LIST_SIZE(L)[.</p>
|
BOOST_PP_LIST_SIZE(L)[.</p>
|
||||||
@ -35,7 +34,7 @@ BOOST_PP_LIST_SIZE(L)[.</p>
|
|||||||
|
|
||||||
<h3>Uses</h3>
|
<h3>Uses</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>BOOST_PP_FOR()</li>
|
<li>BOOST_PP_LIST_FOR_EACH_I()</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Test</h3>
|
<h3>Test</h3>
|
||||||
@ -46,8 +45,6 @@ BOOST_PP_LIST_SIZE(L)[.</p>
|
|||||||
#define BOOST_PP_LIST_FOR_EACH(F,P,L) BOOST_PP_LIST_FOR_EACH_R(0,F,P,L)
|
#define BOOST_PP_LIST_FOR_EACH(F,P,L) BOOST_PP_LIST_FOR_EACH_R(0,F,P,L)
|
||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
||||||
#define BOOST_PP_LIST_FOR_EACH_R(R,F,P,L) BOOST_PP_FOR##R((F,P,L),BOOST_PP_LIST_FOR_EACH_C,BOOST_PP_LIST_FOR_EACH_F,BOOST_PP_LIST_FOR_EACH_I)
|
#define BOOST_PP_LIST_FOR_EACH_R(R,F,P,L) BOOST_PP_LIST_FOR_EACH_I_R(R,BOOST_PP_LIST_FOR_EACH_F,(F,P),L)
|
||||||
#define BOOST_PP_LIST_FOR_EACH_C(R,FPL) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(3,2,FPL))
|
#define BOOST_PP_LIST_FOR_EACH_F(R,FP,I,X) BOOST_PP_TUPLE_ELEM(2,0,FP)(R,BOOST_PP_TUPLE_ELEM(2,1,FP),X)
|
||||||
#define BOOST_PP_LIST_FOR_EACH_F(R,FPL) (BOOST_PP_TUPLE_ELEM(3,0,FPL),BOOST_PP_TUPLE_ELEM(3,1,FPL),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(3,2,FPL)))
|
|
||||||
#define BOOST_PP_LIST_FOR_EACH_I(R,FPL) BOOST_PP_TUPLE_ELEM(3,0,FPL)(R,BOOST_PP_TUPLE_ELEM(3,1,FPL),BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(3,2,FPL)))
|
|
||||||
#endif
|
#endif
|
||||||
|
44
include/boost/preprocessor/list/for_each_i.hpp
Normal file
44
include/boost/preprocessor/list/for_each_i.hpp
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#ifndef BOOST_PREPROCESSOR_LIST_FOR_EACH_I_HPP
|
||||||
|
#define BOOST_PREPROCESSOR_LIST_FOR_EACH_I_HPP
|
||||||
|
|
||||||
|
/* Copyright (C) 2002
|
||||||
|
* Housemarque Oy
|
||||||
|
* http://www.housemarque.com
|
||||||
|
*
|
||||||
|
* Permission to copy, use, modify, sell and distribute this software is
|
||||||
|
* granted provided this copyright notice appears in all copies. This
|
||||||
|
* software is provided "as is" without express or implied warranty, and
|
||||||
|
* with no claim as to its suitability for any purpose.
|
||||||
|
*
|
||||||
|
* See http://www.boost.org for most recent version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <boost/preprocessor/list/adt.hpp>
|
||||||
|
#include <boost/preprocessor/inc.hpp>
|
||||||
|
#include <boost/preprocessor/for.hpp>
|
||||||
|
|
||||||
|
/** <p>Repeats <code>F(R,P,I,BOOST_PP_LIST_AT(L,I))</code> for each I = [0,
|
||||||
|
BOOST_PP_LIST_SIZE(L)[.</p>
|
||||||
|
|
||||||
|
<p>In other words, expands to the sequence:</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
F(R,P,0,BOOST_PP_LIST_AT(L,0))
|
||||||
|
F(R,P,1,BOOST_PP_LIST_AT(L,1))
|
||||||
|
...
|
||||||
|
F(R,P,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(L)),BOOST_PP_LIST_AT(L,BOOST_PP_DEC(BOOST_PP_LIST_SIZE(L))))
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Uses</h3>
|
||||||
|
<ul>
|
||||||
|
<li>BOOST_PP_FOR()</li>
|
||||||
|
</ul>
|
||||||
|
*/
|
||||||
|
#define BOOST_PP_LIST_FOR_EACH_I(F,P,L) BOOST_PP_LIST_FOR_EACH_I_R(0,F,P,L)
|
||||||
|
|
||||||
|
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
||||||
|
#define BOOST_PP_LIST_FOR_EACH_I_R(R,F,P,L) BOOST_PP_FOR##R((F,P,L,0),BOOST_PP_LIST_FOR_EACH_I_C,BOOST_PP_LIST_FOR_EACH_I_F,BOOST_PP_LIST_FOR_EACH_I_I)
|
||||||
|
#define BOOST_PP_LIST_FOR_EACH_I_C(R,FPLI) BOOST_PP_TUPLE_ELEM(3,2,BOOST_PP_TUPLE_ELEM(4,2,FPLI))
|
||||||
|
#define BOOST_PP_LIST_FOR_EACH_I_F(R,FPLI) (BOOST_PP_TUPLE_ELEM(4,0,FPLI),BOOST_PP_TUPLE_ELEM(4,1,FPLI),BOOST_PP_TUPLE_ELEM(3,1,BOOST_PP_TUPLE_ELEM(4,2,FPLI)),BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4,3,FPLI)))
|
||||||
|
#define BOOST_PP_LIST_FOR_EACH_I_I(R,FPLI) BOOST_PP_TUPLE_ELEM(4,0,FPLI)(R,BOOST_PP_TUPLE_ELEM(4,1,FPLI),BOOST_PP_TUPLE_ELEM(4,3,FPLI),BOOST_PP_TUPLE_ELEM(3,0,BOOST_PP_TUPLE_ELEM(4,2,FPLI)))
|
||||||
|
#endif
|
@ -44,5 +44,5 @@
|
|||||||
#define BOOST_PP_LIST_TO_TUPLE(L) BOOST_PP_LIST_TO_TUPLE_R(0,L)
|
#define BOOST_PP_LIST_TO_TUPLE(L) BOOST_PP_LIST_TO_TUPLE_R(0,L)
|
||||||
|
|
||||||
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
/** <p>Can be used inside BOOST_PP_FOR().</p> */
|
||||||
#define BOOST_PP_LIST_TO_TUPLE_R(D,L) (BOOST_PP_LIST_ENUM_R(D,L))
|
#define BOOST_PP_LIST_TO_TUPLE_R(R,L) (BOOST_PP_LIST_ENUM_R(R,L))
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user