在 Windows/MSVS/C++ 中,我可以通过指向它的名称来获取函数指针,如下所示:
void foo()
{
auto fooPtr = &foo;
}
但是我可以在不知道函数名称的情况下做同样的事情吗?
void foo()
{
auto fnPtr = &thisFunction; //no
}
用例:我想定义一个宏,我可以把它放在许多函数的顶部,它会声明一个指向函数的指针。例如:
#define defFnPtr auto fnPtr = &thisFunction
void foo()
{
defFnPtr;
}
void bar()
{
defFnPtr;
}
最佳答案
不,在标准 C++ 中没有办法获得指向“当前”函数的指针。
最好的办法可能是使用元编程:编写一个程序,在源代码中生成 auto fnPtr = &foo;
行。
也就是说,我认为这个目标不值得付出努力。
关于C++:在不知道函数名的情况下获取当前函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68615777/