ABI 边界处的可移植性(现代 C++)

使用完全可移植和类型 在二进制接口边界的约定。 “可迁移的类型”是 C. 内置类型或包含 C# 仅内置类型的结构。 类类型在调用方和被调用方位对布局达成协议,调用约定时,只能当两种编译的编译器和编译器设置时才能这样做。

展平 C# 如何可移植性的类

当调用方可以使用编译另一编译器 /Visual 语言,则“修整”为与特定的调用约定“extern C”API:

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

请参见

其他资源

欢迎回到 C++(现代 C++)

C++ 语言参考

C++ 标准库参考