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

Christopher Wright dhasenan at gmail.com
Sat Feb 16 18:32:53 PST 2008


none wrote:
> == Quote from Janice Caron (caron800 at googlemail.com)'s article
>> On 16/02/2008, none <z at gg.com> wrote:
>>>  So why can't we have both (just as in C++):
>> This has been covered so many times before, but in summary, allowing
>> that would completely break the type system.
> 
> I don't understand why it will break the type system; in any case, even without it
> (as we do now), I can always get around it by using D pointers:

 From Walter's perspective, there are a few choices:
- First-class references. A large language feature to solve a small problem.
- Do nothing.
- Have Andrei cook up a library solution.

For that last, you can't simply put a struct around it and go on your 
merry way. The closest you can reasonably come is:

struct Tailconst(T) {
    T t;
    void opAssign(T value) { t = value; }
    // insert method and operator forwarding here
}




More information about the Digitalmars-d mailing list