Why can't we define re-assignable const reference variable?

Craig Black craigblack2 at cox.net
Mon Feb 18 19:47:58 PST 2008


"Sean Reque" <seanthenewt at yahoo.com> wrote in message 
news:fpc5o0$2djh$1 at digitalmars.com...
>> So why can't we have both (just as in C++):
>>
>> ========================
>> const B b;  // b cannot be re-bind, and the object cannot be modified
>> B const b;  // b can    be re-bind, but the object cannot be modified
>> ========================
>
> The saddest part of this is it actually worked this way at least up 
> through 2.007. I compiled the following code in a 2.007 compiler and when 
> it worked, thought that everyone was crazy. Then I downloaded the 2.010 
> compiler and it wouldn't compile. So it's not even a matter of it being a 
> lot of work to make it happen. I think everyone who is interested in 
> having const work the older way should make keep making themselves heard!
>
> import std.stdio;
>
> class C {
> }
>
> int main() {
> C c1 = new C();
> C c2 = new C();
> const(C) cc = c1;
> cc = c2; // compiles with 2.007, but not 2.010
> writeln("done!");
> return 0;
> }

When the latest const system became final, I was a little disappointed, but 
I was like "whatever".  This stuff has been debated way too much and frankly 
I'm sick of hearing about it.  Although I don't think it's going to change 
anything, I agree with you.  Without this feature (whatever the syntax used 
to express it) the const system is simply incomplete.

-Craig 




More information about the Digitalmars-d mailing list