AA initialization
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Aug 6 07:38:33 PDT 2014
On Wednesday, 6 August 2014 at 13:15:27 UTC, Kozzi11 wrote:
> AFAIK there is no easy way to do it. Maybe it would be fine to
> add some function to phobos. Something like this:
>
>
> auto initAA(VT,KT)() {
>
> static struct Entry
> {
> Entry *next;
> size_t hash;
> }
>
> static struct Impl
> {
> Entry*[] buckets;
> size_t nodes;
> TypeInfo _keyti;
> Entry*[4] binit;
>
> @property const(TypeInfo) keyti() const @safe pure nothrow
> @nogc
> { return _keyti; }
> }
>
> static struct AA
> {
> Impl* impl;
> }
>
> VT[KT] aaa;
> AA* aa = cast(AA*)&aaa;
> if (aa.impl is null)
> { aa.impl = new Impl();
> aa.impl.buckets = aa.impl.binit[];
> }
> aa.impl._keyti = cast() typeid(aaa);
> return aaa;
> }
>
>
> Or it would be fine if I could write something like this: auto
> aa = new VT[KT]();
`string[string] aa = [];` would be fine, too, but it currently
doesn't compile.
More information about the Digitalmars-d-learn
mailing list