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

[email protected] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #1 from [email protected] ---
(In reply to Maik Klein from comment #0)
> I opened a stack overflow question which contains all the needed details 
> 
> http://stackoverflow.com/questions/37868594/disposing-a-class-with-an-
> interface?lq=1

There a dispose overload that works with interface. It's available because you
can retrieve the object that implements the interface using "cast(Object) itf".

So to me the report is invalid:

uint a;
interface Bar{}
class Foo: Bar
{
    ~this(){a = 1;}
}

void main()
{
    import std.experimental.allocator.mallocator;
    import std.experimental.allocator;
    auto f = Mallocator.instance.make!Foo();
    Bar b = f;
    Mallocator.instance.dispose(b);
    assert(a == 1);
}
I think that on S.O you ignore what is done here

https://github.com/dlang/phobos/blob/master/std/experimental/allocator/package.d#L1135

This is basically what allows to destroy an object from its interface.

--

Reply via email to