12 #ifndef THRILL_COMMON_ATOMIC_MOVABLE_HEADER 13 #define THRILL_COMMON_ATOMIC_MOVABLE_HEADER 42 :
std::atomic<
T>(desired) { }
46 : std::atomic<T>(
T(rhs.load())) { }
52 : std::atomic<T>(
T(std::move(rhs.load()))) { }
56 std::atomic<T>::operator = (rhs.load());
62 std::atomic<T>::operator = (std::move(rhs.load()));
67 T operator = (
T desired) noexcept {
return std::atomic<T>::operator = (desired); }
73 #endif // !THRILL_COMMON_ATOMIC_MOVABLE_HEADER AtomicMovable & operator=(const AtomicMovable &rhs) noexcept
copy-assignment (same as std::atomic)
AtomicMovable()=default
default initialization (same as std::atomic)
constexpr AtomicMovable(T desired)
value initialization (same as std::atomic)
AtomicMovable(const AtomicMovable &&rhs) noexcept
AtomicMovable(const AtomicMovable &rhs) noexcept
copy-construction (same as std::atomic)
This is a derivative of std::atomic which enables easier and less error-prone writing of move-only cl...