25 Localization library [localization]

25.3 Locales [locales]

25.3.1 Class locale [locale]

25.3.1.4 locale operators [locale.operators]

bool operator==(const locale& other) const;

Returns: true если оба аргумента являются одним и тем же языковым стандартом, или один является копией другого, или каждый имеет имя и имена идентичны; false иначе.

bool operator!=(const locale& other) const;

Returns: !(*this == other).

template <class charT, class traits, class Allocator> bool operator()(const basic_string<charT, traits, Allocator>& s1, const basic_string<charT, traits, Allocator>& s2) const;

Effects: Сравнивает две строки по collate<charT> фасету.

Remarks: Этот шаблон оператора-члена (и, следовательно, locale сам) удовлетворяет требованиям для аргумента (предложение [algorithms]) шаблона предиката компаратора, применяемого к строкам.

Returns:

use_facet<collate<charT>>(*this).compare(s1.data(), s1.data() + s1.size(),
                                         s2.data(), s2.data() + s2.size()) < 0

[ Example: Вектор строк v можно сопоставить в соответствии с правилами сопоставления в локали loc просто с помощью ([alg.sort], [vector]):

std::sort(v.begin(), v.end(), loc);

end example]