J'ai un en-tête C dans le cadre d'une bibliothèque C ++.
Cet en-tête C n'aurait de sens que compilé par un compilateur C, ou par un compilateur C ++ dans un extern "C" { ... }
, sinon des erreurs de lien non résolues se produiraient.
J'ai pensé à ajouter un bloc tel que:
#ifdef __cplusplus
#error "Compiling C bindings with C++ (forgot 'extern \"C\"'?)"
#endif
dans l'en-tête C, mais malheureusement, la __cplusplus
est également définie dans un bloc extern "C" { ... }
Existe-t-il un autre moyen de détecter correctement cette condition?