引用自身的typedef

Ter*_*ver 13 c++

typedef bool (*Foo)(Foo a, Foo b);
Run Code Online (Sandbox Code Playgroud)

如何声明一个在其参数中接受自身的函数指针?

Xeo*_*Xeo 8

间接:

struct Foo{
  typedef bool (*FooPtr)(Foo a, Foo b);
  Foo(FooPtr p)
      : p(p)
  {}

  bool operator()(Foo a, Foo b) const{
    return p(a,b);
  }

  FooPtr p;
};

struct Bar{
    Bar(Foo f)
        : some_callback(f)
    {}

    Foo some_callback;
};

bool a_callback(Foo a, Foo b){
    return false;
}

int main() {
    Bar b(a_callback);
    b.some_callback(Foo(a_callback), Foo(a_callback));
}
Run Code Online (Sandbox Code Playgroud)

从我的例子中可以看出,并不是说我能看到任何用处.

  • 这不完全是被问到的,但它可能是你所能做的。 (2认同)