Didn't the example further down the web page make it clear.?
To be consistent, you read the first form as "sort the elements of the
list using the default operator< that may be defined for the element
type as the comparison function." If the list contains strings, then
it would use the operator< defined for the string class. If the list
contains int, then it would use the < operator defined for int. If
the list contains struct, it should generate a diagnostic that there
is not default operator< defined for struct.
Read the second as "sort the elements of the list using the specified
function as the comparison function." It is your job to insure the
specified function exists, takes the correct argument types, and
returns either 0 or 1 depending on the result of the comparison.
--
Remove del for email