Lines Matching refs:T

45 template <class T> T kill_dependency(T y) noexcept;
61 template <class T>
64 using value_type = T;
71 constexpr atomic() noexcept(is_nothrow_default_constructible_v<T>); // since C++20
72 constexpr atomic(T desr) noexcept;
77 T load(memory_order m = memory_order_seq_cst) const volatile noexcept;
78 T load(memory_order m = memory_order_seq_cst) const noexcept;
79 operator T() const volatile noexcept;
80 operator T() const noexcept;
81 void store(T desr, memory_order m = memory_order_seq_cst) volatile noexcept;
82 void store(T desr, memory_order m = memory_order_seq_cst) noexcept;
83 T operator=(T) volatile noexcept;
84 T operator=(T) noexcept;
86 T exchange(T desr, memory_order m = memory_order_seq_cst) volatile noexcept;
87 T exchange(T desr, memory_order m = memory_order_seq_cst) noexcept;
88 bool compare_exchange_weak(T& expc, T desr,
90 bool compare_exchange_weak(T& expc, T desr, memory_order s, memory_order f) noexcept;
91 bool compare_exchange_strong(T& expc, T desr,
93 bool compare_exchange_strong(T& expc, T desr,
95 bool compare_exchange_weak(T& expc, T desr,
97 bool compare_exchange_weak(T& expc, T desr,
99 bool compare_exchange_strong(T& expc, T desr,
101 bool compare_exchange_strong(T& expc, T desr,
104 void wait(T, memory_order = memory_order::seq_cst) const volatile noexcept;
105 void wait(T, memory_order = memory_order::seq_cst) const noexcept;
195 template <class T>
196 struct atomic<T*>
198 using value_type = T*;
207 constexpr atomic(T* desr) noexcept;
212 T* load(memory_order m = memory_order_seq_cst) const volatile noexcept;
213 T* load(memory_order m = memory_order_seq_cst) const noexcept;
214 operator T*() const volatile noexcept;
215 operator T*() const noexcept;
216 void store(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept;
217 void store(T* desr, memory_order m = memory_order_seq_cst) noexcept;
218 T* operator=(T*) volatile noexcept;
219 T* operator=(T*) noexcept;
221 T* exchange(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept;
222 T* exchange(T* desr, memory_order m = memory_order_seq_cst) noexcept;
223 bool compare_exchange_weak(T*& expc, T* desr,
225 bool compare_exchange_weak(T*& expc, T* desr,
227 bool compare_exchange_strong(T*& expc, T* desr,
229 bool compare_exchange_strong(T*& expc, T* desr,
231 bool compare_exchange_weak(T*& expc, T* desr,
233 bool compare_exchange_weak(T*& expc, T* desr,
235 bool compare_exchange_strong(T*& expc, T* desr,
237 bool compare_exchange_strong(T*& expc, T* desr,
239 T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept;
240 T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept;
241 T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept;
242 T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept;
244 T* operator++(int) volatile noexcept;
245 T* operator++(int) noexcept;
246 T* operator--(int) volatile noexcept;
247 T* operator--(int) noexcept;
248 T* operator++() volatile noexcept;
249 T* operator++() noexcept;
250 T* operator--() volatile noexcept;
251 T* operator--() noexcept;
252 T* operator+=(ptrdiff_t op) volatile noexcept;
253 T* operator+=(ptrdiff_t op) noexcept;
254 T* operator-=(ptrdiff_t op) volatile noexcept;
255 T* operator-=(ptrdiff_t op) noexcept;
257 void wait(T*, memory_order = memory_order::seq_cst) const volatile noexcept;
258 void wait(T*, memory_order = memory_order::seq_cst) const noexcept;
333 template<class T>
334 bool atomic_is_lock_free(const volatile atomic<T>*) noexcept;
335 template<class T>
336 bool atomic_is_lock_free(const atomic<T>*) noexcept;
337 template<class T>
338 void atomic_store(volatile atomic<T>*, atomic<T>::value_type) noexcept;
339 template<class T>
340 void atomic_store(atomic<T>*, atomic<T>::value_type) noexcept;
341 template<class T>
342 void atomic_store_explicit(volatile atomic<T>*, atomic<T>::value_type,
344 template<class T>
345 void atomic_store_explicit(atomic<T>*, atomic<T>::value_type,
347 template<class T>
348 T atomic_load(const volatile atomic<T>*) noexcept;
349 template<class T>
350 T atomic_load(const atomic<T>*) noexcept;
351 template<class T>
352 T atomic_load_explicit(const volatile atomic<T>*, memory_order) noexcept;
353 template<class T>
354 T atomic_load_explicit(const atomic<T>*, memory_order) noexcept;
355 template<class T>
356 T atomic_exchange(volatile atomic<T>*, atomic<T>::value_type) noexcept;
357 template<class T>
358 T atomic_exchange(atomic<T>*, atomic<T>::value_type) noexcept;
359 template<class T>
360 T atomic_exchange_explicit(volatile atomic<T>*, atomic<T>::value_type,
362 template<class T>
363 T atomic_exchange_explicit(atomic<T>*, atomic<T>::value_type,
365 template<class T>
366 bool atomic_compare_exchange_weak(volatile atomic<T>*, atomic<T>::value_type*,
367 atomic<T>::value_type) noexcept;
368 template<class T>
369 bool atomic_compare_exchange_weak(atomic<T>*, atomic<T>::value_type*,
370 atomic<T>::value_type) noexcept;
371 template<class T>
372 bool atomic_compare_exchange_strong(volatile atomic<T>*, atomic<T>::value_type*,
373 atomic<T>::value_type) noexcept;
374 template<class T>
375 bool atomic_compare_exchange_strong(atomic<T>*, atomic<T>::value_type*,
376 atomic<T>::value_type) noexcept;
377 template<class T>
378 bool atomic_compare_exchange_weak_explicit(volatile atomic<T>*, atomic<T>::value_type*,
379 atomic<T>::value_type,
381 template<class T>
382 bool atomic_compare_exchange_weak_explicit(atomic<T>*, atomic<T>::value_type*,
383 atomic<T>::value_type,
385 template<class T>
386 bool atomic_compare_exchange_strong_explicit(volatile atomic<T>*, atomic<T>::value_type*,
387 atomic<T>::value_type,
389 template<class T>
390 bool atomic_compare_exchange_strong_explicit(atomic<T>*, atomic<T>::value_type*,
391 atomic<T>::value_type,
394 template<class T>
395 T atomic_fetch_add(volatile atomic<T>*, atomic<T>::difference_type) noexcept;
396 template<class T>
397 T atomic_fetch_add(atomic<T>*, atomic<T>::difference_type) noexcept;
398 template<class T>
399 T atomic_fetch_add_explicit(volatile atomic<T>*, atomic<T>::difference_type,
401 template<class T>
402 T atomic_fetch_add_explicit(atomic<T>*, atomic<T>::difference_type,
404 template<class T>
405 T atomic_fetch_sub(volatile atomic<T>*, atomic<T>::difference_type) noexcept;
406 template<class T>
407 T atomic_fetch_sub(atomic<T>*, atomic<T>::difference_type) noexcept;
408 template<class T>
409 T atomic_fetch_sub_explicit(volatile atomic<T>*, atomic<T>::difference_type,
411 template<class T>
412 T atomic_fetch_sub_explicit(atomic<T>*, atomic<T>::difference_type,
414 template<class T>
415 T atomic_fetch_and(volatile atomic<T>*, atomic<T>::value_type) noexcept;
416 template<class T>
417 T atomic_fetch_and(atomic<T>*, atomic<T>::value_type) noexcept;
418 template<class T>
419 T atomic_fetch_and_explicit(volatile atomic<T>*, atomic<T>::value_type,
421 template<class T>
422 T atomic_fetch_and_explicit(atomic<T>*, atomic<T>::value_type,
424 template<class T>
425 T atomic_fetch_or(volatile atomic<T>*, atomic<T>::value_type) noexcept;
426 template<class T>
427 T atomic_fetch_or(atomic<T>*, atomic<T>::value_type) noexcept;
428 template<class T>
429 T atomic_fetch_or_explicit(volatile atomic<T>*, atomic<T>::value_type,
431 template<class T>
432 T atomic_fetch_or_explicit(atomic<T>*, atomic<T>::value_type,
434 template<class T>
435 T atomic_fetch_xor(volatile atomic<T>*, atomic<T>::value_type) noexcept;
436 template<class T>
437 T atomic_fetch_xor(atomic<T>*, atomic<T>::value_type) noexcept;
438 template<class T>
439 T atomic_fetch_xor_explicit(volatile atomic<T>*, atomic<T>::value_type,
441 template<class T>
442 T atomic_fetch_xor_explicit(atomic<T>*, atomic<T>::value_type,
445 template<class T>
446 void atomic_wait(const volatile atomic<T>*, atomic<T>::value_type) noexcept;
447 template<class T>
448 void atomic_wait(const atomic<T>*, atomic<T>::value_type) noexcept;
449 template<class T>
450 void atomic_wait_explicit(const volatile atomic<T>*, atomic<T>::value_type,
452 template<class T>
453 void atomic_wait_explicit(const atomic<T>*, atomic<T>::value_type,
455 template<class T>
456 void atomic_notify_one(volatile atomic<T>*) noexcept;
457 template<class T>
458 void atomic_notify_one(atomic<T>*) noexcept;
459 template<class T>
460 void atomic_notify_all(volatile atomic<T>*) noexcept;
461 template<class T>
462 void atomic_notify_all(atomic<T>*) noexcept;
560 void atomic_wait(const volatile atomic_flag* obj, T old) noexcept;
561 void atomic_wait(const atomic_flag* obj, T old) noexcept;
562 void atomic_wait_explicit(const volatile atomic_flag* obj, T old, memory_order m) noexcept;
563 void atomic_wait_explicit(const atomic_flag* obj, T old, memory_order m) noexcept;
576 template <class T>
577 void atomic_init(volatile atomic<T>* obj, atomic<T>::value_type desr) noexcept;
579 template <class T>
580 void atomic_init(atomic<T>* obj, atomic<T>::value_type desr) noexcept;