Bon, en fait j'ai quand même répondu avec un peu de mauvaise foi, parce que le compilateur sait ou non s'il a besoin de compiler, et s'il y a un appel dynamique, il compile de toutes manières, j'imagine. Je ne sais pas s'il évalue par exemple si les variables sont potentiellement modifiables
const int truc = 2;
if (truc == 2)
foo();
vs
int truc = 2;
if (truc == 2)
foo();
vs
int truc = 2;
bar(truc);
if (truc == 2)
foo();
parce que si void bar(int) ou void bar (const int&), alors foo() est mort, mais si void bar(int&), foo() est peut-être vivant, mais il y a moyen à partir du code de bar() de vérifier si la référence est potentiellement modifiée.
[^] # Re: bah non
Posté par arnaudus . En réponse au journal Le bon sens et le C++. Évalué à 2.
Bon, en fait j'ai quand même répondu avec un peu de mauvaise foi, parce que le compilateur sait ou non s'il a besoin de compiler, et s'il y a un appel dynamique, il compile de toutes manières, j'imagine. Je ne sais pas s'il évalue par exemple si les variables sont potentiellement modifiables
vs
vs
parce que si
void bar(int)ouvoid bar (const int&), alors foo() est mort, mais sivoid bar(int&), foo() est peut-être vivant, mais il y a moyen à partir du code de bar() de vérifier si la référence est potentiellement modifiée.