Les Modèles C++ - Le Guide Complet de la 2e Édition introduit le max de modèle:
template<typename T>
T max (T a, T b)
{
// if b < a then yield a else yield b
return b < a ? a : b;
}
Et il explique à l'aide de "b < a ? a : b"
au lieu de "a < b ? b : a"
:
Notez que le max() modèle selon [StepanovNotes] intentionnellement renvoie "b < a ? a : b" au lieu de "a < b ? b:" à s'assurer que la fonction se comporte correctement, même si les deux valeurs sont équivalent, mais n'est pas égal.
Comment comprendre les "even if the two values are equivalent but not equal.
"? "a < b ? b : a"
semble avoir le même résultat pour moi.