Como resultado de mi previousquestions me pregunté: ¿es útil instalar una interfaz C++ para un sistema de complemento? Los siguientes puntos están hablando en contra de ella:¿Por qué debería configurar una interfaz de complemento en C++ en lugar de c
- Sin ABI común entre los distintos compiladores y sus versiones, sin la disposición común de los objetos en la memoria
- Sin exportación de clase directa. Tienes que exportar fábricas y destructores. Se producen problemas si sus objetos están en manos de otros objetos que solo los tienen en
delete
, por ejemplo, punteros inteligentes. - diferentes implementaciones de la STL, no se puede pasar un
std::list<T>
al plugin - Las diferentes versiones de las bibliotecas utilizadas como Boost
Si refrenarse a las partes restantes del lenguaje C++ terminas casi con el "subconjunto C". ¿Hay algún punto hablando por usar C++? ¿Cómo resuelve Qt-Toolkit los problemas mencionados?
Observación: me refiero principalmente al sistema Linux. Sin embargo, estoy interesado en soluciones en otras plataformas.
Pregunta adicional: ¿Cuáles son los problemas al usar una interfaz C? El diseño de memoria de struct
s? ¿Qué partes del lenguaje de C deberían evitarse?
El estándar C tampoco especifica un ABI. De hecho, todos los problemas de los que se queja pueden aplicarse tanto a C como a C++. –
Sí, vale la pena señalar que el estándar generalmente lo establece el sistema operativo, y puede o no tener algo que ver con lo que hacen sus compiladores C. En Windows es stdcall. –
@Neil. El estándar C tiene un ABI bien definido. Es por eso que C es el PEGAMENTO entre tantos otros idiomas. –