On Saturday, 6 February 2016 at 11:15:06 UTC, Ola Fosheim Grøstad wrote:
Nothing prevents you from creating your own reference counting mechanism.

A struct wrapper doesn't give the things you need to reliably handle inheritance.

interface A {}
interface B {}
class C : A, B {}

void use(RefCounted!A) {}

RefCounted!C c;
use(c);



With alias this tricks, you can handle one level of inheritance, you could make it return a RefCounted!A or B, but not both. Multiple alias this could solve this... but that PR is in limbo again AFAIK.

Of course, you could just write some named function to return the right interface and tell the user to call it, but it won't be an implicit conversion like it is with interfaces normally.

(BTW, for the record, I have no problem with named functions, it just is different than the built-in thing.)

Reply via email to