toHash => pure, nothrow, const, @safe
Walter Bright
newshound2 at digitalmars.com
Sun Mar 11 16:54:09 PDT 2012
Consider the toHash() function for struct key types:
http://dlang.org/hash-map.html
And of course the others:
const hash_t toHash();
const bool opEquals(ref const KeyType s);
const int opCmp(ref const KeyType s);
They need to be, as well as const, pure nothrow @safe.
The problem is:
1. a lot of code must be retrofitted
2. it's just plain annoying to annotate them
It's the same problem as for Object.toHash(). That was addressed by making those
attributes inheritable, but that won't work for struct ones.
So I propose instead a bit of a hack. toHash, opEquals, and opCmp as struct
members be automatically annotated with pure, nothrow, and @safe (if not already
marked as @trusted).
More information about the Digitalmars-d
mailing list