Struct immutable data and dict
Timoses
timosesu at gmail.com
Tue Sep 4 13:04:45 UTC 2018
On Tuesday, 4 September 2018 at 12:27:47 UTC, nkm1 wrote:
> I also had this problem recently. I think aa.require() should
> allow to add immutables (feature request). Anyway, my
> workaround was along the lines of:
>
> final class AA(Key, Value)
> {
> Value[] _storage;
> size_t[Key] _aa;
>
> void opIndexAssign(Value value, Key key)
> {
> if (key !in _aa)
> {
> _storage ~= value;
> _aa[key] = _storage.length - 1;
> }
> }
>
> Value opIndex(Key key)
> {
> if (auto index = key in _aa)
> return _storage[*index];
>
> throw new Exception("no key");
> }
> }
>
> immutable struct S
> {
> int num;
> }
>
> void main()
> {
> import std.stdio : writeln;
>
> auto aa = new AA!(string, S);
>
> aa["one"] = S(1);
> aa["two"] = S(2);
>
> writeln(aa["one"]);
> writeln(aa["two"]);
> }
Thanks for the replies. It seems quite annoying.
I just use classes for now.
More information about the Digitalmars-d-learn
mailing list