加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C中将函数指针转换为仿函数

发布时间:2020-12-16 09:54:07 所属栏目:百科 来源:网络整理
导读:我有一个从另一个.hpp文件导入的函数指针类型.就像是: typedef void (*PFN_func)(int i); 我想创建一个相同类型的仿函数: std::functionPFN_func 但这不起作用. 我不想要像这样的解决方案 std::functionvoid(int) 因为mt函数指针定义要复杂得多 解决方法
我有一个从另一个.hpp文件导入的函数指针类型.就像是:

typedef void (*PFN_func)(int i);

我想创建一个相同类型的仿函数:

std::function<PFN_func>

但这不起作用.
我不想要像这样的解决方案

std::function<void(int)>

因为mt函数指针定义要复杂得多

解决方法

你可以这样做:

std::function<std::remove_pointer<PFN_func>::type>

从void(*)(int)中删除指针会给出函数类型void(int).

对于一般可调用的情况,请参见Is it possible to figure out the parameter type and return type of a lambda?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读