Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::atomic< T * > Struct Template Reference

Specialization for atomic<T*> with arithmetic and operator->. More...

#include <atomic.h>

Inheritance diagram for tbb::atomic< T * >:
Collaboration diagram for tbb::atomic< T * >:

Public Member Functions

 atomic ()=default
 
constexpr atomic (T *arg)
 
T * operator= (T *rhs)
 
atomic< T * > & operator= (const atomic< T * > &rhs)
 
T * operator-> () const
 
- Public Member Functions inherited from tbb::internal::atomic_impl_with_arithmetic< T *, ptrdiff_t, T >
 atomic_impl_with_arithmetic ()=default
 
constexpr atomic_impl_with_arithmetic (value_type value)
 
value_type fetch_and_add (ptrdiff_t addend)
 
value_type fetch_and_add (ptrdiff_t addend)
 
value_type fetch_and_increment ()
 
value_type fetch_and_increment ()
 
value_type fetch_and_decrement ()
 
value_type fetch_and_decrement ()
 
value_type operator+= (ptrdiff_t value)
 
value_type operator-= (ptrdiff_t value)
 
value_type operator++ ()
 
value_type operator++ (int)
 
value_type operator-- ()
 
value_type operator-- (int)
 
- Public Member Functions inherited from tbb::internal::atomic_impl< T * >
 atomic_impl ()=default
 
constexpr atomic_impl (value_type value)
 
value_type fetch_and_store (value_type value)
 
value_type fetch_and_store (value_type value)
 
value_type compare_and_swap (value_type value, value_type comparand)
 
value_type compare_and_swap (value_type value, value_type comparand)
 
 operator value_type () const volatile
 
value_type load () const
 
value_type load () const
 
void store (value_type value)
 
void store (value_type value)
 

Additional Inherited Members

- Public Types inherited from tbb::internal::atomic_impl_with_arithmetic< T *, ptrdiff_t, T >
typedef T * value_type
 
- Public Types inherited from tbb::internal::atomic_impl< T * >
typedef T * value_type
 
- Protected Member Functions inherited from tbb::internal::atomic_impl< T * >
value_type store_with_release (value_type rhs)
 
- Protected Attributes inherited from tbb::internal::atomic_impl< T * >
aligned_storage< T *, sizeof(T *)> my_storage
 

Detailed Description

template<typename T>
struct tbb::atomic< T * >

Specialization for atomic<T*> with arithmetic and operator->.

Definition at line 485 of file atomic.h.

Constructor & Destructor Documentation

◆ atomic() [1/2]

template<typename T >
tbb::atomic< T * >::atomic ( )
default

◆ atomic() [2/2]

template<typename T >
constexpr tbb::atomic< T * >::atomic ( T *  arg)
inline

Definition at line 488 of file atomic.h.

488 : internal::atomic_impl_with_arithmetic<T*,ptrdiff_t,T>(arg) {}

Member Function Documentation

◆ operator->()

template<typename T >
T* tbb::atomic< T * >::operator-> ( ) const
inline

Definition at line 497 of file atomic.h.

497  {
498  return (*this);
499  }

◆ operator=() [1/2]

template<typename T >
T* tbb::atomic< T * >::operator= ( T *  rhs)
inline

Definition at line 490 of file atomic.h.

490  {
491  // "this" required here in strict ISO C++ because store_with_release is a dependent name
492  return this->store_with_release(rhs);
493  }
value_type store_with_release(value_type rhs)
Definition: atomic.h:326

◆ operator=() [2/2]

template<typename T >
atomic<T*>& tbb::atomic< T * >::operator= ( const atomic< T * > &  rhs)
inline

Definition at line 494 of file atomic.h.

494  {
495  this->store_with_release(rhs); return *this;
496  }
value_type store_with_release(value_type rhs)
Definition: atomic.h:326

The documentation for this struct was generated from the following file:

Copyright © 2005-2019 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.