
The templated provides an unary predicate for (shared) pointers that allows containers containing pointers to objects to be searched, not by pointer comparisons but by comparisons of the values that they point to. This allows std::find_if to be used with shared pointers in a similar manner that std::find is used with non-pointer objects.