Doing it the way you describe is reasonable. And defining the comparison function inline
in the header itself is a good idea if you care about performance (rather than defining it in the .cpp file).
Personally I have a different preference than you. I would declare this reasonable default comparison function at namespace scope (i.e. right below the class), because as written it does not need privileged access to class members. And I would declare it as operator <
. I don't think there is anything to be ashamed about in terms of making one function "special" when it seems to be a reasonable default ordering.