Portabilidad en los límites de ABI (C++ moderno)

Tipos suficientemente portables en uso y convenciones de los límites binarios de la interfaz. Un “portable tipo” es tipo integrado de C/C++. o struct que sólo contiene tipos integrados de C. Los tipos de clase pueden utilizar solo cuando el llamador y el destinatario coinciden con diseño, la convención de llamada, etc. Esto sólo es posible cuando ambos se compilan con el compilador y las opciones del compilador.

Cómo aplanar una clase para la portabilidad de C

Cuando los llamadores pueden compilarse con otro compilador/lenguaje, después “quitar información de estructura jerárquica” a extern “C” API con una convención de llamada concreta:

// 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

Aquí está otra vez C++ (C++ moderno)

Referencia de lenguaje C++

Referencia de biblioteca estándar de C++