mxnet
Classes | Public Member Functions | Static Public Member Functions | List of all members
dmlc::ThreadlocalSharedPtr< T > Struct Template Reference

a shared pointer like type that allocate object from a threadlocal object pool. This object is not thread-safe but can be faster than shared_ptr in certain usecases. More...

#include <memory.h>

Collaboration diagram for dmlc::ThreadlocalSharedPtr< T >:
Collaboration graph

Public Member Functions

 ThreadlocalSharedPtr ()
 default constructor More...
 
 ThreadlocalSharedPtr (std::nullptr_t other)
 constructor from nullptr More...
 
 ThreadlocalSharedPtr (const ThreadlocalSharedPtr< T > &other)
 copy constructor More...
 
 ThreadlocalSharedPtr (ThreadlocalSharedPtr< T > &&other)
 move constructor More...
 
 ~ThreadlocalSharedPtr ()
 destructor More...
 
ThreadlocalSharedPtr< T > & operator= (ThreadlocalSharedPtr< T > &&other)
 move assignment More...
 
ThreadlocalSharedPtr< T > & operator= (const ThreadlocalSharedPtr< T > &other)
 copy assignment More...
 
bool operator== (std::nullptr_t other) const
 check if nullptr More...
 
T * get () const
 
void reset ()
 reset the pointer to nullptr. More...
 
bool unique () const
 
T * operator* () const
 
T * operator-> () const
 

Static Public Member Functions

template<typename... Args>
static ThreadlocalSharedPtr< T > Create (Args &&...args)
 create a new space from threadlocal storage and return it. More...
 

Detailed Description

template<typename T>
struct dmlc::ThreadlocalSharedPtr< T >

a shared pointer like type that allocate object from a threadlocal object pool. This object is not thread-safe but can be faster than shared_ptr in certain usecases.

Template Parameters
Tthe data type.

Constructor & Destructor Documentation

template<typename T>
dmlc::ThreadlocalSharedPtr< T >::ThreadlocalSharedPtr ( )
inline

default constructor

template<typename T>
dmlc::ThreadlocalSharedPtr< T >::ThreadlocalSharedPtr ( std::nullptr_t  other)
inline

constructor from nullptr

Parameters
otherthe nullptr type
template<typename T>
dmlc::ThreadlocalSharedPtr< T >::ThreadlocalSharedPtr ( const ThreadlocalSharedPtr< T > &  other)
inline

copy constructor

Parameters
otheranother pointer.
template<typename T>
dmlc::ThreadlocalSharedPtr< T >::ThreadlocalSharedPtr ( ThreadlocalSharedPtr< T > &&  other)
inline

move constructor

Parameters
otheranother pointer.
template<typename T>
dmlc::ThreadlocalSharedPtr< T >::~ThreadlocalSharedPtr ( )
inline

destructor

Member Function Documentation

template<typename T>
template<typename... Args>
static ThreadlocalSharedPtr<T> dmlc::ThreadlocalSharedPtr< T >::Create ( Args &&...  args)
inlinestatic

create a new space from threadlocal storage and return it.

Template Parameters
Argsthe arguments.
Parameters
argsThe input argument
Returns
the allocated pointer.
template<typename T>
T* dmlc::ThreadlocalSharedPtr< T >::get ( ) const
inline
Returns
get the pointer content.
template<typename T>
T* dmlc::ThreadlocalSharedPtr< T >::operator* ( ) const
inline
Returns
dereference pointer
template<typename T>
T* dmlc::ThreadlocalSharedPtr< T >::operator-> ( ) const
inline
Returns
dereference pointer
template<typename T>
ThreadlocalSharedPtr<T>& dmlc::ThreadlocalSharedPtr< T >::operator= ( ThreadlocalSharedPtr< T > &&  other)
inline

move assignment

Parameters
otheranother object to be assigned.
Returns
self.
template<typename T>
ThreadlocalSharedPtr<T>& dmlc::ThreadlocalSharedPtr< T >::operator= ( const ThreadlocalSharedPtr< T > &  other)
inline

copy assignment

Parameters
otheranother object to be assigned.
Returns
self.
template<typename T>
bool dmlc::ThreadlocalSharedPtr< T >::operator== ( std::nullptr_t  other) const
inline

check if nullptr

template<typename T>
void dmlc::ThreadlocalSharedPtr< T >::reset ( )
inline

reset the pointer to nullptr.

template<typename T>
bool dmlc::ThreadlocalSharedPtr< T >::unique ( ) const
inline
Returns
if use_count == 1

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