Portabilidad en los límites de ABI
Use tipos y convenciones suficientemente portátiles en los límites de la interfaz binaria. Un "tipo portátil" es un tipo integrado de C o una estructura que contiene solo tipos integrados de C. Los tipos de clases solo se pueden usar cuando el autor y el destinatario de la llamada tienen el mismo diseño, usan la misma convención de llamada, etc. Eso solo es posible cuando se han usado el mismo compilador y la misma configuración de compilador para realizar la compilación.
Cómo acoplar una clase para la portabilidad de C
Cuando los autores de llamadas se pueden compilar con otro compilador o lenguaje, "acople" a una API externa de "C" con una convención de llamada específica:
// class widget {
// widget();
// ~widget();
// double method( int, gadget& );
// };
extern "C" { // functions using explicit "this"
struct widget; // opaque type (forward declaration only)
widget* STDCALL widget_create(); // constructor creates new "this"
void STDCALL widget_destroy(widget*); // destructor consumes "this"
double STDCALL widget_method(widget*, int, gadget*); // method uses "this"
}
Consulte también
Aquí está otra vez C++
Referencia del lenguaje C++
Biblioteca estándar de C++
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de