1から10まで足すんだって、プリプロセッサで

ネタ元:http://d.hatena.ne.jp/RiSK/20090930/1254307989
同じ方法でやっても面白くないので、なんか違うアプローチをとってみました。


#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
#include <boost/preprocessor/seq/size.hpp>

#define PAREN_I(z, n, d) BOOST_PP_REPEAT(n, PAREN_II, _)
#define PAREN_II(a, b, c) ()

BOOST_PP_SEQ_SIZE(BOOST_PP_REPEAT_FROM_TO(1, 11, PAREN_I, _))

結果:http://codepad.org/3itt2auA
冷静に考えると、これは「足し算」じゃなくて、数えているだけであった…