ADTF
object_ptr_base< T, false, TChild >

Base class for object_ptr<> specialized for T without an ADTF_IID() defined. More...

Inheritance diagram for object_ptr_base< T, false, TChild >:
[legend]

Public Member Functions

 operator const iobject_ptr< object_type > & () const
 Implicit cast operator to const iobject_ptr<IObject> More...
 
- Public Member Functions inherited from object_ptr_const_conversion< T >
 __attribute__ ((noinline)) operator const iobject_ptr< const T > &() const override
 Enable implicit conversion to const value type for pointer-like behavior. More...
 
- Public Member Functions inherited from iobject_ptr< T >
virtual operator const iobject_ptr< const T > & () const =0
 Enable implicit conversion to const value type for pointer-like behavior. More...
 
- Public Member Functions inherited from iobject_ptr_base< T >
virtual T * Get () const =0
 Get raw pointer to shared object. More...
 
virtual tResult Reset (const iobject_ptr< T > &i_oOther)=0
 Reset this object_ptr<> with the content of another iobject_ptr<> More...
 
virtual T * operator-> () const =0
 Operator-> overload to treat object_ptr<> types like real pointers. More...
 

Private Types

typedef iobject_ptr< T >::object_type object_type
 const correct IObject type
 

Additional Inherited Members

- Public Types inherited from iobject_ptr< T >
typedef IObject object_type
 Provided for single point of const correct type access.
 
- Public Types inherited from iobject_ptr_base< T >
typedef T element_type
 Contained type to manage an object of.
 
- Protected Member Functions inherited from object_ptr_const_conversion< T >
 object_ptr_const_conversion ()=default
 CTOR.
 
 ~object_ptr_const_conversion ()=default
 DTOR.
 
- Protected Member Functions inherited from iobject_ptr< T >
 ~iobject_ptr ()=default
 Destructor.
 
- Protected Member Functions inherited from iobject_ptr_base< T >
 ~iobject_ptr_base ()=default
 Destructor.
 

Detailed Description

template<typename T, typename TChild>
class adtf::ucom::ant::object_ptr_base< T, false, TChild >

Base class for object_ptr<> specialized for T without an ADTF_IID() defined.

Managed objects of type T that do not have an ADTF_IID() defined (mainly full implementations of IObject base types) do not allow for calls to object_ptr<>::Reset() using their IObject base. Due to this restriction only the const version of the implicit cast operator to iobject<IObject> can be called.

Template Parameters
TType of the shared resource to manage.
TChildThe child class this base class is inherited from (for CRTP)

Definition at line 81 of file object_ptr.h.

Member Function Documentation

◆ operator const iobject_ptr< object_type > &()

operator const iobject_ptr< object_type > & ( ) const
inline

Implicit cast operator to const iobject_ptr<IObject>

Returns
Reference to iobject_ptr of base class IObject
Return values
iobject_ptr<IObject>if T is non-const
iobject_ptr<constIObject> if T is const

Definition at line 92 of file object_ptr.h.