The class collate<charT> provides features
for use in the collation (comparison) and hashing of strings.
A locale member function template, operator(),
uses the collate facet to allow a locale to act directly as
the predicate argument for standard algorithms ([algorithms]) and
containers operating on strings.
The specializations
required in Table Clause 91 ([locale.category]),
namely collate<char> and collate<wchar_t>,
apply lexicographical ordering ([alg.lex.comparison]).