ライブラリを使用すると、次のboost preprocessor
ようなことができます。
#define ARRAY (3, (a, b, c))
BOOST_PP_ARRAY_PUSH_BACK(ARRAY, d) // this expands to a, b, c, d
しかし、どうすればこれを複数回行うことができますか?push_back
コードのさまざまな部分で複数回、結果を表示したいとしますか?
次のコードは単に出力しdummy
ます:
#include <boost/preprocessor.hpp>
#include <vector>
#include <algorithm>
#define ARRAY (1, (dummy))
BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 1)
BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 1)
BOOST_PP_ARRAY_PUSH_BACK(ARRAY, 1)
int main()
{
std::cout << BOOST_PP_ARRAY_ENUM(ARRAY);
return 0;
}