Actualmente estoy desarrollando una biblioteca de C++ multiplataforma de la que pretendo ser consciente de Unicode. Actualmente tengo soporte en tiempo de compilación para std :: string o std :: wstring a través de typedefs y macros. La desventaja de este enfoque es que te obliga a usar macros como L("string")
y hacer un uso intensivo de plantillas basadas en el tipo de carácter.Argumentos a favor y en contra de admitir std :: wstring exclusivamente en la biblioteca multiplataforma
¿Cuáles son los argumentos a favor y en contra para admitir std :: wstring solamente?
¿Usar std :: wstring obstaculizaría exclusivamente la base de usuarios de GNU/Linux, donde se prefiere la codificación UTF-8?
Me gusta bastante el enfoque de Python 3: la nueva clase 'str' es unicode, y hay una nueva clase' bytes' para contener secuencias de bytes, y proporciona una manipulación tipo cadena (búsqueda por subcadenas, etc.). Pero solo pueden interpretarse como texto por conversión con una codificación. Por lo tanto, si alguien está planificando, "datos que solo contienen valores de 7 bits", pueden ahorrar memoria utilizando "bytes", pero sus objetos no son compatibles con las cadenas adecuadas. El incómodo problema que veo con esto en C++ es el mismo que ya tienes con wstring, que tienes que convertir literales, y para llamadas a funciones como 'fopen'. –