9#include <QtCore/QByteArray>
26 explicit CClassInfo(
const std::type_info& info);
41 const QByteArray&
GetName()
const;
106 static QByteArray
GetName(
const std::type_info& info);
131: m_name(GetName(info))
137: m_name(GetUndecoratedName(name))
143: m_name(GetUndecoratedName(typeid(object).name()))
150 return !m_name.isEmpty();
162 return *
this == istd::CClassInfo::GetInfo<void>();
169 return m_name ==
GetName(
typeid(C));
183 m_name = info.m_name;
191 return m_name == info.m_name;
197 return m_name != info.m_name;
203 return m_name < info.m_name;
209 return m_name > info.m_name;
Represents platform independent type info and provide set of static class manipulation functions.
bool IsConst() const
Check if this class information represents const class.
CClassInfo GetTemplateParam(int paramIndex=0) const
Get class info of some template parameter if this class is template.
bool operator!=(const CClassInfo &info) const
CClassInfo & operator=(const std::type_info &info)
static CClassInfo GetInfo()
Get class name defined as template parameter.
bool operator<(const CClassInfo &info) const
bool operator>(const CClassInfo &info) const
static QByteArray GetName(const std::type_info &info)
Get class name from RTTI.
const QByteArray & GetName() const
Get undecorated and platform undependent class name.
bool IsValid() const
Check if this class info object is valid.
bool operator==(const CClassInfo &info) const
bool IsVoid() const
Check if this class information represents void type.
int GetTemplateParamsCount() const
Get number of template parameters if this class is template class.
bool ConstCast(bool enableConst=true)
Enable or disable const attribute.
CClassInfo GetConstCasted(bool enableConst=true) const
Get class with enabled or disabled const attribute.
bool IsTemplateClass() const
Check if this class information represents template class.
CClassInfo(CClassInfo const &)=default
static QByteArray GetUndecoratedName(const QByteArray &rawName)
Get undecorated class name from raw name.
static QByteArray GetName(const istd::IPolymorphic &object)
Get class name of polymorphic object.
Base interface for all used interfaces and implementations.