在下面的玩具示例中,我想获取函数的名称。该函数本身被给出为std::function
争论。在C++中是否可以获取a的名称std::function
object?
void printName(std::function<void()> func){
//Need a function name()
std::cout << func.name();
}
void magic(){};
//somewhere in the code
printName(magic());
output: magic
否则我必须将函数的名称作为第二个参数。
不,没有。函数名称(如变量名称)被编译出来,因此它们在运行时不可见。
最好的选择是传递函数的名称(使用std::string
or a const char*
)正如您自己建议的那样。 (或者,您可以基于以下解决方案__func__
这是在 C++11 中引入的。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)