Optional type - how to correctly reset a wrapped immutable T

aliak something at something.com
Tue Mar 27 06:26:57 UTC 2018


On Monday, 26 March 2018 at 21:17:10 UTC, jmh530 wrote:
> On Sunday, 25 March 2018 at 21:26:57 UTC, aliak wrote:
>> Hi, I have this optional type I'm working on and I've run in 
>> to a little snag when it comes to wrapping an immutable. 
>> Basically what I want is for an Optional!(immutable T) to 
>> still be settable to "some" value or "no" value because the 
>> Optional wrapper itself is mutable.
>>
> [snip]
>
> You might look at the source for std.typecons.Nullable. They 
> use an inout constructor.

Unfortunately

Nullable!(inout int) b = 3;

produces that compiler error. This seems more a case on how T is 
stored than about construction in particular. Was interesting to 
see a use case for hasElaborateAssign though!

By the by,  how come inout has to be stack based and 
const/immutable/mutable doesn't? Isn't inout just one of those 
depending on context?

Cheers,
- Ali



More information about the Digitalmars-d-learn mailing list