Bonne news dans l'ensemble, j'en profite pour rajouter mon grain de sel :o)
La délégation de constructeur
On peut également signaler un constructeur par défaut et même demander au compilateur de ne pas générer certaines fonctions membres (très pratique, pour interdire la copie par exemple)
> On peut quand même regretter l'absence de sémaphore dans la spécification.
À l'origine, boost::thread (dont s'inspire cette spécification) proposait un type semaphore mais il a été retiré parce qu'il était source d'erreurs (pas de notion de lock, inversion de priorité). La solution recommandée c'est d'utiliser un mutex + une condition, même si dans certains cas, ça ne convient pas (gestion de signaux posix entre autres).
Derrière, std::thread propose la plupart des facilités des threads Posix (mutex, condition, barrière, R/W locks, etc...) en plus sûr mais également les futures. D'ailleurs, le langage gagne le mot clé thread_local pour signaler les variables TLS.
Les expressions régulières font leur entrée dans la bibliothèques standard
Je tiens à souligner que l'implémentation de référence (aka boost::regex de John Maddock) est particulièrement performante (et bénéficie énormément des templates), et offre bon nombre des facilités des expressions régulières compatibles Perl, ainsi qu'un header de compatibilité avec l'API Posix.
Je trouve dommage qu'on ne mentionne pas la grosse nouveauté (depuis l'abandon des concepts pour ce round) de la norme mais également la plus complexe à appréhender: la sémantique move qui permet d'économiser certains copies inutiles mais impossible à éviter de par le langage. Les utilisateurs peuvent ainsi bénéficier de façon transparente de cette optimisation à travers la bibliothèque standard si celle-ci a été adaptée en conséquence (mais leur code peut également en bénéficier à condition d'écrire un constructeur et un opérateur move adéquats)
Bjarne stroustrup l'expliquera certainement beaucoup mieux que moi: http://www2.research.att.com/~bs/C++0xFAQ.html#rval
Certes, ça complexifie le langage mais c'est un exemple typique de ce qui fait l'attrait du C++: un langage extrêmement souple, performant et robuste.
# commentaires
Posté par GeneralZod . En réponse à la dépêche Le standard C++0x a enfin été voté. Évalué à 6.
Bonne news dans l'ensemble, j'en profite pour rajouter mon grain de sel :o)
On peut également signaler un constructeur par défaut et même demander au compilateur de ne pas générer certaines fonctions membres (très pratique, pour interdire la copie par exemple)
> On peut quand même regretter l'absence de sémaphore dans la spécification.
À l'origine, boost::thread (dont s'inspire cette spécification) proposait un type semaphore mais il a été retiré parce qu'il était source d'erreurs (pas de notion de lock, inversion de priorité). La solution recommandée c'est d'utiliser un mutex + une condition, même si dans certains cas, ça ne convient pas (gestion de signaux posix entre autres).
Derrière, std::thread propose la plupart des facilités des threads Posix (mutex, condition, barrière, R/W locks, etc...) en plus sûr mais également les futures. D'ailleurs, le langage gagne le mot clé thread_local pour signaler les variables TLS.
Je tiens à souligner que l'implémentation de référence (aka boost::regex de John Maddock) est particulièrement performante (et bénéficie énormément des templates), et offre bon nombre des facilités des expressions régulières compatibles Perl, ainsi qu'un header de compatibilité avec l'API Posix.
Je trouve dommage qu'on ne mentionne pas la grosse nouveauté (depuis l'abandon des concepts pour ce round) de la norme mais également la plus complexe à appréhender: la sémantique move qui permet d'économiser certains copies inutiles mais impossible à éviter de par le langage. Les utilisateurs peuvent ainsi bénéficier de façon transparente de cette optimisation à travers la bibliothèque standard si celle-ci a été adaptée en conséquence (mais leur code peut également en bénéficier à condition d'écrire un constructeur et un opérateur move adéquats)
Bjarne stroustrup l'expliquera certainement beaucoup mieux que moi:
http://www2.research.att.com/~bs/C++0xFAQ.html#rval
Certes, ça complexifie le langage mais c'est un exemple typique de ce qui fait l'attrait du C++: un langage extrêmement souple, performant et robuste.