Skip to content

Latest commit

 

History

History
101 lines (74 loc) · 6.01 KB

File metadata and controls

101 lines (74 loc) · 6.01 KB

locale

  • locale[meta header]

<locale>ヘッダでは、ローカライゼーション(地域化)に関するクラス・関数を定義する。このヘッダに含まれるクラス・関数はstd名前空間で定義される。

ロケール

名前 説明 対応バージョン
locale ロケール(class)
use_facet ロケールが持つファセットの取得(function)
has_facet ロケールがファセットを持っているか判定(function)

利便性インタフェース

名前 説明 対応バージョン
isspace 空白類文字の判定(function)
isprint 印字可能文字の判定(function)
iscntrl 制御文字の判定(function)
isupper 英大文字の判定(function)
islower 英小文字の判定(function)
isalpha 英字の判定(function)
isdigit 数字の判定(function)
ispunct 区切り文字の判定(function)
isxdigit 十六進数字の判定(function)
isalnum 英字・数字の判定(function)
isgraph 図形文字の判定(function)
isblank ブランク文字の判定(function) C++11
toupper 英大文字への変換(function)
tolower 英小文字への変換(function)
wstring_convert codecvtによる文字列変換(class template) C++11
C++17から非推奨
C++26で削除
wbuffer_convert codecvtによるストリームバッファ変換(class template) C++11
C++17から非推奨
C++26で削除
ctype_base 文字分類のための基底クラス(class)
ctype 文字の分類(class template)
ctype_byname 名前による文字の分類(class template)
codecvt_base 文字コード変換のための基底クラス(class)
codecvt 文字コード変換(class template)
codecvt_byname 名前による文字コード変換(class template)

数値

名前 説明 対応バージョン
num_get 数値の解析(class template)
num_put 数値の出力(class template)
numpunct 数値の区切り文字に関する情報(class template)
numpunct_byname 名前による数値の区切り文字情報(class template)

照合

名前 説明 対応バージョン
collate 文字列の照合(class template)
collate_byname 名前による文字列の照合(class template)

日付と時間

名前 説明 対応バージョン
time_base 日時解析のための基底クラス(class)
time_get 日時の解析(class template)
time_get_byname 名前による日時解析(class template)
time_put 日時の出力(class template)
time_put_byname 名前による日時出力(class template)

金額

名前 説明 対応バージョン
money_get 金額の解析(class template)
money_put 金額の出力(class template)
money_base 金額解析のための基底クラス(class)
moneypunct 金額のフォーマット(class template)
moneypunct_byname 名前による金額のフォーマット(class template)

メッセージ取得

名前 説明 対応バージョン
messages_base メッセージ取得のための基底クラス(class)
messages メッセージカタログから対応する翻訳メッセージの取得(class template)
messages_byname 名前による翻訳メッセージの取得(class template)

備考

ロケールファセットにおいて、ある仮想関数が別の仮想関数を呼び出すかどうかは未規定である。

そのため、たとえばctypeを継承してdo_widenの1引数版だけをオーバーライドしても、範囲版が内部でそれを呼び出す保証はない。挙動を変更したい場合は、対応する仮想関数をすべてオーバーライドする必要がある。

参照

  • LWG Issue 473. underspecified ctype calls
    • C++11で、ロケールファセットのある仮想関数が別の仮想関数を呼び出すかどうかは未規定であると明記された。それ以前も呼び出し関係は規定されておらず、片方だけをオーバーライドしたときの挙動は処理系によって異なっていた