std::codecvt<InternT,ExternT,State>::unshift, do_unshift
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <locale> で定義
|
||
public: result unshift( StateT& state, ExternT* to, ExternT* to_end, ExternT*& to_next) const; |
(1) | |
protected: virtual result do_unshift( StateT& state, ExternT* to, ExternT* to_end, ExternT*& to_next) const; |
(2) | |
1) public メンバ関数。 最も派生したクラスのメンバ関数
do_unshift を呼びます。2) この
codecvt ファセットによって表現されるエンコーディングが状態依存であり、 state が初期シフト状態でない変換状態を表す場合は、初期シフト状態に戻すために必要な文字を書き込みます。 文字は to によって最初の要素が指されている文字配列に書き込まれます。 最大 to_end-to 個の文字が書き込まれます。 引数 to_next は書き込まれた最後の文字の次を指すように更新されます。戻り値
以下のような成功ステータスを表す std::codecvt_base::result 型の値。
ok
|
必要なすべての文字が書き込まれました。 state は今や初期状態を表します
|
partial
|
出力バッファに十分な空きがありません。 to_next == to_end
|
error
|
未規定なエラーが発生しました |
noconv
|
エンコーディングは状態依存ではありません。 終端シーケンスは不要です |
変換しない std::codecvt<char, char, std::mbstate_t> の特殊化は常に std::codecvt_base::noconv を返します。
ノート
この関数は std::basic_filebuf::close() によって、および状態依存のマルチバイト文字シーケンスを終了させるときに他の状況で、呼ばれます。
例
| This section is incomplete Reason: no example |
関連項目
| 指定された状態を使用してワイド文字をマルチバイト表現に変換します (関数) | |
[仮想] |
ファイルを書き込む時などのために、文字列を internT から externT に変換します (仮想プロテクテッドメンバ関数) |