• [^] # Re: Qt 4 à l'horizon !

    Posté par . En réponse à la dépêche Qt 4 à l'horizon !. Évalué à 2.

    J'ai un peu de mal avec ton commentaire, et aussi avec les suivants. Je n'ai pas regarde comment c'est implementé, mais au vu de ton exemple, ca sent la macro a plein nez. Et ce genre de macro, ce n'est pas sympathique, c'est Mal (tm)(r) : tout se passe bien jusqu'a ce que tu commence a utiliser une autre bibiotheque qui définit elle aussi une macro du meme nom, ou pire encore une fonction...

    Pour faire ce genre de chose, sans macros et avec une bibliotheque bien codee, il y a Boost.Lamba (http://www.boost.org/libs/lambda/doc/(...) ), et l'exemple que tu donnes s'écrirait:


    list text;
    size_t length = 0;
    for_each(text.begin(), text.end(), var(length) += bind(&string::size, _1));


    ou encore, avec std::accumulate :


    length = accumulate(text.begin(), text.end(), length, _1 += bind(&string::size, _2));


    on peut trouver ca gruik, mais c'est beaucoup plus robuste.
    (si la solution Qt n'est pas a base de macro, je n'ai rien dit, j'admire et je sors...)