在我需要修改的代码中,有一个函数的声明,它有几个参数.正如预期的那样,每个参数都以下列方式声明:arg_type arg_name.但是,参数是以下列方式声明的: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);
Run Code Online (Sandbox Code Playgroud)
bool (*filter) (const row<aaa::bbb>& entity)
Run Code Online (Sandbox Code Playgroud)
filter是一个指向函数的指针,const row<aaa::bbb>&它只接受一个参数并返回一个bool.
bool myFilter( const row<aaa::bbb>& e) { /* ... */ }
bool applyFilter( bool (*filter)(const row<aaa::bbb>&)){
return filter(somerow);
}
Run Code Online (Sandbox Code Playgroud)