Go to the documentation of this file. 1 #ifndef BOOST_DETAIL_ATOMIC_CAS32WEAK_HPP
2 #define BOOST_DETAIL_ATOMIC_CAS32WEAK_HPP
19 template<
typename T,
bool Sign>
20 class base_atomic<T, int, 1, Sign> {
89 if (tmp != expected) {
154 template<
typename T,
bool Sign>
155 class base_atomic<T, int, 2, Sign> {
224 if (tmp != expected) {
289 template<
typename T,
bool Sign>
290 class base_atomic<T, int, 4, Sign> {
354 if (tmp != expected) {
422 class base_atomic<void *,
void *, 4, Sign> {
484 if (compare_exchange_weak(tmp, desired, success_order, failure_order))
486 if (tmp != expected) {
524 template<
typename T,
bool Sign>
525 class base_atomic<T *,
void *, 4, Sign> {
587 if (compare_exchange_weak(tmp, desired, success_order, failure_order))
589 if (tmp != expected) {
629 template<
typename T,
bool Sign>
630 class base_atomic<T, void, 1, Sign> {
679 memcpy(&expected_s, &expected,
sizeof(
value_type));
680 memcpy(&desired_s, &desired,
sizeof(
value_type));
690 memcpy(&expected, &expected_s,
sizeof(
value_type));
707 if (tmp != expected) {
727 template<
typename T,
bool Sign>
728 class base_atomic<T, void, 2, Sign> {
777 memcpy(&expected_s, &expected,
sizeof(
value_type));
778 memcpy(&desired_s, &desired,
sizeof(
value_type));
788 memcpy(&expected, &expected_s,
sizeof(
value_type));
805 if (tmp != expected) {
825 template<
typename T,
bool Sign>
826 class base_atomic<T, void, 4, Sign> {
875 memcpy(&expected_s, &expected,
sizeof(
value_type));
876 memcpy(&desired_s, &desired,
sizeof(
value_type));
886 memcpy(&expected, &expected_s,
sizeof(
value_type));
903 if (tmp != expected) {
bool is_lock_free(void) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
static void platform_fence_before(memory_order order)
base_atomic(value_type v)
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool is_lock_free(void) const volatile
bool is_lock_free(void) const volatile
base_atomic(value_type v)
value_type load(memory_order order=memory_order_seq_cst) const volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(difference_type v, memory_order order=memory_order_seq_cst) volatile
#define BOOST_ATOMIC_DECLARE_BASE_OPERATORS
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool platform_cmpxchg32(T &expected, T desired, volatile T *ptr)
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
base_atomic(value_type v)
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
base_atomic(value_type v)
value_type fetch_add(difference_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool is_lock_free(void) const volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
void operator=(const base_atomic &)
base_atomic(value_type v)
value_type load(memory_order order=memory_order_seq_cst) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
static void platform_fence_before_store(memory_order order)
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
#define BOOST_ATOMIC_DECLARE_INTEGRAL_OPERATORS
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
ptrdiff_t difference_type
value_type fetch_add(difference_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_strong(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
base_atomic(value_type v)
static void platform_fence_after_load(memory_order order)
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order=memory_order_seq_cst) volatile const
base_atomic(value_type v)
#define BOOST_ATOMIC_DECLARE_POINTER_OPERATORS
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
static void platform_fence_after(memory_order order)
bool is_lock_free(void) const volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(difference_type v, memory_order order=memory_order_seq_cst) volatile
value_type load(memory_order order=memory_order_seq_cst) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
bool compare_exchange_weak(value_type &expected, value_type desired, memory_order success_order, memory_order failure_order) volatile
value_type exchange(value_type v, memory_order order=memory_order_seq_cst) volatile
bool is_lock_free(void) const volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_add(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_sub(value_type v, memory_order order=memory_order_seq_cst) volatile
void store(value_type v, memory_order order=memory_order_seq_cst) volatile
value_type fetch_and(value_type v, memory_order order=memory_order_seq_cst) volatile
base_atomic(value_type v)
value_type fetch_xor(value_type v, memory_order order=memory_order_seq_cst) volatile
ptrdiff_t difference_type
value_type load(memory_order order=memory_order_seq_cst) const volatile
static void platform_fence_after_store(memory_order order)
value_type fetch_or(value_type v, memory_order order=memory_order_seq_cst) volatile
rosatomic
Author(s): Josh Faust
autogenerated on Wed Mar 2 2022 00:54:12