gpt4 book ai didi

c++ - 获取被调用函数的名称

转载 作者:太空狗 更新时间:2023-10-29 21:08:17 28 4
gpt4 key购买 nike

当使用 '.'、'->' 或 '->*' 运算符时,有没有办法获取调用的函数的名称(或者在 '->*' 的情况下获取变量的名称一切顺利。

编辑:只是为了澄清,我不是在谈论反射,而是更多关于“函数”的东西,基本上我想创建一个运算符的重载(最好是提到的三个中的一个),它知道运算符右侧

我想要完成的基本上是编译时转换

obj->Function(a,b);

obj->Map("Function")(a,b); //Where Map(string) returns a function pointer

编辑:只是为了进一步澄清,要求是代码必须看起来像这三个之一

obj.SomeMethod(args);
obj->SomeMethod(args);
obj->*SomeMethod(args);

任何适合的解决方案都是可以接受的,只要 SomeMethod 可以是任何有效的标识符(即任何可以用作函数名称的东西)并且该解决方案必须使用 SomeMethod 作为 Map 中的查找。 Map 部分已经实现,它只是对我寻求解决方案的方法调用的重新解释。

如果那(正如我所担心的那样)无法完成,那么任何具有新“运算符”语法的解决方案都将被接受。如 obj __ SomeMethod(args);只要查找是基于“运算符”的 RHS

最佳答案

据我所知,没有。 C++ 不支持任何形式的反射,因此为了获得此类信息,您必须设计自己的工具和技巧。

关于c++ - 获取被调用函数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3383113/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com