使用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;
}