Quick Links: |
#include <bslma_sharedptrinplacerep.h>
Static Public Member Functions | |
template<class TYPE > | |
static const TYPE & | forward (const TYPE &reference) |
template<class TYPE > | |
static BloombergLP::bslmf::MovableRef < TYPE > | forward (const BloombergLP::bslmf::MovableRef< TYPE > &reference) |
template<class TYPE > | |
static void * | voidify (TYPE *address) |
template<class TYPE > | |
static void | dispose (const TYPE &object) |
template<class TYPE , size_t SIZE> | |
static void | dispose (const TYPE(&object)[SIZE]) |
This struct provides a namespace for several static methods that ease the implementation of many methods of the SharedPtrInplaceRep
class.
See Component bslma_sharedptrinplacerep
static const TYPE& bslma::SharedPtrInplaceRep_ImpUtil::forward | ( | const TYPE & | reference | ) | [static] |
static BloombergLP::bslmf::MovableRef<TYPE> bslma::SharedPtrInplaceRep_ImpUtil::forward | ( | const BloombergLP::bslmf::MovableRef< TYPE > & | reference | ) | [static] |
Return the specified reference
. Note that this pair of overloaded functions is necessary to correctly forward movable references when providing explicit move-semantics for C++03; otherwise the MovableRef
is likely to be wrapped in multiple layers of reference wrappers, and not be recognized as the movable vocabulary type.
static void* bslma::SharedPtrInplaceRep_ImpUtil::voidify | ( | TYPE * | address | ) | [static] |
Return the specified address
cast as a pointer to void
, even if (the template parameter) TYPE
is cv-qualified.
static void bslma::SharedPtrInplaceRep_ImpUtil::dispose | ( | const TYPE & | object | ) | [static] |
Destroy the specified object
.
static void bslma::SharedPtrInplaceRep_ImpUtil::dispose | ( | const TYPE(&) | object[SIZE] | ) | [static] |
Destroy each element of the specified object
.