c++ 如何从函数指针类型得到签名类型?

oewdyzsn  于 2023-01-22  发布在  其他
关注(0)|答案(2)|浏览(173)

假设我有下面的函数指针typedef:

using FType = int(*)(int,int);

如何使用FType的签名构造std::function对象?
例如,如果使用using FType = int(int,int)定义FType,则可以使用std::funtion<FType> func = ...完成

ocebsuys

ocebsuys1#

using FType = int(*)(int,int);
std::function<std::remove_pointer_t<FType>> func;
v8wbuo2f

v8wbuo2f2#

std::function可以执行CTAD,因此可以执行以下操作:

#include <iostream>
#include <functional>

using FType = int(*)(int,int);

int foo(int,int) {}

int main(){
    FType x = &foo;
    auto f = std::function(x);
}

相关问题