namespace std {
template <class internT, class externT, class stateT>
class codecvt_byname : public codecvt<internT, externT, stateT>;
}
概要
codecvt_bynameは、名前で指定したロケールの文字コード変換を提供する、codecvtの派生クラスである。
codecvtの仮想関数を、locale(const char*)で同じ名前を指定して構築したロケールのファセットと等価な意味論で実装する。
このクラスはcodecvtが提供するインタフェースをそのまま継承しており、独自のメンバ関数は持たない。
メンバ関数
publicメンバ関数
| 名前 | 説明 |
|---|---|
(constructor) |
コンストラクタ |
protectedメンバ関数
| 名前 | 説明 |
|---|---|
(destructor) |
デストラクタ |
例
#include <iostream>
#include <locale>
#include <cwchar>
int main()
{
using codecvt_t = std::codecvt<wchar_t, char, std::mbstate_t>;
// ファセットのデストラクタはprotectedであるため、
// newで確保してlocaleに所有権を渡す
std::locale loc{std::locale::classic(),
new std::codecvt_byname<wchar_t, char, std::mbstate_t>{"C"}};
std::cout << std::boolalpha << std::has_facet<codecvt_t>(loc) << std::endl;
}
出力
true
バージョン
言語
- C++98