|
libcamgm
|
#include <PtrTypes.hpp>
Public Types | |
| typedef _Traits::_Ptr | _Ptr |
| typedef _Traits::_constPtr | _constPtr |
| typedef _Ptr::unspecified_bool_type | unspecified_bool_type |
Public Member Functions | |
| RW_pointer (typename _Ptr::element_type *dptr=0) | |
| RW_pointer (_Ptr dptr) | |
| void | reset () |
| void | reset (typename _Ptr::element_type *dptr) |
| void | swap (RW_pointer &rhs) |
| void | swap (_Ptr &rhs) |
| operator unspecified_bool_type () const | |
| const _D & | operator* () const |
| const _D * | operator-> () const |
| const _D * | get () const |
| _D & | operator* () |
| _D * | operator-> () |
| _D * | get () |
| bool | unique () const |
| long | use_count () const |
| _constPtr | getPtr () const |
| _Ptr | getPtr () |
Private Attributes | |
| _Ptr | _dptr |
Related Functions | |
(Note that these are not member functions.) | |
| template<class _D , class _Ptr > | |
| std::ostream & | operator<< (std::ostream &str, const RW_pointer< _D, _Ptr > &obj) |
| template<class _D , class _Ptr > | |
| bool | operator== (const RW_pointer< _D, _Ptr > &lhs, const RW_pointer< _D, _Ptr > &rhs) |
| template<class _D , class _Ptr > | |
| bool | operator!= (const RW_pointer< _D, _Ptr > &lhs, const RW_pointer< _D, _Ptr > &rhs) |
Wrapper for const correct access via Smart pointer types.
ca_mgm::RW_pointer<tt><D,_Traits> stores a Smart pointer types of type _Traits::_Ptr, which must be convertible into a _D *. Pointer style access (via -> and *) offers a const _D * in const a context, otherwise a _D *. Thus RW means read/write, as you get a different type, dependent on whether you're allowed to read or write.
Forwarding access from an interface to an implemantation class, an RW_pointer prevents const interface methods from accidentally calling nonconst implementation methods.
The second template argument defaults to _Traits = rw_pointer::Shared<_D> thus wraping a shared_ptr<_D>. To wrap an intrusive_ptr<_D> use rw_pointer::Intrusive<_D>.
| typedef _Traits::_constPtr ca_mgm::RW_pointer< _D, _Traits >::_constPtr |
| typedef _Traits::_Ptr ca_mgm::RW_pointer< _D, _Traits >::_Ptr |
| typedef _Ptr::unspecified_bool_type ca_mgm::RW_pointer< _D, _Traits >::unspecified_bool_type |
|
inlineexplicit |
|
inlineexplicit |
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
Referenced by ca_mgm::RW_pointer< _D, _Traits >::operator==().
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
inline |
References ca_mgm::RW_pointer< _D, _Traits >::_dptr.
|
private |
Referenced by ca_mgm::RW_pointer< _D, _Traits >::get(), ca_mgm::RW_pointer< _D, _Traits >::getPtr(), ca_mgm::RW_pointer< _D, _Traits >::operator unspecified_bool_type(), ca_mgm::RW_pointer< _D, _Traits >::operator*(), ca_mgm::RW_pointer< _D, _Traits >::operator->(), ca_mgm::RW_pointer< _D, _Traits >::reset(), ca_mgm::RW_pointer< _D, _Traits >::swap(), ca_mgm::RW_pointer< _D, _Traits >::unique(), and ca_mgm::RW_pointer< _D, _Traits >::use_count().
1.8.2