On Tuesday, 20 April 2021 at 19:56:33 UTC, Steven Schveighoffer wrote:
I have had the need in some cases to *maybe* set a const value inside a loop. One can sometimes abstract this into a lambda function, but sometimes this is not possible (e.g. if the loop is static). Not only that, but I may also want to keep processing the loop and do something different if the value has already been set instead of returning immediately, which necessitates a second loop.

My use case is I have a property that is const inside a set of types, and I want to verify that they all have the same value, and extract what that value is.

I'm wondering if anyone has a "Write once" type, that is, a type that allows you to write it exactly once, and is treated like initialization on first setting (i.e. allows writing to previously unused const data).

This type has to decide at runtime whether it has been set. So it would kind of be like Nullable!T, but Nullable doesn't allow setting when the T is const. Optional!T doesn't work either.

-Steve

Not quite your use case, I think, but std.typecons.Rebindable at least allows you to bind a new const(object). Not write once though.

I think I found that after a hint of its existence in
https://forum.dlang.org/thread/orpbvvjspibfpitnn...@forum.dlang.org


Reply via email to