在我需要修改的代码中,有一个具有多个参数的函数声明。正如预期的那样,每个参数都以下列方式声明:arg_type arg_name
. 但是,on of the arguments 是通过以下方式声明的:bool (*filter) (const row<aaa::bbb>& entity)
我不理解这个声明。
所以,我认为我们有一个可以有布尔值的论点,但它是什么(*filter)
意思(const row<aaa::bbb>& entity)
?
添加
为了更清楚,这里有更多的上下文:
void func(int a, double b, bool (*filter) (const row<aaa::bbb>& entity))
.
添加 2
它以这种方式工作吗?
bool myFilter( const row<aaa::bbb>& e) { /* ... */ }
bool applyFilter( bool (*filter)(const row<aaa::bbb>& entity, bool& x)){
return filter(x&entity);
}
applyFilter(myFilter entity, x);