C++ 访问编号变量



我们有编号的变量,例如:

float my_float_0;
float my_float_1;
float my_float_2;

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

如果你无法控制变量,你唯一的选择就是一些好的宏元编程。Boost.Preprocessor的文档是一个很好的起点 - 您可以迭代一系列数字,并将它们与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扩展的内容,可以为每个变量生成代码。

最新更新