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