这个参数的声明意味着什么:"type(*name1)(const type&name2)"?

Rom*_*man -2 c++ pointers

在我需要修改的代码中,有一个函数的声明,它有几个参数.正如预期的那样,每个参数都以下列方式声明: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)

Zet*_*eta 6

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)