The ATOMIC_..._LOCK_FREE macros indicate the lock-free property of the
corresponding atomic types, with the signed and unsigned variants grouped
together.
The properties also apply to the corresponding (partial) specializations of the
atomic template.
A value of 0 indicates that the types are never
lock-free.
A value of 1 indicates that the types are sometimes lock-free.
A
value of 2 indicates that the types are always lock-free.
On a hosted implementation ([compliance]),
at least one signed integral specialization of the atomic template,
along with the specialization
for the corresponding unsigned type ([basic.fundamental]),
is always lock-free.