In other words, a
unary predicate
is called like a function. The requirement of "callable" is met by a pointer to a function, but also by an object (or a reference to an object) of a type that has the function call operator defined (a so-called functor). One argument is supplied when the
predicate
is called
https://stackoverflow.com/questions/356950/c-functors-and-their-uses?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
stacksoverflow about functor .