问题描述
如题。定义一个内置类型比如int型的智能指针可以 shared_ptr<int>这样定义,但不知道如何定义一个指向函数的智能指针。
问题解答
回答1:#include <stdio.h>#include <memory>typedef void (*Fn)(void);void Foo() { printf('hello world');}int main() { std::shared_ptr<Fn> ptr(new Fn(Foo)); (*ptr)(); return 0;}
PS: C++11里面有function, 所以一般不用函数指针