1 #ifndef FWCore_Utilities_atomic_value_ptr_h
2 #define FWCore_Utilities_atomic_value_ptr_h
74 myP(orig.
myP) { orig.myP.store(
nullptr); }
139 return myP.compare_exchange_strong(oldValue, newValue);
154 return myP !=
nullptr ?
167 T* old =
myP.exchange(local.
myP.load());
175 template <
typename U>
187 mutable std::atomic<T*>
myP;
196 template <
typename T,
typename U>
202 template <
typename T,
typename U>
208 template <
typename T,
typename U>
214 template <
typename T,
typename U>
222 #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)