本文介绍了引用自身的typedef的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

typedef bool (*Foo)(Foo a, Foo b);

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

How do you declare a function pointer that accepts itself in its parameters?

推荐答案

间接:

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));
}

不是我看不到任何用法,我的例子。

Not that I could ever see any use in that, as you can see from my example.

这篇关于引用自身的typedef的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 21:18