Portabilidade em limites ABI
Use tipos e convenções suficientemente portáteis em limites de interface binária. Um "tipo portátil" é um tipo interno C ou um struct que contém apenas tipos internos C. Os tipos de classe só poderão ser usados quando o chamador e o computador chamado concordarem com o layout, a convenção de chamada etc. Isso só é possível quando ambos são compilados com o mesmo compilador e as mesmas configurações de compilador.
Como nivelar uma classe para portabilidade C
Quando os chamadores podem ser compilados com outro compilador/linguagem de programação, "nivele" para uma API "C" externa com uma convenção de chamada específica:
// class widget {
// widget();
// ~widget();
// double method( int, gadget& );
// };
extern "C" { // functions using explicit "this"
struct widget; // opaque type (forward declaration only)
widget* STDCALL widget_create(); // constructor creates new "this"
void STDCALL widget_destroy(widget*); // destructor consumes "this"
double STDCALL widget_method(widget*, int, gadget*); // method uses "this"
}
Confira também
Bem-vindo outra vez ao C++
Referência da linguagem C++
Biblioteca Padrão do C++
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de