135 votes

Est efficace C++ toujours efficace?

De ce que j'ai vu dans ce post, j'ai décidé de commencer la lecture du livre Effective C++.

Mais maintenant qu'il y a de nombreuses nouvelles fonctionnalités à cause de C++11, et que quelques-uns des bonnes pratiques ont changé, je ne suis pas sûr de savoir si ou non il est effectivement une bonne idée. A l'avènement de C++11 obsolète tout les conseils contenus dans le Effective C++? Si oui, quels sont les sujets qui dois-je éviter?

90voto

TemplateRex Points 26447

Ce que Scott Meyers lui-même avait à dire à propos d'elle sur son propre blog

Ce qui peut vous conduire à se demander si les conseils et les informations cette pré-C++0x édition de Effective C++ reste pertinent. Je suis heureux à signaler qu'il n'. Étonnamment donc, en fait. Après avoir passé près de deux ans ancrée dans les détails de C++0x, je m'attendais à gémir un peu comme je l'ai examiné ce livre, la table des matières avec C++0x à l'esprit. Sûrement certains Articles seraient inappropriées. Mais les conseils que j'ai trouvé prouvé son. Doit C++0x développeurs préfèrent consts, les énumérations et les inlines à #defines (Item 2)? Ils devraient. Devraient-ils éviter que les exceptions de laissant les destructeurs (Point 8)? Certainement. Devraient-ils utiliser des objets pour la gestion des ressources? Déclarer les données membres privées? Envisager des solutions de rechange pour des fonctions virtuelles? Paramètre facteur de code indépendant de modèles? (Articles 13, 22, 35 et 44.) Oui, oui, oui, oui! Mon objectif a toujours été Effective C++de table des matières pour résumer l' conseils dans le livre, et que le résumé est tout aussi applicable à C++0x développement comme "traditionnelle" de développement en C++. C++0x est un plus de la langue, et à certains égards, c'est un autre, mais le cœur les techniques de fabrication de l'utilisation efficace de la "vieille" C++ sont au cœur de la l'utilisation efficace de C++0x, trop.

Cela ne signifie pas que le C++ est un match parfait pour C++0x. Le livre n'est pas de discuter de nouvelles fonctionnalités de C++0x, pour que les Articles sur l'utilisation efficace de ces éléments sont absents. C++0xified Effective C++ aurait certainement des Articles consacrés à des opérations de déplacement, à l'initialisation uniforme, et les expressions lambda, et il aurait sans doute un chapitre entier sur l'utilisation efficace de la simultanéité de l'API. Un tel livre serait également contenir des exemples différents, par exemple, ceux qui font usage de variables automatique, gamme à base de boucles, de la catégorie par défaut des initialiseurs, ainsi que les occasionnels variadic template. Dans la mesure où ce livre à la hauteur de son soutien pour le C++0x, les erreurs sont ceux de l'omission, pas de commission.

Mise à JOUR: une version de projet Moderne et Efficace de C++ est disponible avec la version finale prévue pour octobre 2014, cibler de C++11 et C++14.

45voto

cdmh Points 1598

Oui, certainement encore la peine de lire. Il y a un nouveau livre que Scott est de travailler sur: Effective C++11, qui se concentre sur le C++11 seul code. Le Effective C++ est toujours très pertinent, et n'est pas remplacé par le nouveau livre. Acheter, lire, en profiter :)

21voto

djechlin Points 18051

L'un, le livre est toujours bien entendu valable pour C++03.

Deux, Meyers est écrit ou a écrit, selon le moment où vous lisez cette phrase, Effective C++11.

Trois, parlant en général, les points de ce livre sera toujours valide. C++ encore privilégie la vitesse à la sécurité, et de nombreuses questions Effective C++ gravitent autour de cette.

Le seul point je m'attends à être non valides sont ceux qui disent "ne pas faire ceci, faire cela à la place." "Ne pas faire" sera toujours valide. Mais le C++ ont résolu certains problèmes. En particulier, des recommandations pour utiliser boost sont probablement obsolètes, comme le C++11 a inclus de nombreuses fonctionnalités Meyers spécifiquement renvoie le lecteur à coup de fouet pour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X