本文介绍了引用自身的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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!