¿Por qué el flujo de archivos ancho en C ++ limita los datos escritos de forma predeterminada?

Honestamente, no obtengo la siguiente decisión de diseño en la biblioteca estándar de C ++. Al escribir caracteres anchos en un archivo, elwofstream conversoswchar_t dentrochar caracteres:

#include <fstream>
#include <string>

int main()
{
    using namespace std;

    wstring someString = L"Hello StackOverflow!";
    wofstream file(L"Test.txt");

    file << someString; // the output file will consist of ASCII characters!
}

Soy consciente de que esto tiene que ver con el estándar.codecvt. Ahi estacodecvt parautf8 enBoost. Además, hay unacodecvt parautf16 porMartin York aquí en SO. La pregunta espor qué lastandard codecvt convierte caracteres anchos? ¿Por qué no escribir los personajes como son?

Además, vamos a ser realesunicode streams con C ++ 0x o me estoy perdiendo algo aquí?

Respuestas a la pregunta(5)

Su respuesta a la pregunta