|
33 | 33 | namespace std {
|
34 | 34 | // \ref{atomics.order}, order and consistency
|
35 | 35 | enum class memory_order : @\unspec@;
|
36 |
| - template <class T> |
| 36 | + template<class T> |
37 | 37 | T kill_dependency(T y) noexcept;
|
38 | 38 |
|
39 | 39 | // \ref{atomics.lockfree}, lock-free property
|
|
127 | 127 | typename atomic<T>::value_type,
|
128 | 128 | memory_order, memory_order) noexcept;
|
129 | 129 |
|
130 |
| - template <class T> |
| 130 | + template<class T> |
131 | 131 | T atomic_fetch_add(volatile atomic<T>*, typename atomic<T>::difference_type) noexcept;
|
132 |
| - template <class T> |
| 132 | + template<class T> |
133 | 133 | T atomic_fetch_add(atomic<T>*, typename atomic<T>::difference_type) noexcept;
|
134 |
| - template <class T> |
| 134 | + template<class T> |
135 | 135 | T atomic_fetch_add_explicit(volatile atomic<T>*, typename atomic<T>::difference_type,
|
136 | 136 | memory_order) noexcept;
|
137 |
| - template <class T> |
| 137 | + template<class T> |
138 | 138 | T atomic_fetch_add_explicit(atomic<T>*, typename atomic<T>::difference_type,
|
139 | 139 | memory_order) noexcept;
|
140 |
| - template <class T> |
| 140 | + template<class T> |
141 | 141 | T atomic_fetch_sub(volatile atomic<T>*, typename atomic<T>::difference_type) noexcept;
|
142 |
| - template <class T> |
| 142 | + template<class T> |
143 | 143 | T atomic_fetch_sub(atomic<T>*, typename atomic<T>::difference_type) noexcept;
|
144 |
| - template <class T> |
| 144 | + template<class T> |
145 | 145 | T atomic_fetch_sub_explicit(volatile atomic<T>*, typename atomic<T>::difference_type,
|
146 | 146 | memory_order) noexcept;
|
147 |
| - template <class T> |
| 147 | + template<class T> |
148 | 148 | T atomic_fetch_sub_explicit(atomic<T>*, typename atomic<T>::difference_type,
|
149 | 149 | memory_order) noexcept;
|
150 |
| - template <class T> |
| 150 | + template<class T> |
151 | 151 | T atomic_fetch_and(volatile atomic<T>*, typename atomic<T>::value_type) noexcept;
|
152 |
| - template <class T> |
| 152 | + template<class T> |
153 | 153 | T atomic_fetch_and(atomic<T>*, typename atomic<T>::value_type) noexcept;
|
154 |
| - template <class T> |
| 154 | + template<class T> |
155 | 155 | T atomic_fetch_and_explicit(volatile atomic<T>*, typename atomic<T>::value_type,
|
156 | 156 | memory_order) noexcept;
|
157 |
| - template <class T> |
| 157 | + template<class T> |
158 | 158 | T atomic_fetch_and_explicit(atomic<T>*, typename atomic<T>::value_type,
|
159 | 159 | memory_order) noexcept;
|
160 |
| - template <class T> |
| 160 | + template<class T> |
161 | 161 | T atomic_fetch_or(volatile atomic<T>*, typename atomic<T>::value_type) noexcept;
|
162 |
| - template <class T> |
| 162 | + template<class T> |
163 | 163 | T atomic_fetch_or(atomic<T>*, typename atomic<T>::value_type) noexcept;
|
164 |
| - template <class T> |
| 164 | + template<class T> |
165 | 165 | T atomic_fetch_or_explicit(volatile atomic<T>*, typename atomic<T>::value_type,
|
166 | 166 | memory_order) noexcept;
|
167 |
| - template <class T> |
| 167 | + template<class T> |
168 | 168 | T atomic_fetch_or_explicit(atomic<T>*, typename atomic<T>::value_type,
|
169 | 169 | memory_order) noexcept;
|
170 |
| - template <class T> |
| 170 | + template<class T> |
171 | 171 | T atomic_fetch_xor(volatile atomic<T>*, typename atomic<T>::value_type) noexcept;
|
172 |
| - template <class T> |
| 172 | + template<class T> |
173 | 173 | T atomic_fetch_xor(atomic<T>*, typename atomic<T>::value_type) noexcept;
|
174 |
| - template <class T> |
| 174 | + template<class T> |
175 | 175 | T atomic_fetch_xor_explicit(volatile atomic<T>*, typename atomic<T>::value_type,
|
176 | 176 | memory_order) noexcept;
|
177 |
| - template <class T> |
| 177 | + template<class T> |
178 | 178 | T atomic_fetch_xor_explicit(atomic<T>*, typename atomic<T>::value_type,
|
179 | 179 | memory_order) noexcept;
|
180 | 180 |
|
|
493 | 493 |
|
494 | 494 | \indexlibrary{\idxcode{kill_dependency}}%
|
495 | 495 | \begin{itemdecl}
|
496 |
| -template <class T> |
| 496 | +template<class T> |
497 | 497 | T kill_dependency(T y) noexcept;
|
498 | 498 | \end{itemdecl}
|
499 | 499 |
|
|
565 | 565 | \indexlibrarymember{value_type}{atomic}%
|
566 | 566 | \begin{codeblock}
|
567 | 567 | namespace std {
|
568 |
| - template <class T> struct atomic { |
| 568 | + template<class T> struct atomic { |
569 | 569 | using value_type = T;
|
570 | 570 | static constexpr bool is_always_lock_free = @\impdefx{whether a given \tcode{atomic} type's operations are always lock free}@;
|
571 | 571 | bool is_lock_free() const volatile noexcept;
|
|
963 | 963 |
|
964 | 964 | \begin{codeblock}
|
965 | 965 | namespace std {
|
966 |
| - template <> struct atomic<@\placeholder{integral}@> { |
| 966 | + template<> struct atomic<@\placeholder{integral}@> { |
967 | 967 | using value_type = @\placeholder{integral}@;
|
968 | 968 | using difference_type = value_type;
|
969 | 969 | static constexpr bool is_always_lock_free = @\impdefx{whether a given \tcode{atomic} type's operations are always lock free}@;
|
|
1278 | 1278 |
|
1279 | 1279 | \begin{codeblock}
|
1280 | 1280 | namespace std {
|
1281 |
| - template <class T> struct atomic<T*> { |
| 1281 | + template<class T> struct atomic<T*> { |
1282 | 1282 | using value_type = T*;
|
1283 | 1283 | using difference_type = ptrdiff_t;
|
1284 | 1284 | static constexpr bool is_always_lock_free = @\impdefx{whether a given \tcode{atomic} type's operations are always lock free}@;
|
|
0 commit comments