71Fermer73
Lionel DebrouxLe 13/01/2015 à 08:49
Ce n'est pas parce que le C et C++ permettent une assez grande liberté syntaxique (si on veut encore plus, se tourner vers Perl ^^) qu'il faut faire toutes les bêtises que ladite liberté syntaxique permet...

Les if(), for() et autres structures de contrôle sans accolades n'auraient jamais dû être autorisées. J'ai déjà rencontré du code de test qui ne faisait pas ce qu'il devait et masquait un bug, à cause d'un if sans accolade et de deux instructions indentées en-dessous. Dans le logiciel ouvert, les structures de contrôle sans accolades sont la cause de plusieurs bugs graves connus, dont un de sécurité du kernel Linux.

Certains types de goto mentionnés dans ce topic sont sales, ça a déjà été discuté.

Les return multiples par fonction ne sont pas non plus une bonne chose pour la gestion des erreurs (hormis, dans certains styles de code, des early return pour la validation initiale des paramètres de la fonction, par exemple), ni si on veut mettre des traces à chaque entrée et sortie de fonction dans une base de code, sans pouvoir utiliser la programmation aspect pour ce faire (pour au moins deux raisons: non seulement AspectC++ est horriblement lent, mais surtout, à l'époque, encore récemment, et peut-être même encore actuellement malgré les travaux en cours, il ne comprend presque rien au C++11).

Et j'en passe.