13
Many standard library algorithms take predicate functions. However, the type of these predicates is an arbitrary, user-provided template parameter. Why doesn't C++11 specify that these take a specific type, like std::function instead? For example:
template< class InputIt >
InputIt find_if( InputIt first, InputIt last,
std::function<bool()> p );
Isn't using this instead of a template as argument type not much more clean?