【发布时间】:2020-01-09 09:20:03
【问题描述】:
在我的代码中,我多次重复这样的表达:
T foo;
do_sth(foo, "foo");
我正在考虑对变量名进行字符串化,如下所示:
#define VARNAME(Var) (#Var)
void do_sth_new(T foo) { do_sth(foo, VARNAME(foo)); };
T foo;
do_sth_new(foo);
这是好的做法吗? C++11 有没有更好的替代方案?
【问题讨论】:
-
由于 c++ 标准中仍然缺少反射,没有丑陋的宏就没有机会让它工作。所以是的,这是当前的标准解决方案,但不是“好”:-)