Me estoy orientando a Windows, pero no veo ninguna razón por la cual algunos códigos API que estoy escribiendo no pueden usar tipos básicos de C++. Lo que quiero hacer es exponer los métodos que devuelven cadenas y puntos. En el mundo de C# solo usaría una cadena y una cadena Unicode, pero en VC++ tengo la opción de usar std :: string, std :: wstring o MFC/ATL CStrings.Tipos básicos para exponer en una API de C++
¿Debo usar std :: wstring exclusivamente para soportar unicode, o puedo usar std :: string que se compilará en unicode en función de la configuración de mi compilación? Me estoy inclinando hacia este último. Preferiría proporcionar métodos Get [Item] AsCString() en mis objetos para otros tipos de cadena.
También debería estar usando size_t en lugar de enteros?
La API la utilizaré yo, y quizás un futuro desarrollador que trabaje en la GUI de C++. Es una forma de separar preocupaciones. Mis preferencias:
- Intuitividad para otros desarrolladores.
- Compatibilidad hacia adelante con VC++
- Compatibilidad con otros compiladores de C++
- Rendimiento (esto es una preocupación menor para mí, pero necesita más tiempo para iniciar resto de mi aplicación)
sería apreciada Cualquier guías .
Este estilo de configuración del proyecto realmente depende del propósito del proyecto, etc. Todo tiene su lugar y es por eso que ciertos aspectos no son simplemente obsoletos. 'std :: string' es el uso más común que he visto (aunque he visto' wchar_t', etc. para unicode) y si estás midiendo el tamaño de algo, usa 'size_t'. – RageD