La norme elle-même ne place pas de telles dur exigence. Mais on peut en déduire qu'il est indirectement encouragé ([alg.any_of]):
template <class InputIterator, class Predicate>
bool any_of(InputIterator first, InputIterator last, Predicate pred);
template <class ExecutionPolicy, class ForwardIterator, class Predicate>
bool any_of(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last,
Predicate pred);
Retournefalse si [first, last) est vide ou si il n'y a pas de itérateur i dans l'intervalle [first, last) tels que pred(*i) est vrai, et vrai
sinon.
Complexité: Au plus dernier - premières applications du prédicat.
Tout est parfaitement conforme de la mise en œuvre peut s'appliquer le prédicat exactement last-first
temps de, la formulation me semble que cela pourrait être encouragés à quitter dès que possible.
Notez qu'il est pratiquement impossible de demander la même chose de la surcharge qui accepte un ExecutionPolicy
. Depuis lors, l'ordre d'évaluation n'est pas connue.
Dans un registre moins formel remarque, toute la mise en œuvre de la version séquentielle qui ne veut pas quitter le moment le prédicat est vrai, met les informations d'identification de son auteur en question.