_GLIBCXX_ATOMIC_BUILTINS не определено в gcc 4.4.5
У меня есть некоторый код, который я портирую, и я отследил ошибку, пропустив макрос _GLIBCXX_ATOMIC_BUILTINS
Разве более поздние версии gcc не определяют это?
Какой правильный способ обойти это?
1 ответ
В этой версии вы также захотите проверить атомарные макросы для определенного типа данных, так что вы можете сделать:
#if defined(_GLIBCXX_ATOMIC_BUILTINS_4) && !defined(_GLIBCXX_ATOMIC_BUILTINS)
#define _GLIBCXX_ATOMIC_BUILTINS
#endif
или же
#if defined(_GLIBCXX_ATOMIC_BUILTINS) || defined(_GLIBCXX_ATOMIC_BUILTINS_4)
Макросы:
/* Define if builtin atomic operations for bool are supported on this host. */
#undef _GLIBCXX_ATOMIC_BUILTINS_1
/* Define if builtin atomic operations for short are supported on this host. */
#undef _GLIBCXX_ATOMIC_BUILTINS_2
/* Define if builtin atomic operations for int are supported on this host. */
#undef _GLIBCXX_ATOMIC_BUILTINS_4
/* Define if builtin atomic operations for long long are supported on this
host. */
#undef _GLIBCXX_ATOMIC_BUILTINS_8