toHash => pure, nothrow, const, @safe
so
so at so.so
Mon Mar 12 00:18:05 PDT 2012
On Sunday, 11 March 2012 at 23:54:10 UTC, Walter Bright wrote:
> 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).
A pattern is emerging. Why not analyze it a bit and somehow try
to find a common ground? Then we can generalize it to a single
annotation.
More information about the Digitalmars-d
mailing list