This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: generalized lvalues
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