[Issue 21692] Non-mutable extern(D) scope class instances cannot be created.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Mar 8 23:43:29 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=21692

--- Comment #2 from thomas.bockman at gmail.com ---
(In reply to kinke from comment #1)
> This seems caused by `scope` allocations for (D) classes getting an implicit
> `delete stackConstD`, while C++ classes don't. Which is probably a bug in
> its own right.

Good catch! I filed a separate bug for that:
    https://issues.dlang.org/show_bug.cgi?id=21693

> The `delete` expression is deprecated; it resets the pointer to null, that's
> why it cannot be const. An updated lowering could use `destroy()` instead
> (it's only about calling the dtor/finalizer AFAICT), for C++ classes too,
> which should make it work with const as well (without dtor or with a const
> dtor).

Yes, that is how it should work.

--


More information about the Digitalmars-d-bugs mailing list