std::codecvt<InternT,ExternT,StateT>:: unshift, do_unshift
|
ヘッダーで定義
<locale>
|
||
|
public
:
result unshift
(
StateT
&
state, ExternT
*
to, ExternT
*
to_end,
|
(1) | |
|
protected
:
virtual
result do_unshift
(
StateT
&
state, ExternT
*
to, ExternT
*
to_end,
|
(2) | |
do_unshift
を呼び出します。
codecvt
ファセットが表現するエンコーディングが状態依存であり、
state
が初期シフト状態ではない変換状態を表す場合、初期シフト状態に戻るために必要な文字を書き込む。文字は最初の要素が
to
によって指される文字配列に書き込まれる。
to_end
-
to
を超える文字は書き込まれない。パラメータ
to_next
は書き込まれた最後の文字の次を指すように更新される。
目次 |
戻り値
std::codecvt_base::result 型の値で、成功ステータスを以下のように示します:
ok
|
必要な文字がすべて書き込まれました。 state は初期シフト状態を表します |
partial
|
出力バッファの空き容量が不足しています。 to_next == to_end |
error
|
未指定のエラーが発生しました |
noconv
|
エンコーディングは状態に依存せず、終端シーケンスは不要です |
注記
この関数は std::basic_filebuf::close() によって呼び出され、状態依存マルチバイト文字シーケンスを終了する他の状況でも使用されます。
例
|
このセクションは不完全です
理由: 例がありません |
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 305 | C++98 |
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
::
do_unshift
いずれの文字も書き込まないことが要求されていた |
要求されない |
| LWG 380 | C++98 | partial の返却意味は「終了を完了するためにより多くの文字を供給する必要がある」であったが、文字は供給されない | 不十分なバッファ空間を示すように修正 |
| LWG 381 | C++98 |
state
が有効であることが要求されておらず、
state が無効な場合に error が返される |
state
が有効であることが要求され、
error の返却はエラーを示す |
| LWG 664 | C++98 |
std::
codecvt
<
char
,
char
,
std::
mbstate_t
>
::
do_unshift
いずれの文字も書き込まないことが要求されていた |
要求されない |
| LWG 665 | C++98 |
std::
codecvt
<
char
,
char
,
std::
mbstate_t
>
::
do_unshift
noconv を返すことが要求されていた |
要求されない |
関連項目
|
ワイド文字をマルチバイト表現に変換する(状態を指定)
(関数) |
|
|
[virtual]
|
InternT
から
ExternT
への文字列変換(ファイル書き込み時など)
(仮想保護メンバ関数) |