Compartir a través de


Portabilidad en ABI Boundaries (C++ moderno)

Utilizar las convenciones y tipos suficientemente portátiles en los límites de la interfaz binaria.Un "tipo portátil" es un tipo integrado en c o una estructura que contiene sólo tipos integrados C.Los tipos de clase sólo pueden utilizarse cuando el llamador y destinatario acuerdan sobre diseño, llamar a la convención, etc.. esto sólo es posible cuando ambos se compilan con el mismo compilador y la configuración del compilador.

Cómo acoplar una clase para la portabilidad c

Cuando los llamadores pueden compilarse con otro compilador y el idioma, a continuación, "acoplar" a una API "extern 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 (fwd decl only)
  widget* STDCALL widget_create();    // ctor → create new  “this”
  void STDCALL widget_destroy( widget* );    // dtor → consume “this”
  double STDCALL widget_method( widget*, int, gadget* );    // method → use “this”
}

Vea también

Otros recursos

Bienvenido a C++ (C++ moderno)

Referencia del lenguaje C++

Referencia de la biblioteca estándar de C++