RFC: reference counted Throwable

via Digitalmars-d digitalmars-d at puremagic.com
Sat Sep 20 02:05:23 PDT 2014


On Saturday, 20 September 2014 at 08:32:55 UTC, Dicebot wrote:
> On Saturday, 20 September 2014 at 08:20:47 UTC, Marc Schütz 
> wrote:
>> I don't think ARC is needed.
>>
>> library RC + borrowing + uniqueness/moving = WIN
>
> You can't do polymorphic entity RC (like exceptions) without at 
> least some help from compiler because language currently does 
> not provide tools for lifetime control of classes. At least 
> _some_ form of ARC is necessary.

I think we can, using templated alias this. We're not there yet, 
but it's probably feasable, seeing that Igor Stepanov already 
implemented multiple alias this [1]. With that and maybe a little 
opDispatch magic, it should be possible to making wrappers that 
are implicitly convertible to wrappers of parents of their inner 
types.

Granted, for exceptions there's more needed: There needs to be 
support for throwing and catching these wrappers, and for 
catching wrappers of derived types, too. But note that 
throw/catch itself doesn't involve copying, it's a moving 
operation, which might make it easier.

[1] https://github.com/D-Programming-Language/dmd/pull/3998


More information about the Digitalmars-d mailing list