名前空間
変種
操作

std::collate_byname

From 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() を介して、文字列比較述語を期待するすべての標準アルゴリズムに直接適用できます。

目次

[編集] 特化

標準ライブラリは、以下の特殊化を提供することが保証されています。

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

[編集] メンバ関数

(コンストラクタ)
新しい collate_byname ファセットを構築します
(public member function) [編集]
(デストラクタ)
collate_byname ファセットを破棄します
(protected member function) [編集]

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>

[編集] データメンバ

メンバ 説明
std::locale::id id [static] ファセットの識別子

メンバ関数

do_compare を呼び出します
(std::collate<CharT> の public メンバ関数) [編集]
do_transform を呼び出します
(std::collate<CharT> の public メンバ関数) [編集]
do_hash を呼び出します
(std::collate<CharT> の public メンバ関数) [編集]

Protected member functions

[virtual]
このファセットの照合規則を使用して2つの文字列を比較します。
(std::collate<CharT> の仮想保護メンバー関数) [編集]
[virtual]
照合を比較に置き換えることができるように文字列を変換します。
(std::collate<CharT> の仮想保護メンバ関数) [編集]
[virtual]
このファセットの照合規則を使用して整数ハッシュ値を生成します
(std::collate<CharT> の virtual protected メンバ関数) [編集]

[編集] 注記

照合順序は辞書順です。つまり、文字のアルファベット順での位置(その等価クラス)は、大文字・小文字やバリアントよりも優先順位が高くなります。等価クラス内では、小文字は対応する大文字よりも前に照合され、ダイアクリティカルマークが付いた文字にはロケール固有の順序が適用される場合があります。一部のロケールでは、文字のグループが単一の照合単位として比較されます。たとえば、チェコ語の "ch""h" の後に来て "i" の前に来ます。ハンガリー語の "dzs""dz" の後に来て "g" の前に来ます。

[編集]

[編集] 関連項目

文字列の辞書順比較とハッシュ化を定義する
(クラステンプレート) [編集]
現在のロケールに従って2つの文字列を比較する
(関数) [編集]
現在のロケールに従って2つのワイド文字列を比較する
(関数) [編集]
このロケールの照合ファセットを使用して2つの文字列を辞書順に比較する
std::localeのpublicメンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)