More about std::function
void foo(string str) {
cout << str << endl;
}
β
int main() {
function<void(string)> f = foo;
foo("foo()"); // foo()
return 0;
}template <typename R, typename A1>
class myfunction {};
β
template <typename R, typename A1>
class myfunction<R(A1)> {
public:
using PFUNC = R(*)(A1);
myfunction(PFUNC pfunc) : _pfunc(pfunc) {}
R operator()(A1 a1) {
return _pfunc(a1);
}
private:
PFUNC _pfunc;
};
β
int main() {
myfunction<void(string)> f = foo;
f("foo()"); // foo()
return 0;
}Last updated