std::wstring_convert<Codecvt,Elem,Wide_alloc,Byte_alloc>:: wstring_convert
From cppreference.net
<
cpp
|
locale
|
wstring convert
|
wstring_convert
(
)
:
wstring_convert
(
new Codecvt
)
{
}
|
(1) | |
|
explicit
wstring_convert
(
Codecvt
*
pcvt
)
;
|
(2) | |
|
wstring_convert
(
Codecvt
*
pcvt, state_type state
)
;
|
(3) | |
|
explicit
wstring_convert
(
const
byte_string
&
byte_err,
const wide_string & wide_err = wide_string ( ) ) ; |
(4) | |
|
wstring_convert
(
const
std::
wstring_convert
&
)
=
delete
;
|
(5) | (C++14以降) |
| オーバーロード | データメンバ | ||||
|---|---|---|---|---|---|
byte_err_string
|
wide_err_string
|
cvtptr
|
cvtstate
|
cvtcount
|
|
| (1) | デフォルト初期化 | new Codecvt | デフォルト初期化 | 未初期化 | |
| (2) | pcvt | ||||
| (3) | state | ||||
| (4) | byte_err | wide_err | new Codecvt | state_type ( ) | |
2,3)
pcvt
がヌルポインタの場合、動作は未定義です。
翻訳のポイント:
- HTMLタグ、属性、
タグ内のテキストはそのまま保持
- C++専門用語(CopyConstructible)は翻訳せず
- 技術文書として正確で専門的な表現を使用
- 原文の構造とフォーマットを完全に維持
パラメータ
| pcvt | - | 変換ファセットへのポインタ |
| state | - | 変換シフト状態の初期値 |
| byte_err | - | エラー時に表示するナロー文字列 |
| wide_err | - | エラー時に表示するワイド文字列 |
例
このコードを実行
#include <codecvt> #include <locale> #include <utility> // ロケールに依存するファセットをwstring/wbuffer変換に適合させるユーティリティラッパー template<class Facet> struct deletable_facet : Facet { using Facet::Facet; // コンストラクタを継承 ~deletable_facet() {} }; int main() { // UTF-16le / UCS4 変換 std::wstring_convert <std::codecvt_utf16<char32_t, 0x10ffff, std::little_endian>> u16to32; // カスタムメッセージを使用したUTF-8 / ワイド文字列変換 std::wstring_convert<std::codecvt_utf8<wchar_t>> u8towide("Error!", L"Error!"); // GB18030 / ワイド文字列変換ファセット using F = deletable_facet<std::codecvt_byname<wchar_t, char, std::mbstate_t>>; std::wstring_convert<F> gbtowide(new F("zh_CN.gb18030")); }
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2175 | C++11 | pcvt がヌルポインタである可能性があった | この場合の動作は未定義 |
| LWG 2176 | C++11 | 単一引数を受け取るコンストラクタが暗黙的だった | 明示的に変更 |
| P0935R0 | C++11 | デフォルトコンストラクタが明示的だった | 暗黙的に変更 |