В проекте C ++ 0x есть раздел с макросами в заголовке , который указывает на то, что нет простого и удобного способа проверить это в противном случае.
29.4 Блокировка-free свойство [atomics.lockfree]
#define ATOMIC_CHAR_LOCK_FREE implementation-defined
#define ATOMIC_CHAR16_T_LOCK_FREE implementation-defined
#define ATOMIC_CHAR32_T_LOCK_FREE implementation-defined
#define ATOMIC_WCHAR_T_LOCK_FREE implementation-defined
#define ATOMIC_SHORT_LOCK_FREE implementation-defined
#define ATOMIC_INT_LOCK_FREE implementation-defined
#define ATOMIC_LONG_LOCK_FREE implementation-defined
#define ATOMIC_LLONG_LOCK_FREE implementation-defined
Макросы указывают типы, в которых std :: atomic может быть реализован без блокировки, что означает, что они являются атомарными всами по себе.