1 #ifndef DASH__ATOMIC_H__INCLUDED 2 #define DASH__ATOMIC_H__INCLUDED 53 "Type not supported for atomic operations");
57 typedef Atomic<T> self_t;
62 constexpr Atomic() =
default;
63 constexpr Atomic(
const Atomic<T>& other) =
default;
64 constexpr Atomic(Atomic<T>&& other) =
default;
66 self_t& operator=(
const self_t& other) =
default;
67 self_t& operator=(self_t&& other) =
default;
84 T operator=(T value) =
delete;
90 operator T() =
delete;
92 constexpr
bool operator==(
const self_t & other)
const {
93 return _value == other._value;
96 constexpr
bool operator!=(
const self_t & other)
const {
97 return !(*
this == other);
100 template<
typename T_>
101 friend std::ostream & operator<<(
108 std::ostream & operator<<(
112 std::ostringstream ss;
114 return operator<<(os, ss.str());
119 #include <dash/atomic/Type_traits.h> 120 #include <dash/atomic/GlobAtomicRef.h> 121 #include <dash/atomic/GlobAtomicAsyncRef.h> 122 #include <dash/atomic/Operation.h> 124 #endif // DASH__ATOMIC_H__INCLUDED This class is a simple memory pool which holds allocates elements of size ValueType.
Type wrapper to mark any trivial type atomic.
Type trait indicating whether a type can be used for global atomic operations.
constexpr Atomic(T value)
Initializes the underlying value with desired.
std::string typestr(const T &obj)
Returns string containing the type name of the given object.