Fermer2
PpHdLe 07/06/2016 à 20:10
Je tiens à pousser un coup de gueule contre le fait que stdatomic.h (header standard du C11) soit inutilisable avec G++ !
Le moindre source aussi simple soit-il, par exemple juste : #include <stdatomic.h> induit des erreurs à la pelle : mad
error: ‘_Atomic’ does not name a type

Le bug a été remonté https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
Conclusion: not a bug. vtff
Solution de contournement officielle 1: #if !__has_extension(c_atomic) && !__has_extension(cxx_atomic) #define _Atomic(T) struct { T volatile __val; } #endif (mais ca ne résoud pas tous les problèmes) bang
ou #ifdef __cplusplus #include <atomic> using namespace std; #else #include <stdatomic.h> #endif (on appréciera le using namespace std inconditionnel). censure

Ils auraient du proposer un DTC, ca serait mieux passer ! mur

Résultat: si la moindre librairie C utilise stdatomic.h dans ses headers, alors le pauvre programmeur C++ ne pourra rien en faire et serra coincé ! mad
Au moins clang définit _Atomic... mais pas _Bool ! rage