Ключевое слово _Atomic
происходит от C (C11) и не является ключевым словом в C ++. В C ++ атомы указываются через std::atomic
. Лучше всего не смешивать синтаксические понятия двух языков.
Если вам нужно смешать код, который обращается к данным atomi c с обоих языков, вам следует иметь дело с типами atomi c, такими как std::atomic_int
, или придумайте некоторые макроинтерфейсы, подобные следующим
#ifdef __cplusplus
#define myAtomic(T) std::atomic< T >
#else
#define myAtomic(T) _Atomic(T)
#endif
На любой разумной платформе они должны быть двоично-совместимыми.