Dans un projet C++, j'utilise une bibliothèque C qui inclut des en-têtes C11. Il ne compilera pas avec GCC. Voir ce code simple:Comment inclure les en-têtes C11 lors de la compilation de C++ avec GCC?
// main.cc
#include <stdatomic.h>
int main()
{
return 0;
}
Courir gcc main.cc -lstdc++
, il se plaint: error: ‘_Atomic’ does not name a type
. Cependant, clang main.cc -lstdc++
fonctionne comme un charme. Je me demande ce qui fait la différence, et comment puis-je le compiler avec gcc?
Cette bibliothèque ne peut pas être utilisée telle quelle en C++. Différentes langues maintenant plus que jamais. Vous auriez besoin de l'envelopper. – StoryTeller
Il existe des différences de syntaxe entre les langues. Quand C dit '_Atomic int' C++ utilise des templates et dit' atomic '. –
@StoryTeller Un guide sur la façon de l'emballer? – Xiao