Et encore, c'était juste pour dire que chacun voit midi à sa porte...Citation:
Envoyé par Luc Hermitte
On peut bien sur arguer qu'un code sera, dans certaines condition plus rapide qu'un autre, que les tests et les boucles ne sont que tes "goto" déguisés (dans le sens ou ils seront tous traduit en sauts, conditionnels ou non)... du moins, c'est le point de vue de linus, semble-t-il, mais je reste d'avis que son point de vue ne s'applique *éventuellement* que dans des cas bien particuliers...
On est bien tous d'accord là dessus...Citation:
Si dans le bouquin il y a des "p = new ... ; if(p)" et des goto. L'auteur ne connait pas le C++. Sur le plan qualité de code C++ je serai plus que méfiant à l'égard de ce bouquin. Si maintenant c'est l'OP a traduit des malloc en new. OK. Soit. C'est une façon de faire ...en C.
Ceci dit, et bien que ce soit un autre débat, Bjarne Strouptroup lui-meme, dans la quatrième édition de son bouquin "le langage C" (version francaise) propose des boucles infinies sous la forme
A moins qu'on ne m'apporte un raisonnement probant pour prouver que cette manière de faire apporte plus d'avantages que d'inconvéniants (utilisations probable de break "dans tous les sens", entre autres) je continurai à préférer les boucles while() et do...while() avec des tests adaptés pour les boucles infinies ... ou pseudo infinies...Code:
1
2
3
4 for( ; ; ) { }
Là dessus, nous sommes bien d'accord ;)Citation:
Le problème, ce n'est pas le goto. C'est de faire des bidouilles en C++ qui complexifient le code et qui sont à côté de la plaque -- le comportement par défaut du new post-98 est de lever une exception, et les règles qualité sérieuses poussent vers les abstractions RAII comme les vecteurs.
Ne te méprend pas sur mon intervention passée... je ne voulais que présenter un "autre point de vue" soutenu par quelqu'un qui, de prime abord, a plus réfléchi à toutes les implications que moi, sans juger le moins du monde de la qualité (bonne ou mauvaise) de son raisonnement ;)
Entre temps, pour ceux que cela peut intéresser, j'ai remis la main sur l'archive de la liste de diffusion en question: on la trouve =>ICI<=