std:: ctype_byname
|
ヘッダーで定義
<locale>
|
||
|
template
<
class
CharT
>
class ctype_byname : public std:: ctype < CharT > ; |
||
std::ctype_byname
は、その構築時に指定されたロケールの文字分類ルールをカプセル化する
std::ctype
ファセットです。
目次 |
特殊化
標準ライブラリは以下の特殊化を提供することが保証されています:
|
ヘッダーで定義
<locale>
|
|
| std :: ctype_byname < char > | ナローマルチバイト文字の分類を提供(文字分類にテーブル参照を使用) |
| std :: ctype_byname < wchar_t > | ワイド文字の分類を提供 |
ネスト型
| 型 | 定義 |
mask
|
typename std:: ctype < CharT > :: mask |
メンバー関数
|
(constructor)
|
新しい
ctype_byname
ファセットを構築する
(public member function) |
|
(destructor)
|
ctype_byname
ファセットを破棄する
(protected member function) |
std::ctype_byname:: ctype_byname
|
explicit
ctype_byname
(
const
char
*
name,
std::
size_t
refs
=
0
)
;
|
||
|
explicit
ctype_byname
(
const
std::
string
&
name,
std::
size_t
refs
=
0
)
;
|
(C++11以降) | |
指定されたロケール名
name
に対して新しい
std::ctype_byname
ファセットを構築します。
refs はリソース管理に使用されます: refs == 0 の場合、実装はこのファセットを保持する最後の std::locale オブジェクトが破棄されるときにファセットを破棄します。それ以外の場合、オブジェクトは破棄されません。
パラメータ
| name | - | ロケール名 |
| refs | - | ファセットにリンクする参照数 |
std::ctype_byname:: ~ctype_byname
|
protected
:
~ctype_byname ( ) ; |
||
ファセットを破棄します。
std::
ctype
<CharT>
(
CharT
が
char
でない場合のみ)
から継承
ネスト型
| 型 | 定義 |
char_type
|
CharT
|
データメンバ
| メンバ | 説明 |
std::locale::id
id
[static]
|
ファセット の識別子 |
メンバ関数
do_is
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_scan_is
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_scan_not
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_toupper
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_tolower
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_widen
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_narrow
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
保護メンバ関数
|
[virtual]
|
1文字または複数文字を大文字に変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
1文字または複数文字を小文字に変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
char
から
CharT
へ1文字または複数文字を変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
CharT
から
char
へ1文字または複数文字を変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
1文字または文字シーケンスを分類する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
指定された分類に適合するシーケンス内の最初の文字を検索する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
指定された分類に失敗するシーケンス内の最初の文字を検索する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
std::
ctype<char>
から継承
CharT
が
char
の場合のみ
ネスト型
| 型 | 定義 |
char_type
|
char |
データメンバ
| メンバ | 説明 |
std::locale::id
id
[static]
|
ファセット の識別子 |
const
std::
size_t
table_size
[static]
|
分類テーブルのサイズ(少なくとも256) |
メンバ関数
|
文字分類テーブルを取得する
(
std::ctype
<char>
の公開メンバ関数)
|
|
|
[static]
|
「C」ロケールの文字分類テーブルを取得する
(
std::ctype
<char>
の公開静的メンバ関数)
|
|
文字または文字シーケンスを分類テーブルを使用して分類する
(
std::ctype
<char>
の公開メンバ関数)
|
|
|
指定された分類に適合する最初の文字をシーケンス内で検索する(分類テーブルを使用)
(
std::ctype
<char>
の公開メンバ関数)
|
|
|
指定された分類に失敗する最初の文字をシーケンス内で検索する(分類テーブルを使用)
(
std::ctype
<char>
の公開メンバ関数)
|
|
do_toupper
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_tolower
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_widen
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
|
do_narrow
を呼び出す
(
std::ctype<CharT>
の公開メンバ関数)
|
保護メンバ関数
|
[virtual]
|
1文字または複数文字を大文字に変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
1文字または複数文字を小文字に変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
char
から
CharT
へ1文字または複数文字を変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
|
[virtual]
|
CharT
から
char
へ1文字または複数文字を変換する
(
std::ctype<CharT>
の仮想保護メンバ関数)
|
std:: ctype_base から継承
ネストされた型
| 型 | 定義 |
mask
|
未指定の BitmaskType 型(列挙型、整数型、またはビットセット) |
メンバ定数
|
space
[static]
|
空白文字分類を識別する
mask
の値
(public static member constant) |
|
print
[static]
|
印字可能文字分類を識別する
mask
の値
(public static member constant) |
|
cntrl
[static]
|
制御文字分類を識別する
mask
の値
(public static member constant) |
|
upper
[static]
|
大文字分類を識別する
mask
の値
(public static member constant) |
|
lower
[static]
|
小文字分類を識別する
mask
の値
(public static member constant) |
|
alpha
[static]
|
英字分類を識別する
mask
の値
(public static member constant) |
|
digit
[static]
|
数字分類を識別する
mask
の値
(public static member constant) |
|
punct
[static]
|
句読点分類を識別する
mask
の値
(public static member constant) |
|
xdigit
[static]
|
16進数字分類を識別する
mask
の値
(public static member constant) |
|
blank
[static]
(C++11)
|
空白文字分類を識別する
mask
の値
(public static member constant) |
|
alnum
[static]
|
alpha
|
digit
(public static member constant) |
|
graph
[static]
|
alnum
|
punct
(public static member constant) |
注記
std :: ctype_byname < char > は、 <locale> の概要において明示的特殊化として誤って宣言されており、 LWG issue 1298 の解決によって宣言は削除されましたが、 std :: ctype_byname < wchar_t > と同様に、必要な特殊化として残っています。
例
#include <iostream> #include <locale> int main() { wchar_t c = L'\u00de'; // capital letter thorn std::locale loc("C"); std::cout << "isupper('Þ', C locale) returned " << std::boolalpha << std::isupper(c, loc) << '\n'; loc = std::locale(loc, new std::ctype_byname<wchar_t>("en_US.utf8")); std::cout << "isupper('Þ', C locale with Unicode ctype) returned " << std::boolalpha << std::isupper(c, loc) << '\n'; }
出力:
isupper('Þ', C locale) returned false
isupper('Þ', C locale with Unicode ctype) returned true
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 16 | C++98 |
std::ctype_byname<char>の明示的特殊化の定義で
do_narrow
の名前とパラメータリストが誤って指定されていた
|
修正済み |
| LWG 616 | C++98 |
mask
の定義に
typename
ディスアンビギュエータが欠如していた
|
追加済み |
関連項目
|
文字分類テーブルを定義する
(クラステンプレート) |
|
|
std::ctype
の
char
型に対する特殊化
(クラステンプレートの特殊化) |