generalized lvalues

Andrew Pinski pinskia@physics.uc.edu
Thu Nov 18 04:21:00 GMT 2004


On Nov 17, 2004, at 10:50 PM, Andrew Pinski wrote:

>
> On Nov 17, 2004, at 10:47 PM, Matt Austern wrote:
>
>>  1. It broke valid C++ programs.  If we overload a function on 
>> constness, like foo(int&) and foo(const int&), then invoking it as 
>> foo((int) x) is required to call the const version.  Generalized 
>> lvalues made us choose the latter.
>
> If it broke it please file a bug and don't complain that we broke it.

Woops I read it wrong but note the C++ front-end removed this extension
in 3.4.0 and not just for 4.0.0.

Also removing deprecated stuff after a year is more enough time for
people to change their code.


Also the proposal to deprecate this in C++ was back in May of 2003
which is more than enough time to object to the original proposal.

In fact you commented on the original proposal:
http://gcc.gnu.org/ml/gcc/2003-05/msg00933.html
And you concluded the same thing to remove it:
---- quote --------
I agree, for what it's worth, that this extension should go.  It was
poorly thought out, and we never specified how it was supposed to
interact with other language features.  (We've seen two different
problems with it in the Apple code base.)  Doing language extension
correctly takes a lot of work.
----- end quote ------


-- Pinski



More information about the Gcc mailing list