This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

30
cppdraft/atomics/alias.md Normal file
View File

@@ -0,0 +1,30 @@
[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.5Freestanding 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.6Waiting and notifying"))
are most efficient[.](#2.sentence-3)