C ++访问编号变量

时间:2017-08-25 12:38:09

标签: c++ templates macros variable-names

我们有编号变量,如:

float my_float_0;
float my_float_1;
float my_float_2;

是否有任何形式的模板/宏魔法可以让我们通过索引在for循环中访问这些变量?

1 个答案:

答案 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展开的内容,您可以为每个变量生成代码。