Null pointer dereferencing in D

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Sat Jun 14 08:22:16 PDT 2014


On 6/14/14, 5:33 AM, Dicebot wrote:
> On Saturday, 14 June 2014 at 10:15:49 UTC, Marc Schütz wrote:
>> Huh? Types with `@disable this()` still have an `init` value. All it
>> does is disallow instantiating the type without specifying an
>> initializer (e.g. a struct literal, a value returned from a factory
>> function, or `static opCall()`).
>
> Which is effectively a type system hole with @disable this :
>
> struct A { @disable this(); }
> auto a = A.init;

I disagree it's a loophole. A.init is a preexisting object. That said, I 
do understand that sometimes one wants to inhibit A.init, which can be 
achieved by e.g. making it a private member. -- Andrei


More information about the Digitalmars-d mailing list