Optional type - how to correctly reset a wrapped immutable T
aliak
something at something.com
Tue Mar 27 13:02:50 UTC 2018
On Tuesday, 27 March 2018 at 11:57:28 UTC, jmh530 wrote:
> On Tuesday, 27 March 2018 at 06:26:57 UTC, aliak wrote:
>> [snip]
>>
>> 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?
>
> Example?
Hmm, now that I'm explicitly trying to produce it, I feel I maybe
using inout incorrectly?
struct Optional(T) {
T[] bag;
this(T t) {
bag = [t];
}
}
struct S {
Optional!(inout(int)) f() inout
{
return Optional!(inout(int))(3);
}
}
void main()
{
auto a = S().f;
}
Above gives: Error: variable
`onlineapp.Optional!(inout(int)).Optional.bag` only parameters or
stack based variables can be inout
Change inout to const e.g. and it's all good.
More information about the Digitalmars-d-learn
mailing list