Bonsoir,
Pour la comparaison à true, quand je lis deux "experts confirmés senior" ayant chacun une opinion opposée : Je me dis que ce sont des guerres de chapelle...Code:if <expression-booleenne>
Pour ma part, ma principale source de bug immédiat (i.e. avant tests), c'est l'inversion de logique :
Dans les deux cas (estBon) ou (estBon == true), je la ferai toujours quand je somnole... Voir l'inverse dans des conventions de codage ne me ferait pas poser ma démission, mais je rejoins Luc sur un point : Il y a d'autres guerres plus utiles (les noms parlants, limiter la conditionnelle, les imbrications, etc.)Code:
1
2
3
4
5
6 if ( estBon ){ //je traite pas bon }else{ // je traite bon }
Dommage qu'ils soient écrit si petit les PS d'Emmanuel Deloget à propos des tests de pointeurs null. Par un moment, pour des questions de refactoring (*) vers des smart pointers justement, j'ai rêvé d'un :Code:Test de pointeur null
... avec un comportement homogène sur tout ce qui a sémantique de pointeur (auto_ptr, shared_ptr, etc.)...Code:
1
2
3
4
5 /* !!!n'existe pas!!! */ if ( std::is_null( pointeur ) ){ }
A mon avis, le vrai problème n'est pas qu'on test si le pointeur est 0 ou NULL, mais que dans le fond, qu'on ne fasse pas abstraction du fait qu'un pointeur a pour valeur une adresse (d'où les soucis quand les pointeurs sont encapsulés et qu'on doit les dés-encapsuler à coup de get).
Mais bon, on a d'autres problèmes dans la vie!