![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
BOOST_PP_LIST_FOR_EACH_I_RBoost , ,
The BOOST_PP_LIST_FOR_EACH_I_R macro repeats a macro for each element in a list.
It reenters BOOST_PP_FOR with maximum efficiency.
Usage
BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list)
Arguments
Remarks
This macro is a repetition construct.
If list is (a, (b, (c, BOOST_PP_NIL))), it expands to the sequence:
macro(r, data, 0, a) macro(r, data, 1, b) macro(r, data, 2, c)
See AlsoRequirementsSample Code#include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/list/adt.hpp> #include <boost/preprocessor/list/for_each_i.hpp> #include <boost/preprocessor/repetition/for.hpp> #define LIST (x, (y, (z, BOOST_PP_NIL))) #define MACRO_2(r, data, i, elem) BOOST_PP_CAT(elem, i) #define PRED(r, state) BOOST_PP_LIST_IS_CONS(state) #define OP(r, state) BOOST_PP_LIST_REST(state) #define MACRO(r, state) [ BOOST_PP_LIST_FOR_EACH_I_R(r, MACRO_2, _, state) ] BOOST_PP_FOR(LIST, PRED, OP, MACRO) // expands to [x0 y1 z2] [y0 z1] [z0]
© Copyright Housemarque Oy 2002
© Copyright Paul Mensonides 2002
Распространяется в соответствии с лицензией Boost Software License, Version 1.0. (См. сопроводительный файл)LICENSE_1_0.txtили копия наwww.boost.org/LICENSE_1_0.txt Статья BOOST_PP_LIST_FOR_EACH_I_R раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |