c++ - 什么是 `R(*pf)(void*, Args...)` ,指向方法的函数指针?

标签 c++ types function-pointers void-pointers pointer-to-member

我看到了这个类型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/

相关文章:

c++ - 删除指针时出错

c++ - 如何创建模板依赖成员类型

Haskell 类型错误

javascript - TypeScript 和 event.target ||事件.srcElement

c++ - c++中不使用全局变量的递归函数中的加法次数

c++ - 如何在DLL中集成Boost Asio Server

c++ - random_shuffle 使用 rand() 可以吗?

haskell - 展开 Haskell 数据类型

c - c 中的函数指针(地址和引用运算符对函数的影响)

c - 卡在线程问题上