Home  >  Q&A  >  body text

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

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

大家讲道理大家讲道理2764 days ago912

reply all(1)I'll reply

  • 阿神

    阿神2017-04-17 13:09:49

    #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: There is function in C++11, so function pointers are generally not used

    reply
    0
  • Cancelreply