On Thu, Mar 05, 2009 at 11:39:45AM +0000, charfi asma wrote: > intc; > int main() > > { > > Calcul ca; > > c=3; > > ca.affich(); > > ca.inc(c); > > cout << "the value of c is" << c << endl; > > return 0; > > } [...] > int main() > > { > > Calcul ca; > > ca.affich(); > > c=3; > > ca.inc(c); > > cout << "the value of c is" << c << endl; > > return 0; > > } > > Why in the fist code, c is not considered as a constant (in spite that > affich() does not change c)
Because GCC does not currently do the necessary analysis to know that affich() does not change c; it therefore makes the conservative assumption that it does. -Nathan