我看到了这个类型here .我相信他正试图为类型删除的成员指针创建一个变量 pf
(这就是那里有 void*
的原因)。然后我在类似的类中注意到了这种类型签名。
但根据isocpp非静态成员指针类型定义如下:
int (Fred::*)(char,float)
(对于某些类 Fred
)
函数指针类型定义如下:
int (*)(char,float)
因此,可以像这样创建一个成员指针变量 mp
:
int (S::*mp)(int) = nullptr;
也许这个void*
代表了this*
以及它通过定义函数指针变量来定义成员指针变量的另一种方式?这可能吗?
什么是 R(*pf)(void*, Args...)
?
最佳答案
这是函数指针的声明。仅此而已。
兼容函数采用void*
和Args...
,并返回R
。
在给定的示例中,分配给指针的兼容函数是 lambda。 void*
是一些可调用的 f
的类型删除地址,而 Args...
成员是“将传递给那个可调用对象。可调用对象的类型通过捕获 lambda 中的类型别名来恢复(很好!)。
关于c++ - 什么是 `R(*pf)(void*, Args...)` ,指向方法的函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58044483/