Lines Matching defs:fetch_add
11 // integral-type fetch_add(integral-type, memory_order = memory_order::seq_cst) const noexcept;
12 // floating-point-type fetch_add(floating-point-type, memory_order = memory_order::seq_cst) const noexcept;
13 // T* fetch_add(difference_type, memory_order = memory_order::seq_cst) const noexcept;
27 std::declval<T const>().fetch_add(std::declval<T>());
28 std::declval<T const>().fetch_add(std::declval<T>(), std::declval<std::memory_order>());
44 std::same_as<T> decltype(auto) y = a.fetch_add(T(2));
47 ASSERT_NOEXCEPT(a.fetch_add(T(0)));
51 std::same_as<T> decltype(auto) y = a.fetch_add(T(4), std::memory_order_relaxed);
54 ASSERT_NOEXCEPT(a.fetch_add(T(0), std::memory_order_relaxed));
63 std::same_as<T> decltype(auto) y = a.fetch_add(2);
66 ASSERT_NOEXCEPT(a.fetch_add(0));
70 std::same_as<T> decltype(auto) y = a.fetch_add(4, std::memory_order_relaxed);
73 ASSERT_NOEXCEPT(a.fetch_add(0, std::memory_order_relaxed));
81 auto fetch_add = [](std::atomic_ref<T> const& x, T old_val, T new_val) {
82 x.fetch_add(new_val - old_val, std::memory_order::release);
85 test_acquire_release<T>(fetch_add, load);
90 auto fetch_add_no_arg = [](std::atomic_ref<T> const& x, T old_val, T new_val) { x.fetch_add(new_val - old_val); };
92 x.fetch_add(new_val - old_val, std::memory_order::seq_cst);