RE: [boost] BOOST_PP_REPEAT with internal macro problem

Thanks all for your fast (and good) answers. Yossi "Paul Mensonides" <pmenso57@comcast. To: <boost@lists.boost.org> net> cc: Sent by: Subject: RE: [boost] BOOST_PP_REPEAT with internal macro problem boost-bounces@list s.boost.org 07/15/2004 07:00 Please respond to boost
-----Original Message----- [mailto:boost-bounces@lists.boost.org] On Behalf Of
BOOST_PP_REPEAT works great for me when used like:
#define MAX 5 #define CODE my_code_goes_here BOOST_PP_REPEAT(MAX, CODE, ) ^^ Passing nothing as a macro argument is undefined in C++. You should use a dummie argument instead--preferably not an identifier. I usually use ~ or ?.
But it gets confused when used like:
#define MAX (4+1)
Arkadiy is correct. The library cannot understand the expression (4+1). It can only understand unadorned integer literals (such as 1, 2, 3, etc.) from 0 to 256. If you need to do arithmetic, you have to use the arithmetic primitives of the library, such as BOOST_PP_ADD or, in this case, BOOST_PP_INC (which is more efficient). Thus, if you want to do a repetition of MAX + 1, you need to say: BOOST_PP_REPEAT(BOOST_PP_INC(MAX), CODE, ~) Regards, Paul Mensonides _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (1)
-
Yossi.Itzkovich@ecitele.com