Ca change beaucoup avec les expressions lambdas (le côté pas pratique).
Après, moche et verbeux ?
std::for_each(list.begin(), list.end(), f);
Pour comparaison, en C#
foreach(T item in list) f(item);
Pas une grosse différence. On pourrait certes faire mieux avec des range plutôt que des itérateurs, mais la STL ne les a pas, alors on fait sans. Et côté approche, cela me semble nettement plus propre que l'approche C# (qui en plus, introduisait au départ des downcasts à tire-larigot du fait de l'implémentation de l'interface IEnumerable).
Le BOOST_FOREACH a l'avantage de permettre de mettre du code entre { }, et l'inconvénient, comme toute macro, de déconner grave avec les templates.
Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0
[^] # Re: C++, un langage moderne ?
Posté par whity . En réponse à la dépêche C++ 0xB enfin finalisé ?. Évalué à 2.
Après, moche et verbeux ?
std::for_each(list.begin(), list.end(), f);Pour comparaison, en C#
foreach(T item in list) f(item);Pas une grosse différence. On pourrait certes faire mieux avec des range plutôt que des itérateurs, mais la STL ne les a pas, alors on fait sans. Et côté approche, cela me semble nettement plus propre que l'approche C# (qui en plus, introduisait au départ des downcasts à tire-larigot du fait de l'implémentation de l'interface IEnumerable).
Le BOOST_FOREACH a l'avantage de permettre de mettre du code entre { }, et l'inconvénient, comme toute macro, de déconner grave avec les templates.
Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0