« soit via la nouvelle forme du for qui itère directement sur les éléments sans passer par un itérateur. »
Ce n'est pas tout à fait exact. Le compilateur tentera d'utiliser les fonctions génériques std::begin et std::end sur la collection pour pouvoir itérer sur la collection. Donc si la collection fournit les fonctions membre begin et end, c'est celle-ci qui seront utilisée : il y aura bien acquisition d'un itérateur. Ce sera juste implicite.
# Range for et iterator
Posté par LupusMic (site web personnel, Mastodon) . En réponse à la dépêche LLVM 3.3 et Clang 3.3. Évalué à 10.
« soit via la nouvelle forme du for qui itère directement sur les éléments sans passer par un itérateur. »
Ce n'est pas tout à fait exact. Le compilateur tentera d'utiliser les fonctions génériques std::begin et std::end sur la collection pour pouvoir itérer sur la collection. Donc si la collection fournit les fonctions membre begin et end, c'est celle-ci qui seront utilisée : il y aura bien acquisition d'un itérateur. Ce sera juste implicite.