std::ctype_byname
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <locale> で定義
|
||
template< class CharT > class ctype_byname : public std::ctype<CharT>; |
||
std::ctype_byname は構築時に指定されたロケールの文字分類ルールをカプセル化する std::ctype ファセットです。
2つの特殊化が標準ライブラリによって提供されます。
ヘッダ
<locale> で定義 | |
std::ctype_byname<char>
|
ナロー文字の分類を提供します。 この特殊化は文字の分類のためにテーブルルックアップを使用します |
std::ctype_byname<wchar_t>
|
ワイド文字の分類を提供します |
メンバ型
| メンバ型 | 定義 |
mask
|
ctype<CharT>::mask
|
メンバ関数
新しい ctype_byname ファセットを構築します (パブリックメンバ関数) | |
ctype_byname ファセットを破棄します (プロテクテッドメンバ関数) |
std::ctype_byname::ctype_byname
<tbody> </tbody> 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
<tbody> </tbody> protected: ~ctype_byname(); |
||
ファセットを破棄します。
std::ctype<CharT> から継承
メンバ型
| メンバ型 | 定義 |
char_type
|
CharT
|
メンバオブジェクト
| メンバ名 | 型 |
static std::locale::id id [静的] |
ロケールの id (パブリック静的メンバ定数) |
| |
static const std::size_t table_size [静的] |
分類テーブルのサイズ、少なくとも256 (パブリック静的メンバ定数) |
メンバ関数
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>のパブリックメンバ関数)
| |
| |
| 文字分類テーブルを取得します ( std::ctype<char>のパブリックメンバ関数)
| |
[静的] |
"C" ロケールの文字分類テーブルを取得します ( std::ctype<char>のパブリック静的メンバ関数)
|
プロテクテッドメンバ関数
[仮想] |
文字を大文字に変換します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
[仮想] |
文字を小文字に変換します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
[仮想] |
文字を char から charT に変換します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
[仮想] |
文字を charT から char に変換します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
| |
[仮想] |
文字を分類します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
[仮想] |
指定された分類に分類される文字シーケンス内の最初の文字を探します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
[仮想] |
指定された分類に分類されないシーケンス内の最初の文字を探します ( std::ctype<CharT>の仮想プロテクテッドメンバ関数)
|
std::ctype_base から継承
メンバ型
| 型 | 定義 |
mask
|
未規定なビットマスク型 (列挙、整数型、またはビット集合) |
メンバ定数
space [静的] |
ホワイトスペース文字の分類を表す mask の値 (パブリック静的メンバ定数) |
print [静的] |
印刷可能な文字の分類を表す mask の値 (パブリック静的メンバ定数) |
cntrl [静的] |
制御文字の分類を表す mask の値 (パブリック静的メンバ定数) |
upper [静的] |
大文字の分類を表す mask の値 (パブリック静的メンバ定数) |
lower [静的] |
小文字の分類を表す mask の値 (パブリック静的メンバ定数) |
alpha [静的] |
アルファベット文字の分類を表す mask の値 (パブリック静的メンバ定数) |
digit [静的] |
数字の分類を表す mask の値 (パブリック静的メンバ定数) |
punct [静的] |
句読点文字の分類を表す mask の値 (パブリック静的メンバ定数) |
xdigit [静的] |
16進数字の分類を表す mask の値 (パブリック静的メンバ定数) |
blank [静的] (C++11) |
ブランク文字の分類を表す mask の値 (パブリック静的メンバ定数) |
alnum [静的] |
alpha | digit (パブリック静的メンバ定数) |
graph [静的] |
alnum | punct (パブリック静的メンバ定数) |
ノート
明示的特殊化 std::ctype_byname<char> は C++11 までヘッダファイル <locale> に別のエントリとして掲載されていました。 これは C++11 で defect #1298 として削除されましたが、要求される特殊化は std::ctype_byname<wchar_t> と同様に残されています。
例
Run this code
#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
関連項目
| 文字分類テーブルを定義します (クラステンプレート) | |
char 型に対する std::ctype の特殊化 (クラステンプレートの特殊化) |