名前空間
変種
操作

std::collate_byname

提供: cppreference.com
< cpp‎ | locale
 
 
 
ヘッダ <locale> で定義
template< class CharT >
class collate_byname : public std::collate<CharT>;

std::collate_byname はロケール固有の文字列の照合 (比較) およびハッシュ化をカプセル化する std::collate ファセットです。 ちょうど std::collate のように、 std::regex に設定したり、文字列比較述語を期待するすべての標準アルゴリズムに直接 (std::locale::operator() の意味で) 適用することができます。

2つの特殊化が標準ライブラリによって提供されます。

ヘッダ <locale> で定義
std::collate_byname<char> ロケール固有のマルチバイト文字列の照合
std::collate_byname<wchar_t> ロケール固有のワイド文字列の照合

目次

[編集] メンバ関数

コンストラクタ
新しい collate_byname ファセットを構築します
(パブリックメンバ関数) [edit]
デストラクタ
collate_byname ファセットを破棄します
(プロテクテッドメンバ関数) [edit]

std::collate_byname::collate_byname

explicit collate_byname( const char* name, std::size_t refs = 0 );
explicit collate_byname( const std::string& name, std::size_t refs = 0 );
(C++11以上)

名前 name を持つロケールに対する新しい std::collate_byname ファセットを構築します。

refs はリソース管理のために使用されます。 refs == 0 の場合、処理系はそれを保持する最後の std::locale オブジェクトが破棄されたときにファセットを破棄します。 そうでなければ、オブジェクトは破棄されません。

引数

name - ロケールの名前
refs - ファセットにリンクする参照の数

std::collate_byname::~collate_byname

protected:
~collate_byname();

ファセットを破棄します。

std::collate から継承

メンバ型

メンバ型 定義
char_type charT
string_type std::basic_string<charT>

メンバ関数

do_compare を呼びます
(std::collateのパブリックメンバ関数) [edit]
do_transform を呼びます
(std::collateのパブリックメンバ関数) [edit]
do_hash を呼びます
(std::collateのパブリックメンバ関数) [edit]

プロテクテッドメンバ関数

[仮想]
このファセットの照合ルールを用いて2つの文字列を比較します
(std::collateの仮想プロテクテッドメンバ関数) [edit]
照合を比較に置き換えられるように文字列を変換します
(std::collateの仮想プロテクテッドメンバ関数) [edit]
[仮想]
このファセットの照合ルールを用いて整数のハッシュ値を生成します
(std::collateの仮想プロテクテッドメンバ関数) [edit]

[編集] ノート

照合順序は辞書順です。 アルファベットの文字 (等価クラス) の位置は大文字小文字や変種よりも高い優先度を持ちます。 等価クラス内では、小文字は同等な大文字よりも前に照合され、ダイアクリティカルマーク付きの文字にはロケール固有の順序が適用されるかもしれません。 ロケールによっては、文字のグループが単一の照合単位として比較されます。 例えば、チェコ語の "ch""h" より後、 "i" より前に、ハンガリー語の "dzs""dz" より後、 "g" より前に来ます。

[編集]

[編集] 関連項目

文字列の辞書的な比較とハッシュ値の計算を定義します
(クラステンプレート) [edit]
現在のロケールに従って2つの文字列を比較します
(関数) [edit]
現在のロケールに従って2つのワイド文字列を比較します
(関数) [edit]
このロケールの照合ファセットを用いて2つの文字列を辞書的に比較します
(std::localeのパブリックメンバ関数) [edit]