Question

Après avoir lu Cette célèbre diatribe de Linus Torvalds, Je me demandais quels sont réellement tous les pièges pour les programmeurs en C ++. Je ne fais explicitement pas référence à des fautes de frappe ou à un mauvais flux de programme tel que traité dans cette question et ses réponses, mais à des erreurs plus élevées qui ne sont pas détectées par le compilateur et n'entraînent pas de bugs évidents à première vue, des erreurs de conception complètes, des choses qui sont improbables en C mais qui sont susceptibles d'être effectuées en C ++ par des nouveaux arrivants qui ne Comprendre les implications complètes de leur code.

J'accueille également des réponses soulignant une énorme diminution des performances là où elle ne serait généralement pas attendue. Un exemple de ce que l'un de mes professeurs m'a parlé un jour d'un générateur de l'analyseur LR (1) que j'ai écrit:

Vous avez utilisé un peu trop de cas d'hérédité et de virtualité inutiles. L'héritage rend une conception beaucoup plus compliquée (et inefficace en raison du sous-système RTTI (type d'inférence du type d'exécution)), et il ne devrait donc être utilisé que là où il est logique, par exemple pour les actions dans la table d'analyse. Parce que vous faites un usage intensif des modèles, vous n'avez pratiquement pas besoin de héritage. "

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top