- locale[meta header]
- std[meta namespace]
- class template[meta id-type]
namespace std {
template <class charT>
class collate : public locale::facet;
}
- locale::facet[link /reference/locale/locale/facet.md]
collateは、文字列の照合(比較)とハッシュ計算のための機能を提供するロケールファセットである。
localeのメンバ関数テンプレートoperator()は、このファセットを使用することで、localeオブジェクトを文字列を扱うアルゴリズムやコンテナの述語として直接使えるようにしている。
規格が要求する特殊化(collate<char>とcollate<wchar_t>)は、辞書順による順序付けを行う。
#include <iostream>
#include <locale>
int main()
{
const auto& col = std::use_facet<std::collate<char>>(std::locale::classic());
const char a[] = "abc";
const char b[] = "abd";
// ロケールの照合順序で比較する
std::cout << col.compare(a, a + 3, b, b + 3) << std::endl;
}
- std::collate[color ff0000]
- col.compare[link collate/compare.md]
- std::use_facet[link use_facet.md]
- std::locale::classic()[link locale/classic.md]