【发布时间】:2018-02-14 09:39:17
【问题描述】:
如果标题不是那么具有暗示性,我希望解释可以帮助您理解我的问题。
我有一个设置一些变量值的函数。但是变量名我想以字符串的形式提供,这样:
void setValue( const std:: string& variable_name, int value){ variable_name=value;}
然后当我这样调用这个函数时:
setValue("variable", 10);
我希望执行 set variable=10;
知道这种方法是否可行或我可以有这种行为的其他方式吗? 谢谢!
【问题讨论】:
-
在 C++ 中,变量在运行时没有名称。如果你想要一些有名字的东西或使用提供反射的库,你可以使用
std::map。也可以进行从名称到变量的映射,但没有通用的方法。 -
是否有可能使用宏和元编程的其他特性来实现这种效果?附言我不问 aobut 它是否有效,或者可以用于某些特定任务。唯一的可能。
-
@A.A 在运行时变量名中提到的变量名不可用。但是,有一种方法可以在编译时使用模板来完成。
template <typename T> void setValue( T& variable_name, T value){ variable_name=value;}
标签: c++