7 #ifndef _QITYPE_DETAIL_TYPEINTERFACE_HPP_
8 #define _QITYPE_DETAIL_TYPEINTERFACE_HPP_
22 # pragma warning( push )
23 # pragma warning( disable: 4251 )
37 TypeInfo(
const std::type_info& info);
41 std::string asString()
const;
42 std::string asDemangledString()
const;
45 const char* asCString()
const;
52 const std::type_info* stdInfo;
54 std::string customInfo;
128 virtual void* initializeStorage(
void* ptr=0)=0;
140 virtual void* ptrFromStorage(
void**)=0;
143 virtual void* clone(
void*)=0;
160 virtual bool less(
void* a,
void* b) = 0;
163 inline const char*
infoString() {
return info().asCString(); }
174 qi::Signature signature(
void* storage=0,
bool resolveDynamic =
false);
188 template<
typename T> TypeInterface*
typeOf();
205 # pragma warning( pop )
208 #endif // _QITYPE_DETAIL_TYPEINTERFACE_HPP_
void destroy()
Stop and flush the logging system.
dll import/export and compiler message
bool registerType(const std::type_info &typeId, TypeInterface *type)
Runtime Type factory setter.
TypeInterface * getType(const std::type_info &type)
Runtime Type factory getter. Used by typeOf<T>()
bool operator==(const Signature &lhs, const Signature &rhs)
TypeInterface * getRegisteredStruct(const qi::Signature &s)
const char * infoString()
void registerStruct(TypeInterface *type)
bool operator<(const AnyReference &a, const AnyReference &b)
bool operator!=(const Signature &lhs, const Signature &rhs)