Partager via


Portabilité aux limites ABI (Modern C++)

Utilisez des types suffisamment portables et conventions aux limites de l'interface. Un "type portable" est un type C intégré ou une structure qui contient uniquement des types C intégrés. Les types de fichiers peuvent être utilisés lorsque l'appelant et l'appelé sont d'accord sur la mise en page, la convention d'appel, etc. C'est possible que si les deux arguments sont compilés avec les mêmes compilateur et paramètres de compilateur.

Comment aplatir une classe pour la portabilité C

Lorsque les appelants peuvent être compilés avec un autre compilateur de langage, puis « aplatis » vers une API « C externe » 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

Bienvenue dans C++ (Modern C++)

Référence du langage C++

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