[atomics.alias]

# 32 Concurrency support library [[thread]](./#thread)

## 32.5 Atomic operations [[atomics]](atomics#alias)

### 32.5.3 Type aliases [atomics.alias]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L2857)

The type aliases atomic_intN_t, atomic_uintN_t,atomic_intptr_t, and atomic_uintptr_t are defined if and only ifintN_t, uintN_t,intptr_t, and uintptr_t are defined, respectively[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/threads.tex#L2865)

The type aliasesatomic_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[.](#2.sentence-1)

[*Note [1](#note-1)*:

These aliases are optional in freestanding implementations ([[compliance]](compliance "16.4.2.5 Freestanding implementations"))[.](#2.sentence-2)

â *end note*]

Implementations should choose for these aliases
the integral specializations of atomic for which the atomic waiting and notifying operations ([[atomics.wait]](atomics.wait "32.5.6 Waiting and notifying"))
are most efficient[.](#2.sentence-3)
