On Wednesday, 2 April 2014 at 20:39:47 UTC, FreeSlave wrote:
On Wednesday, 2 April 2014 at 20:14:31 UTC, dnspies wrote:
How can I get the default-hash of a struct I've defined (to be used as part of the hash for some containing type)?

UserDefined userDefined;
writeln(typeid(UserDefined).getHash(&userDefined));

Probably there is a better way. I don't like to call typeid for this purpose.

This doesn't work. It prints two different hashes for equal objects. I meant how do I get the default hash which is used by an associative array.

import std.stdio;

struct my_struct {
        int[] arr;
}

void main() {
        my_struct s1;
        s1.arr = [1,2,3];
        my_struct s2;
        s2.arr = [1,2,3];
        writeln(s1 == s2);
        writeln(typeid(my_struct).getHash(&s1));
        writeln(typeid(my_struct).getHash(&s2));
}

true
626617119
2124658624

Reply via email to