char
aから aへの書き込みが許可されていることがわかりましたstd::wostream
(たとえば、std::wcout<<"looooool";
)。
どのようにchar
変更されてwchar
いますか (それが起こる場合)?
char
aまたは c-string ( ) をワイド ストリームに送信するchar *
と、個々のオクテット (バイト) が で wchar に変換されwiden
ます。からの自動変換はありませんstd::string
。
バイトは一度に 1 つずつ変換されるため、この方法でマルチバイト UTF-8 文字をワイド ストリームに送信することはできません。デフォルトのロケールでは、ASCII 以外の文字からワイド文字への変換は行われないため、変換は失敗し、ワイド ストリームはエラー状態になります。
この変換を利用するかどうかはあなた次第です。標準では許可されており、文字リテラルと文字列リテラルについては、少なくとも、私には無害に思えます。std::wstring
ただし、ワイド ストリームに送信する文字列オブジェクトはではなく、 である必要があることに注意してくださいstd::string
。