Thread overview
Get the default hash function.
Jul 31, 2014
FreeSlave
Jul 31, 2014
H. S. Teoh
July 31, 2014
Really simple question:
how do I get the compiler-generated hash function for a given type?

For example:
Struct S
{
    int i;
}

can be used in an associative array. That means the compiler generates a "toHash" function. Is there any simple way to call it directly?
July 31, 2014
On Thursday, 31 July 2014 at 12:05:53 UTC, francesco cattoglio wrote:
> Really simple question:
> how do I get the compiler-generated hash function for a given type?
>
> For example:
> Struct S
> {
>     int i;
> }
>
> can be used in an associative array. That means the compiler generates a "toHash" function. Is there any simple way to call it directly?

I believe you may use typeid to get TypeInfo instance. It has getHash method - http://dlang.org/phobos/object.html#.TypeInfo
July 31, 2014
On Thu, Jul 31, 2014 at 12:05:52PM +0000, francesco cattoglio via Digitalmars-d-learn wrote:
> Really simple question:
> how do I get the compiler-generated hash function for a given type?
> 
> For example:
> Struct S
> {
>     int i;
> }
> 
> can be used in an associative array. That means the compiler generates a "toHash" function. Is there any simple way to call it directly?

	struct S {
		int i;
	}

	void main() {
		auto s = S(123);
		import std.stdio;
		writeln(typeid(s).getHash(&s));
	}


T

-- 
"Maybe" is a strange word.  When mom or dad says it it means "yes", but when my big brothers say it it means "no"! -- PJ jr.