7 #ifndef _QITYPE_DETAIL_TYPEPOINTER_HXX_
8 #define _QITYPE_DETAIL_TYPEPOINTER_HXX_
10 #include <boost/shared_ptr.hpp>
52 return typeOf<typename T::element_type>();
64 T* otherPtr = (T*)pointer.
rawValue();
70 throw std::runtime_error(
"cannot convert to shared_ptr");
79 #endif // _QITYPE_DETAIL_TYPEPOINTER_HXX_
virtual void * ptrFromStorage(void **)=0
void set(void **storage, AnyReference pointer) override
Set new pointee value. pointer must be a pointer to type pointedType()
_QI_BOUNCE_TYPE_METHODS(TypeMethodsImpl)
_QI_BOUNCE_TYPE_METHODS(Impl)
TypeInterface * pointedType() override
Get the type of the pointed element.
AnyReference dereference(void *storage) override
Get the pointed element (must not be destroyed)
virtual void * initializeStorage(void *ptr=nullptr)=0
void setPointee(void **storage, void *pointer) override
Set new pointee value. pointer must be a pointer to type pointedType()
void setPointee(void **storage, void *pointer) override
Set new pointee value. pointer must be a pointer to type pointedType()
AnyReference dereference(void *storage) override
Get the pointed element (must not be destroyed)
PointerKind pointerKind() override
Return whether the pointer has raw or shared semantics.
void set(void **storage, AnyReference pointer) override
Set new pointee value. pointer must be a pointer to type pointedType()
PointerKind pointerKind() override
Return whether the pointer has raw or shared semantics.
TypeInterface * pointedType() override
Get the type of the pointed element.