我们有编号变量,如:
float my_float_0;
float my_float_1;
float my_float_2;
是否有任何形式的模板/宏魔法可以让我们通过索引在for循环中访问这些变量?
答案 0 :(得分:1)
如果您无法控制变量,那么您唯一的选择就是选择一些好的变量。宏元编程。 Boost.Preprocessor's documentation是一个很好的起点 - 您可以迭代一系列数字并将它们与my_float_
标记连接起来以生成变量名称。
示例(未经测试):
#define SEQ (0)(1)(2)
#define MACRO(r, data, elem) BOOST_PP_CAT(elem, data)
BOOST_PP_SEQ_FOR_EACH(MACRO, my_float_, SEQ)
// expands to my_float_0 my_float_1 my_float_2
通过更改MACRO
展开的内容,您可以为每个变量生成代码。