Insert array into an AA
Steven Schveighoffer
schveiguy at yahoo.com
Tue Aug 16 12:47:59 PDT 2011
On Tue, 16 Aug 2011 15:17:33 -0400, nrgyzer <nrgyzer at gmail.com> wrote:
> Hi everyone,
>
> I've the following:
>
> private static ubyte[][2][hash_t] classInstances;
>
> this() {
>
> classInstances[toHash()] = new ubyte[2]; // does not work
>
> }
>
> I want insert every class instance into the hashmap. Every class
> instance should be contained in the map after the constructor was
> called. When I compile my code, I get "Error: cannot implicitly
> convert expression (new ubyte[](2u)) of type ubyte[] to ubyte[][]"
> which is logical. But is there any way to insert every instance into
> the array and define the array/map for this entry?
It's inadvisable to do this, unless you plan on manually deleting the
instances.
The reason is because the hash will maintain a pointer to every class
instance, which means the GC will never collect them.
Also, it's hard to know why you selected that type, but changing
classInstances to ubyte[][hash_t] should work.
Also, you don't need hash_t, you should be able to do ubyte[][Object]
classInstances.
then add like:
classInstances[this] = new ubyte[2];
The call to toHash is implicit.
-Steve
More information about the Digitalmars-d-learn
mailing list