How to cast away shared?

Ruby The Roobster rubytheroobster at yandex.com
Wed Aug 3 13:51:57 UTC 2022


On Wednesday, 3 August 2022 at 13:00:05 UTC, Paul Backus wrote:
> On Wednesday, 3 August 2022 at 12:50:17 UTC, Ruby The Roobster 
> wrote:
>> Any way to 'cast away' shared for an unknown type T?
>
> There's actually an `Unshared` template for this in 
> `std.traits`, but for some reason it's `private`, so you can't 
> use it directly. Fortunately, it's only two lines:
>
> ```d
> alias Unshared(T) = T;
> alias Unshared(T: shared U, U) = U;
> ```
>
> Once you have this, you can write `cast(Unshared!T)`.

Thank you.  This really helped.


More information about the Digitalmars-d-learn mailing list