Hello,
I have written this code to return 2 to the
power x.
#include
<boost/preprocessor/repetition/for.hpp>
#include
<boost/preprocessor/seq/size.hpp>
#include
<boost/preprocessor/arithmetic/add.hpp>
#include
<boost/preprocessor/arithmetic/sub.hpp>
#include
<boost/preprocessor/arithmetic/mul.hpp>
#include
<boost/preprocessor/tuple/elem.hpp>
#include
<boost/preprocessor/seq/elem.hpp>
#define PRED(r,state) BOOST_PP_TUPLE_ELEM(2, 1,
state)
#define OP(r,state)
(BOOST_PP_MUL(BOOST_PP_TUPLE_ELEM(2, 0, state), 2),
BOOST_PP_SUB(BOOST_PP_TUPLE_ELEM(2, 1, state), 1))
#define MACRO(r,state) (state)
#define POWERSEQ(x) BOOST_PP_FOR((2,x), PRED, OP,
MACRO)
#define LAST_TUPLE(x)
BOOST_PP_SEQ_ELEM(BOOST_PP_SUB(BOOST_PP_SEQ_SIZE(POWERSEQ(x)),1),
POWERSEQ(x))
#define POWER2(x) BOOST_PP_TUPLE_ELEM(2, 0,
LAST_TUPLE(x))
POWER2(6)
I have to generate some sequence and take the last
element of it and then extract the result.
I didn't find such a macro already in
PP.
My code seems a bit too complicated.
Is there a more trivial way to do
this?
rds,