IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Alexandrescu et les itérateurs...

  1. IrmatDen
    IrmatDen
    ... c'est pas l'amour fou

    Il discute de la validité des itérateurs et de l'utilité d'introduire un nouveau concept (nouveau en C++ bien sûr), les range: http://www.boostcon.com/site-media/v...rs-must-go.pdf

    J'avoue que ça ne me déplairait pas cette syntaxe, mais avant qu'elle débarque y'a un bout de temps qui va s'écouler si tant est qu'elle soit acceptée...
  2. koala01
    koala01
    Ce qu'il propose semble en effet plutot sympa

    Mais une chose est sur, ce ne pourra pas être appliqué dans la nouvelle mouture de la norme, car les propositions sont arrêtées depuis près d'un an.

    De plus, je me demande réellement si c'est adaptable à l'existant sans en arriver à "casser" l'ensemble de la STL
  3. Alp
    Alp
    Les range en eux-mêmes existent depuis un moment, via Boost surtout. Alexandrescu n'essaye que de généraliser ce principe. Mais c'est bien qu'il en parle !
  4. IrmatDen
    IrmatDen
    Oula, j'avais pas le moindre soupçon d'optimisme de les voir intégré en 0x

    C'est surtout que ces slides faisaient parti de l'actualité C++, donc je relaie ici pour ceux (les rares ?) qui ne l'aurait pas déjà lu. Et puis la critique émise des itérateurs est intéressante en soi.
  5. Alp
    Alp
    C'est clair que les itérateurs sont une plus petite abstraction que les ranges.
    Et effectivement, en suivant les slides d'Alexandrescu, on se demande pourquoi on a pas des range à la place des iterators dans 0x
  6. white_tentacle
    white_tentacle
    Ca me semble lumineux comme analyse. Je me suis longtemps interrogé sur les possibilités de vérifier statiquement la correction des itérateurs (notamment, que std::find est appelé sur deux itérateurs de la même collection), et c'est un bon gros bazar. Les range sont de ce point de vue beaucoup plus sûres.

    Par contre, Alexandrescu participe au développement de D maintenant ?
  7. Alp
    Alp
    Il est l'évangile de D, et aiderait un petit peu apparemment... Mais bon !

    Et effectivement, les ranges représentent à la fois une abstraction plus haute et plus correcte que les itérateurs, mais ça n'est pas aussi puissant que les folds en programmation fonctionnelle je trouve. Il faudrait trouver un modèle +- équivalent. Parce qu'un range dans un arbre n-aire par exemple, c'est dur de l'interpréter/lui donner du sens/le faire comprendre pour tout le monde...
  8. Luc Hermitte
    Luc Hermitte
    Et tu te sentirais de définir les folds du fonctionnel en C++ -- je n'ai pas la moindre idée de ce que c'est?
  9. Alp
    Alp
  10. IrmatDen
    IrmatDen
    Ca a déjà été partiellement fait, cf FC++. Bon, la doc est moyenne, voire pas à jour, c'est pas mature (et plus maintenu malheureusement ), mais ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <string>
    #include <iostream>
    #include <vector>
    
    #include <list.h>
    #include <prelude.h>
    
    using namespace std;
    using namespace fcpp;
    
    int main(int /*argc*/, char **/*argv*/)
    {
    	vector<int> numbers;
    	numbers.push_back(10);
    	numbers.push_back(16);
    	numbers.push_back(6);
    	numbers.push_back(8);
    	numbers.push_back(2);
    
    	List<int> containAnswer(numbers.begin(), numbers.end());
    	int answer = foldl(fcpp::plus, 0, containAnswer);
    
    	cout << answer;
    	cin.get();
    
        return 0;
    }
    Edit: par contre, regarder les headers, c'est plonger en enfer
Affichage des résultats 1 à 10 sur 16
Page 1 sur 2 12 DernièreDernière
Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo