1 #ifndef FWCore_Utilities_atomic_value_ptr_h
2 #define FWCore_Utilities_atomic_value_ptr_h
81 myP(orig.
myP) { orig.myP.store(
nullptr); }
101 template <
typename U>
106 template <
typename U>
149 return myP.compare_exchange_strong(oldValue, newValue);
164 return myP !=
nullptr ?
177 T* old =
myP.exchange(local.
myP.load());
185 template <
typename U>
198 mutable std::atomic<T*>
myP;
210 template <
typename T,
typename U>
216 template <
typename T,
typename U>
222 template <
typename T,
typename U>
228 template <
typename T,
typename U>
236 #endif // FWCoreUtilities_atomic_value_ptr_h
atomic_value_ptr(atomic_value_ptr< U > const &orig)
atomic_value_ptr(std::auto_ptr< T > orig)
atomic_value_ptr & operator=(atomic_value_ptr< U > const &orig)
void exchangeWithLocal(atomic_value_ptr &local)
bool operator!=(debugging_allocator< X > const &, debugging_allocator< Y > const &)
atomic_value_ptr & operator=(atomic_value_ptr const &orig)
void(atomic_value_ptr::* bool_type)() const
atomic_value_ptr & operator=(std::unique_ptr< T > orig)
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &)
void this_type_does_not_support_comparisons() const
atomic_value_ptr & operator=(atomic_value_ptr &&orig)
atomic_value_ptr(atomic_value_ptr const &orig)
bool compare_exchange_strong(T *&oldValue, T *newValue)
static T * createFrom(U const *p)
atomic_value_ptr & operator=(std::auto_ptr< T > orig)
static T * clone(T const *p)
atomic_value_ptr(std::unique_ptr< T > orig)
atomic_value_ptr(atomic_value_ptr &&orig)