C++0x : le draft final est disponible au téléchargement
Apportez vos commentaires à la norme
Le 2010-03-30 11:03:36, par Jean-Marc.Bourguet, Expert éminent
Ici: http://www.open-std.org/JTC1/SC22/WG...2010/n3092.pdf
La suite des opérations: jusque début juillet pour faire parvenir les commentaires officiels.
3 réunions pour agir sur ces commentaires (août 2010, novembre 2010, mars 2011). La dernière peut décider soit de repartir pour un FCD (et donc des commentaires dont il faut tenir compte) soit pour un FDIS (ou il faut dire oui ou non).
La suite des opérations: jusque début juillet pour faire parvenir les commentaires officiels.
3 réunions pour agir sur ces commentaires (août 2010, novembre 2010, mars 2011). La dernière peut décider soit de repartir pour un FCD (et donc des commentaires dont il faut tenir compte) soit pour un FDIS (ou il faut dire oui ou non).
-
JolyLoicRédacteur/ModérateurJ'avoue quand même être un peu inquiet. Le problème, à mon sens, c'est la move semantic (To move or not to move et Exceptions and Destructors sont tous deux liés à ce sujet). Or la move semantic était sensée être "finie" depuis pas mal de temps. Les compilateurs l'implémentent tous.
Et finalement, on se rend compte seulement depuis peu qu'elle est inutilisable sauf par des experts prêts à écrire beaucoup de code, et toutes les tentatives pour essayer de corriger ça rencontrent des problèmes. Je ne sais que penser.
J'ai un peu l'impression que pas mal d'avancées orientée débutant (concepts, modules, bibliothèques filesystem, date_time...) ont été bloquées (pas assez mis en pratique dans les compilateurs, arrivant trop tard) alors que les avancées orientée expert (variadic template, move semantic) ont été fortement poussés en avant ("ça marche déjà", sauf que pour la move semantic, ça ne marche pas...).
Je pense que le plus grand risque aujourd'hui pour le C++ n'est pas technique, mais lié à un étiolement de sa communauté de développeurs. Et je ne suis pas certain qu'on le fasse évoluer dans le bon sens pour ça.le 28/10/2010 à 13:05 -
oodiniMembre émériteC'est quoi le nouveau nom ? C++1x ?...le 31/03/2010 à 11:49
-
Jean-Marc.BourguetExpert éminentSi tu regardes les papiers du mailing, C++0X continue a etre utilise (et il me semble que je n'ai pas vu d'autre designation, mais je n'ai pas fait particulierement attention a cela)le 31/03/2010 à 11:54
-
koala01Expert éminent séniorD'après la discussion créée lorsqu'il a été voté, Herb Sutter aurait effectivement proposé de commencer à parler de C++11, pour en finir avec le troll relié à 0x...
Mais s'il y a des commentaires trop importants en mars 2011 (comprend "nécessitant des ajustements importants), nous risquons de repartir pour un tour, et je ne peux m'empêcher de penser que cela pourrait très facilement nous mener à 2012, et qu'il serait dommage de nommer C++11 une norme réellement finalisée en... 2012...
Bon, là, c'est le "scénario catastrophe", bien sur, car il faut rester optimiste et se dire que l'on peut effectivement espérer qu'elle sera finalisée dans le courent de l'année 2011.
Sa dénomination finale pourrait donc effectivement être C++11le 31/03/2010 à 12:18 -
3DArchiRédacteurSalut,
On se rapproche donc, s'il y a peu de commentaires, de la future norme. A télécharger et lire précieusement maintenant.le 01/04/2010 à 21:30 -
JolyLoicRédacteur/ModérateurD'ailleurs, si certains ont des commentaires, n'hésitez pas, on transmettra !le 01/04/2010 à 22:16
-
GotenMembre chevronnéAh cool ça
. On a jusqu'à quand? (ouai on sait jamais, en le lisant un truc pourrait me sauter aux yeux) le 01/04/2010 à 22:22 -
Jean-Marc.BourguetExpert éminentle 02/04/2010 à 9:17
-
3DArchiRédacteurSalut,
Pour l'instant, sans avoir relu le nouveau draft, il y avait le point dont on avait discuté sur comp.std.c++ sur le =default qui n'était pas autorisé (en déclaration) sur les destructeurs (en fait sur les 4 fcn spéciales) non triviaux :
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14struct base { virtual ~base()=default; // erreur }; struct base_ok { virtual ~base_ok(); }; base_ok::~base_ok()=default(); // OK struct trivial { ~trivial()=default; // OK !! };
Je me reformule car je me rends compte que ce n'est pas très clair, mais j'aurais aimé pouvoir écrire =default dans la classe que le destructeur soit trivial ou non :
Code : 1
2
3
4
5
6
7struct i_have_a_dream { virtual ~i_have_a_dream()=default; explicit i_have_a_dream(i_have_a_dream const&)=default; private: i_have_a_dream(i_have_a_dream const&)=default; };
le 02/04/2010 à 15:45 -
stardeathExpert confirméhum j'avais rien à faire donc j'ai commencé la lecture du pdf, un truc m'a choqué :
int main(int argc, char*argv[]){/*...*/}
j'aurai cru que le comité aurait vraiment dépoussiéré la norme, genre mettre ça en main :int main(int argc, string argv[]){/*...*/}int main(vector<string> args){/*...*/}le 17/04/2010 à 9:52