Open CASCADE Technology
7.1.0.beta
|
Intrusive smart pointer for use with Standard_Transient class and its descendants. More...
#include <Standard_Transient.hxx>
Public Types | |
typedef T | element_type |
STL-compliant typedef of contained type. More... | |
Public Member Functions | |
handle () | |
Empty constructor. More... | |
handle (const T *thePtr) | |
Constructor from pointer to new object. More... | |
handle (const handle &theHandle) | |
Copy constructor. More... | |
handle (handle &&theHandle) | |
Move constructor. More... | |
~handle () | |
Destructor. More... | |
void | Nullify () |
Nullify the handle. More... | |
bool | IsNull () const |
Check for being null. More... | |
void | reset (T *thePtr) |
Reset by new pointer. More... | |
handle & | operator= (const handle &theHandle) |
Assignment operator. More... | |
handle & | operator= (const T *thePtr) |
Assignment to pointer. More... | |
handle & | operator= (handle &&theHandle) |
Move operator. More... | |
T * | get () const |
STL-like cast to pointer to referred object (note non-const). More... | |
T * | operator-> () const |
Member access operator (note non-const) More... | |
T & | operator* () const |
Dereferencing operator (note non-const) More... | |
template<class T2 > | |
bool | operator== (const handle< T2 > &theHandle) const |
Check for equality. More... | |
template<class T2 > | |
bool | operator== (const T2 *thePtr) const |
Check for equality. More... | |
template<class T2 > | |
bool | operator!= (const handle< T2 > &theHandle) const |
Check for inequality. More... | |
template<class T2 > | |
bool | operator!= (const T2 *thePtr) const |
Check for inequality. More... | |
template<class T2 > | |
bool | operator< (const handle< T2 > &theHandle) const |
Compare operator for possible use in std::map<> etc. More... | |
template<class T2 > | |
Standard_DEPRECATED ("down-casting from object of the same or unrelated type is meaningless") static handle DownCast(const handle< T2 > &theObject | |
For compatibility, define down casting operator from non-base type, as deprecated. More... | |
Static Public Member Functions | |
template<class T2 > | |
static std::enable_if< is_base_but_not_same< T2, T >::value, handle >::type | DownCast (const handle< T2 > &theObject) |
Down casting operator from handle to base type. More... | |
template<class T2 > | |
static std::enable_if< is_base_but_not_same< T2, T >::value, handle >::type | DownCast (const T2 *thePtr) |
Down casting operator from pointer to base type. More... | |
Friends | |
template<class T2 > | |
bool | operator== (const T2 *left, const handle &right) |
Check for equality. More... | |
template<class T2 > | |
bool | operator!= (const T2 *left, const handle &right) |
Check for inequality. More... | |
Intrusive smart pointer for use with Standard_Transient class and its descendants.
This class is similar to boost::intrusive_ptr<>, with additional feature historically supported by Handles in OCCT: it has type conversion to const reference to handle to the base types, which allows it to be passed by reference in functions accepting reference to handle to base class.
These casts (potentially unsafe) can be disabled by defining macro OCCT_HANDLE_NOCAST; if it is defined, generalized copy constructor and assignment operators are defined allowing to initialize handle of base type from handle to derived type.
typedef T opencascade::handle< T >::element_type |
STL-compliant typedef of contained type.
|
inline |
Empty constructor.
|
inline |
Constructor from pointer to new object.
|
inline |
Copy constructor.
|
inline |
Move constructor.
|
inline |
Destructor.
|
inlinestatic |
Down casting operator from handle to base type.
|
inlinestatic |
Down casting operator from pointer to base type.
|
inline |
STL-like cast to pointer to referred object (note non-const).
|
inline |
Check for being null.
|
inline |
Nullify the handle.
|
inline |
Check for inequality.
|
inline |
Check for inequality.
|
inline |
Dereferencing operator (note non-const)
|
inline |
Member access operator (note non-const)
|
inline |
Compare operator for possible use in std::map<> etc.
|
inline |
Assignment operator.
|
inline |
Assignment to pointer.
|
inline |
Move operator.
|
inline |
Check for equality.
|
inline |
Check for equality.
|
inline |
Reset by new pointer.
opencascade::handle< T >::Standard_DEPRECATED | ( | "down-casting from object of the same or unrelated type is meaningless" | ) | const |
For compatibility, define down casting operator from non-base type, as deprecated.
|
friend |
Check for inequality.
|
friend |
Check for equality.