template<typename InputIterator, typename Predicate>
inline InputIterator
find_if(InputIterator first, InputIterator last, Predicate pred, input_iterator_tag)
{
while (first != last && !bool(pred(*first)))
++first;
return first;
}
Je suis tombé sur cet extrait dans le code source de l'implémentation de la bibliothèque standard C++ fournie avec GCC 4.7.0. Il s'agit de la spécialisation de find_if
pour un itérateur d'entrée. J'ai nettoyé les caractères de soulignement pour le rendre plus lisible.
Pourquoi ont-ils utilisé un bool
sur le prédicat ?