|
Publicité ' | ||||||||||||||||||||||||
|
|
#61 |
|
Expert Confirmé
![]() ![]() Joel LamotteDéveloppeur de jeux vidéo Inscription : août 2004 Messages : 1 552 ![]() |
Oui, je voulais dire que je suis tombé dessus en passant là : http://herbsutter.com/2010/10/22/c0x...nt-hot-issues/
|
|
00
|
|
|
#62 |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 675 ![]() |
J'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. |
|
|
10
|
|
|
#63 | ||
![]() ![]() Inscription : juin 2008 Messages : 7 631 ![]() |
Salut,
Citation:
Citation:
|
||
|
|
00
|
|
|
#64 | |||
|
Expert Confirmé
![]() ![]() Joel LamotteDéveloppeur de jeux vidéo Inscription : août 2004 Messages : 1 552 ![]() |
Citation:
Seulement dans certains cas, l'application automatique de move operator rends les invariants faux. En gros si t'as Code :
Dans C++0x, l'operator move va faire que ton vecteur va se retrouver vide a la moindre copie ou manipulation impliquant une copie où un move serait plus implicitement pertinent. Autrement dit, tu rendrais ton object bidon. Ya plus de détails dans les deux documents listés dans les liens que j'ia posté. La première solution serait de virer l'implémentation automatique des move constructor/operator OU une restriction sur les cas où ils sont générés (différent des cas ou les constructeurs/operateurs de copie sont générés). Ou alors virer les rvalue reference mais ça serait alors une vrai catastrophe. |
|||
|
00
|
Copyright © 2000-2013 - www.developpez.com