C++中如何定义一个指向函数的智能指针?

如题。定义一个内置类型比如int型的智能指针可以 shared_ptr<int>这样定义,但不知道如何定义一个指向函数的智能指针。

阅读 5.1k
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, 所以一般不用函数指针

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题