Problem with Sorting
Steven Schveighoffer
schveiguy at yahoo.com
Fri Jan 28 08:00:32 PST 2011
On Fri, 28 Jan 2011 00:05:34 -0500, Jonathan M Davis <jmdavisProg at gmx.com>
wrote:
> Also, the signature for opCmp on classes is supposed to be
>
> int opCmp(Object o)
>
> It's supposed to take Object. I'm surprised that it works at all the way
> that it
> is.
std.algorithm.sort is a template, so it has access to the fully derived
class type. The compiler simply rewrites a < b as a.opCmp(b), which calls
his function if you are using the derived type.
Without defining opCmp as taking object, however, the builtin array sort
would fail with a hidden function error.
-Steve
More information about the Digitalmars-d-learn
mailing list