http://wiki.dlang.org/DIP25
Meta via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jan 8 13:04:05 PST 2015
On Monday, 5 January 2015 at 19:21:38 UTC, Steven Schveighoffer
wrote:
> On 1/5/15 10:05 AM, Meta wrote:
>
>> IMO, inout (and const/immutable to a degree) is a failure for
>> use with
>> class/struct methods. This became clear to me when trying to
>> use it for
>> the toString implementation of Nullable.
>
> You'd have to be more specific for me to understand your point.
> inout was specifically designed for one-implementation
> accessors for members of classes/structs.
>
> -Steve
I cannot remember what the exact issue is now as it was awhile
ago, but it had to do with a creating inout/const/immutable
Nullables. When doing something such as `Nullable!TestStruct ts;
writeln(ts)`, the check inside Nullable.get is triggered instead
of calling toString, because toString is not marked as
inout/const/immutable. The only solution seems to have a separate
version of toString for inout, const, and immutable. It seems
that pretty much defeats the point of having inout in the first
place.
More information about the Digitalmars-d
mailing list