#include <sycl/atomic_ref.hpp>
Public Types | |
using | value_type = T |
Static Public Attributes | |
static constexpr size_t | required_alignment = sizeof(T) |
static constexpr bool | is_always_lock_free |
static constexpr memory_order | default_read_order |
static constexpr memory_order | default_write_order |
static constexpr memory_order | default_read_modify_write_order = DefaultOrder |
static constexpr memory_scope | default_scope = DefaultScope |
Protected Attributes | |
std::atomic< T > * | ptr |
Definition at line 123 of file atomic_ref.hpp.
using sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::value_type = T |
Definition at line 145 of file atomic_ref.hpp.
|
inlineexplicit |
Definition at line 173 of file atomic_ref.hpp.
|
inlinenoexcept |
Definition at line 178 of file atomic_ref.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::ptr.
|
inlinenoexcept |
Definition at line 239 of file atomic_ref.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_strong().
|
inlinenoexcept |
Definition at line 219 of file atomic_ref.hpp.
References sycl::_V1::detail::getStdMemoryOrder(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::ptr, and sycl::_V1::success.
Referenced by sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_strong(), syclcompat::atomic< T, DefaultScope, DefaultOrder, Space >::compare_exchange_strong(), sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_strong(), and sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_weak().
|
inlinenoexcept |
Definition at line 263 of file atomic_ref.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_weak().
|
inlinenoexcept |
Definition at line 246 of file atomic_ref.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_strong(), sycl::_V1::detail::getStdMemoryOrder(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::ptr, and sycl::_V1::success.
Referenced by sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_weak(), syclcompat::atomic< T, DefaultScope, DefaultOrder, Space >::compare_exchange_weak(), sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_weak(), sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::fetch_add(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_add(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_max(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_max(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_min(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_min(), sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::fetch_sub(), and sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_sub().
|
inlinenoexcept |
Definition at line 208 of file atomic_ref.hpp.
References sycl::_V1::detail::getStdMemoryOrder(), and sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::ptr.
Referenced by syclcompat::atomic< T, DefaultScope, DefaultOrder, Space >::exchange().
|
inlinenoexcept |
Definition at line 156 of file atomic_ref.hpp.
|
inlinenoexcept |
Definition at line 196 of file atomic_ref.hpp.
References sycl::_V1::detail::getStdMemoryOrder(), and sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::ptr.
Referenced by sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::fetch_add(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_add(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_max(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_max(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_min(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_min(), sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::fetch_sub(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_sub(), syclcompat::atomic< T, DefaultScope, DefaultOrder, Space >::load(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::operator T(), and sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::operator T*().
|
inlinenoexcept |
Definition at line 206 of file atomic_ref.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::load().
|
delete |
|
inlinenoexcept |
Definition at line 191 of file atomic_ref.hpp.
References sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::store().
|
inlinenoexcept |
Definition at line 181 of file atomic_ref.hpp.
References sycl::_V1::detail::getStdMemoryOrder(), and sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::ptr.
Referenced by sycl::_V1::detail::atomic_ref_impl< T *, SizeOfT, DefaultOrder, DefaultScope, AddressSpace >::operator=(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::operator=(), and syclcompat::atomic< T, DefaultScope, DefaultOrder, Space >::store().
|
staticconstexpr |
Definition at line 153 of file atomic_ref.hpp.
|
staticconstexpr |
Definition at line 149 of file atomic_ref.hpp.
|
staticconstexpr |
Definition at line 154 of file atomic_ref.hpp.
|
staticconstexpr |
Definition at line 151 of file atomic_ref.hpp.
|
staticconstexpr |
Definition at line 147 of file atomic_ref.hpp.
|
protected |
Definition at line 273 of file atomic_ref.hpp.
Referenced by sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::atomic_ref_base(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_strong(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::compare_exchange_weak(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::exchange(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_add(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_add(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_and(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_max(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_max(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_min(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_min(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_or(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_sub(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_floating_point_v< T >||std::is_same_v< T, sycl::half > > >::fetch_sub(), sycl::_V1::detail::atomic_ref_impl< T, SizeOfT, DefaultOrder, DefaultScope, AddressSpace, typename std::enable_if_t< std::is_integral_v< T > > >::fetch_xor(), sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::load(), and sycl::_V1::detail::atomic_ref_base< T, DefaultOrder, DefaultScope, AddressSpace >::store().
|
staticconstexpr |
Definition at line 146 of file atomic_ref.hpp.