Share via


Portabilité aux limites de ABI (C++ moderne)

Utiliser des types suffisamment portables et les conventions aux limites de l'interface binaire.Un « type d'ordinateur portable » est un type intégré c ou un struct qui contient uniquement des types intégrés C.Les types classe utilisable uniquement lors de l'appelant et appelé conviennent de disposition, appel de la convention, etc.. cela est possible uniquement lorsque les deux sont compilés avec les paramètres de compilateur et le même compilateur.

Comment aplatir une classe pour la portabilité c

Lorsque les appelants peuvent être compilées avec un autre compilateur/langue, puis « aplatir » à une API « extern C » avec une convention d'appel spécifique :

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

Voir aussi

Autres ressources

Accueil vers C++ (C++ moderne)

Guide de référence du langage C++

Référence de la bibliothèque C++ standard