BOOST_PP_COUNTER
BOOST_PP_COUNTER を利用すると __COUNTER__ のような事が出来ます。
ただし、__COUNTER__ とは違い、マクロを呼び出す度に BOOST_PP_UPDATE_COUNTER() で更新してやる必要があります。
[コード]
#include <iostream> #include <boost/preprocessor/slot/counter.hpp> int main(){ int value = 0; value += BOOST_PP_COUNTER; #include BOOST_PP_UPDATE_COUNTER(); value += BOOST_PP_COUNTER; #include BOOST_PP_UPDATE_COUNTER(); value += BOOST_PP_COUNTER; #include BOOST_PP_UPDATE_COUNTER(); value += BOOST_PP_COUNTER; #include BOOST_PP_UPDATE_COUNTER(); std::cout << value << std::endl; // => 6 return 0; }
さすがに __COUNTER__ より手間そう。