typedef bool (*Predicate)(int);
означает, что вы объявляете тип с именем Predicate
, который является указателем на функцию для функции, которая принимает один аргумент int
и возвращает bool
. Функция, которая соответствует требованиям, будет:
bool is_zero(int val) {
return val == 0;
}
и вы можете объявить переменную, такую как:
Predicate mypredicate = is_zero;
В этом случае вероятным намерением является объявить функцию, которая выполняет операцию фильтрации, используя предикатную функцию, предоставляемую во время выполнения; он принял бы Predicate
в качестве одного из своих аргументов.