Say I have the following function pointer typedef:
using FType = int(*)(int,int);
How can I construct a std::function object using the signature of FType?
For example if FType were defined using using FType = int(int,int), it could be done by std::funtion<FType> func = ...
CodePudding user response:
using FType = int(*)(int,int);
std::function<std::remove_pointer_t<FType>> func;
CodePudding user response:
std::function can do CTAD, hence this works:
#include <iostream>
#include <functional>
using FType = int(*)(int,int);
int foo(int,int) {}
int main(){
FType x = &foo;
auto f = std::function(x);
}
