• # Quelque petite remarques

    Posté par . En réponse à la dépêche Le standard C++0x a enfin été voté. Évalué à 10.

    Merci pour la dépêche très intéressante.

    Quelques remarques:
    1) dans

    for (std::vector<int>::const_iterator itr = myvec.begin(); itr != myvec.end(); ++itr)
    sera remplacé par :
    for (auto itr = myvec.cbegin(); itr != myvec.cend(); ++itr)```
    
    

    il faut remplacer les .begin et .end par .cbegin et .cend, j'imagine pour que l'inférence de type produise un const_iterator au lieu d'un iterator, c'est logique mais comme cela nécessite de changer les habitudes des programmeurs, ça fera probablement une "erreur" (mineure) commune de plus.

    2) le nullptr:

    bool b = nullptr; // OK. b est faux.
    
    

    C'est plutôt choquant comme choix. J'imagine que c'est dans la continuité du C/C++ qui considère que 0(int) correspond à faux(booléen) mais bon on peut voir ça aussi comme persister dans l'erreur..

    3) unicode: utiliser le prefix u pour UTF-16, u8 pour UTF-8 me choque: de facto ça revient à légitimer UTF-16 comme le format par défaut, alors que son seul avantage est que c'est le format par défaut sous Windows, pour le reste c'est un format bâtard entre UTF-8(plus compact dans la plupart des cas, compatible ascendant avec ASCII) et UTF-32 (accès O(1) a tous les éléments d'une chaîne).