|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 521 ![]() |
Ce n'est pas un autre mécanisme, mais un cas particulier.
Dans le FDIS(n3290), §8.5/16, §8.5.1/2 et §8.5.4 on voit que le vieux truc servant à initialiser s'appelle maintenant initializer-list et que le mécanisme est une List-Initialization (j'avoue, je peux simplifier: j'ai parcouru en vitesse) Après, le nouveau standard nous fournit maintenant un mécanisme pour intercepter ces initializer-list (std::initializer_list) dans nos constructeurs ou ailleurs quand des retransmissions non triviales sont requises (comme pour initialiser les éléments d'un conteneur que nous implémentons).
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
00
|
|
|
#22 | ||||
|
Membre éprouvé
![]() ![]() Doctorant en astrophysique Inscription : juin 2007 Messages : 310 ![]() |
Au niveau de (petite faute de grammaire, au passage) :
Citation:
Code :
sizeof(m2); // erreur en C++98, valide en C++11 Code :
sizeof(((C*) 0)->m); // hack possible pour contourner en C++98 Sinon j'en profite aussi pour te signaler qu'il manque un mot dans cette phrase : Citation:
__________________
Mes programmes : éditeur de sous-titres, générateur de code C++, calcul formel en ligne de commande, wrapper C++ pour Lua, bibliothèque de GUI, utilitaire pour la physique en C++11. |
||||
|
|
00
|
|
|
#23 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 318 ![]() |
@Kalith
Merci, c'est corrigé
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#24 | |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 679 ![]() |
Citation:
Je pense que liste d'initialisation est déjà passé dans le "langage courant" pour l'initialisation des données membre avant le corps du constructeur, et qu'on ne peut plus le changer. Peut-être que si je devais traduire initializer-list, je partirais vers quelque-chose de plus verbeux, comme liste permettant l'initialisation, ou liste de valeurs initiales. |
|
|
|
00
|
|
|
#25 |
|
Membre Expert
![]() Inscription : avril 2010 Messages : 1 239 ![]() |
Même en anglais c'est pas ça, car dans le nouveau cas, on ne peut pas vraiment parler de liste, non ?
Sinon, on peut peut-être affiner avec des adjuvants comme implicite, explicite, primaire, déclarative, pre (pre-initialisation), je ne sais pas, mais c'est évident qu'il faut pouvoir faire la différence.
__________________
. ....Bibliothèque de scripts utilitaires batch pour Windows (Command Line Routines) ....Tout n'est pas public ou publié encore... et mon téléchargement montre que le compteur des Downloads n'est pas à jour... |
|
|
00
|
|
|
#26 | |
|
Expert Confirmé
![]() ![]() Joel LamotteDéveloppeur de jeux vidéo Inscription : août 2004 Messages : 1 555 ![]() |
Citation:
|
|
|
00
|
|
|
#27 |
|
Membre Expert
![]() Inscription : avril 2010 Messages : 1 239 ![]() |
Au temps pour moi, je confondais avec le fait de pouvoir initialiser des données membres non statiques dans la déclaration de la classe.
Ben dans ce cas, autant appeler ça "liste d'initialiseur", c'est pas choquant, mais le mot n'existe pas en effet, peut être "liste d'initiateur", sinon, "liste d'affectation", "liste d'assignation".
__________________
. ....Bibliothèque de scripts utilitaires batch pour Windows (Command Line Routines) ....Tout n'est pas public ou publié encore... et mon téléchargement montre que le compteur des Downloads n'est pas à jour... |
|
|
10
|
|
|
#28 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 521 ![]() |
Liste d'affectation bof. D'assignation, non! (on n'assigne pas en informatique, on affecte)
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
00
|
|
|
#29 |
|
Membre Expert
![]() ![]() |
Une traduction littérale, peut-être, alors : "Liste d'initialisateurs", moi je pense que c'est le terme que j'utiliserai, à part le terme anglais.
__________________
Si vous ne trouvez plus rien, cherchez autre chose... Chef de projet (et unique exécutant pour l'instant) pour Castor 3D |
|
10
|
|
|
#30 |
|
Membre Expert
![]() Jean-Bernard Inscription : mars 2007 Messages : 1 001 ![]() |
Un grand merci à gbdivers pour ce travail de documentation. Il me sera fort utile.
|
|
|
00
|
|
|
#31 |
|
Membre éclairé
![]() Inscription : août 2008 Messages : 301 ![]() |
Merci à l'auteur de ce fil passionnant.
Espérons qu'il aura le temps de le compléter A noter, pour ceux qui en auraient l'utilité, ce tutoriel très bien fait, décrivant pas à pas comment compiler la version la plus récente de GCC sur une Ubuntu (Linux) 12.04 http://solarianprogrammer.com/2012/0...-ubuntu-12-04/ |
|
|
00
|
|
|
#32 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 318 ![]() |
C'est toujours en cours... selon mes dispos
Je vais finaliser ça avant la fin d'année, en excluant la partie move semantic et prog concurrente, qui feront l'objet d'articles spécifiques
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#33 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 318 ![]() |
Du coup, je viens transférer ce qui était déjà fait :
* Les nouveaux types de caractères * Les espaces de noms inline * Les opérations atomiques (sera dans un article dédié) * La propagation des exceptions
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#34 | ||
|
Membre éclairé
![]() Inscription : août 2008 Messages : 301 ![]() |
A propos des nouvelles techniques d'initialisation, peut-être serait-il bien de commencer par montrer, dans une présentation pour des novices, à quel point elles fournissent une syntaxe uniforme et générale (comme le dit Stroustrup dans sa FAQ sur le C++11) de l'initialisation, et de mettre pour commencer en avant des séries d'exemples parallèles tels que :
Code :
|
||
|
|
00
|
|
|
#35 |
|
Membre Expert
![]() ![]() Inscription : novembre 2004 Messages : 2 026 ![]() |
Ce n'est pas forcément un bien : dans ton exemple, en lisant rapidement, i ne se distingue pas des autres par sa nature scalaire. Cela pourrait tout aussi bien être un tableau d'un élément. Tu vas me dire, il suffit de regarder le type, mais si tu as un typedef...
__________________
VDS "The C++ Standard Library" (Josuttis) -> 30 € |
|
|
00
|
|
|
#36 |
|
Membre éclairé
![]() Inscription : août 2008 Messages : 301 ![]() |
J'ai rajouté aussi ça dans la liste :
Code :
int * pData { new int[4] { i, 2, 97, 103 } }; |
|
|
00
|
|
|
#37 | ||
|
Membre Expert
![]() ![]() Inscription : mai 2008 Messages : 937 ![]() |
A noter aussi que l'initialisation uniforme en {} vient corriger une petite imperfection assez pénible du C++03 : on ne pouvait pas initialiser un tableau membre d'une classe directement dans la liste d'initialisation du constructeur ! Maintenant, on peut :
Code :
|
||
|
|
00
|
|
|
#38 |
|
Membre éclairé
![]() Inscription : août 2008 Messages : 301 ![]() |
En ce qui concerne les listes d'initialisation, à noter aussi leur emploi autorisé dans un return : par exemple, une fonction du genre :
std::vector<int> f(...) pourra contenir une ligne comme : |
|
|
00
|
|
|
#39 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 318 ![]() |
L'article (en cours de rédaction) a été mis au format Dvp. Il est donc possible de télécharger le pdf (en autre)
Bonne lecture Nouvelles fonctionnalités du C++11 prises en charge dans gcc
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#40 |
![]() ![]() Timothée BernardÉtudiant Inscription : février 2010 Messages : 370 ![]() |
"une classe avec une fonction vituelle mais un destructeur non virutel"
__________________
Si vous ne savez toujours pas ce qu’est la récursivité, relisez cette phrase. Mon blog sur la programmation et l'informatique ! |
|
00
|
Copyright © 2000-2013 - www.developpez.com