Non-null objects, the Null Object pattern, and T.init
Timon Gehr
timon.gehr at gmx.ch
Thu Jan 16 22:18:57 PST 2014
On 01/17/2014 03:11 AM, Adam D. Ruppe wrote:
> On Friday, 17 January 2014 at 02:04:27 UTC, Andrei Alexandrescu wrote:
>> Yah, that would be expected.
>
> Yeah, but I think people would find it weird. This kind of thing is
> actually possible today:
class Foo{ int x = 2; }
class Bar{ auto foo = new Foo(); }
void main(){
auto ibar = new immutable(Bar)();
auto bar = new Bar();
static assert(is(typeof(ibar.foo.x)==immutable));
assert(ibar.foo.x==2);
bar.foo.x=3;
assert(ibar.foo.x==3); // uh-oh!
}
More information about the Digitalmars-d
mailing list