31 Atomic operations library [atomics]

31.3 Type aliases [atomics.alias]

The type aliases atomic_­intN_­t, atomic_­uintN_­t, atomic_­intptr_­t, and atomic_­uintptr_­t are defined if and only if intN_­t, uintN_­t, intptr_­t, and uintptr_­t are defined, respectively.
The type aliases atomic_­signed_­lock_­free and atomic_­unsigned_­lock_­free name specializations of atomic whose template arguments are integral types, respectively signed and unsigned, and whose is_­always_­lock_­free property is true.
[Note
:
These aliases are optional in freestanding implementations ([compliance]).
— end note
]
Implementations should choose for these aliases the integral specializations of atomic for which the atomic waiting and notifying operations ([atomics.wait]) are most efficient.