📄 typebuilder.h
字号:
const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25, const Type & t26); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25, const Type & t26, const Type & t27); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25, const Type & t26, const Type & t27, const Type & t28); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25, const Type & t26, const Type & t27, const Type & t28, const Type & t29); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25, const Type & t26, const Type & t27, const Type & t28, const Type & t29, const Type & t30); RFLX_API Type FunctionTypeBuilder(const Type & r, const Type & t0, const Type & t1, const Type & t2, const Type & t3, const Type & t4, const Type & t5, const Type & t6, const Type & t7, const Type & t8, const Type & t9, const Type & t10, const Type & t11, const Type & t12, const Type & t13, const Type & t14, const Type & t15, const Type & t16, const Type & t17, const Type & t18, const Type & t19, const Type & t20, const Type & t21, const Type & t22, const Type & t23, const Type & t24, const Type & t25, const Type & t26, const Type & t27, const Type & t28, const Type & t29, const Type & t30, const Type & t31); /** * offsetOf will calculate the Offset of a data MemberAt relative * to the start of the class * @param MemberAt the pointer to the data MemberAt * @return the Offset of the data MemberAt */ template < typename C, typename M > size_t offsetOf( M C::* member ) { return (size_t) & (((C*)0)->*member); } /** * @struct BaseOffset TypeBuilder.h Reflex/Builder/TypeBuilder.h * provide the static function that calculates the Offset between BaseAt classes */ template < typename C, typename B > class BaseOffset { public: static size_t Offset (void * o ) { return (size_t)(B*)(C*)o - (size_t)(C*)o; } static OffsetFunction Get() { return & BaseOffset::Offset; } }; /** * @struct TypeDistiller TypeBuilder.h Reflex/Builder/TypeBuilder.h * @author Pere Mato * @date 29/07/2004 * @ingroup RefBld */ template<typename T> class TypeDistiller { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T)); if ( ! t.Id() ) t = Type::ByName(Tools::Demangle(typeid(T))); if ( t.Id() ) return t; else return TypeBuilder(Tools::Demangle(typeid(T)).c_str()); } }; /** */ template<typename T> class TypeDistiller<T *> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T*)); if ( t ) return t; else return PointerBuilder(TypeDistiller<T>::Get(),typeid(T *)); } }; /** */ template<typename T, size_t N > class TypeDistiller<T[N]> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T*)); if ( t ) return t; else return ArrayBuilder(TypeDistiller<T>::Get(),N,typeid(NullType)); } }; /** */ template<typename T> class TypeDistiller<const T> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T)); if ( t ) return Type( t, CONST ); else return Type(TypeDistiller<T>::Get(),CONST); } }; /** */ template<typename T> class TypeDistiller<volatile T> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T)); if ( t ) return Type( t, VOLATILE ); else return Type(TypeDistiller<T>::Get(),VOLATILE); } }; /** */ template<typename T> class TypeDistiller<const volatile T> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T)); if ( t ) return Type( t, CONST | VOLATILE ); else return Type(TypeDistiller<T>::Get(),CONST|VOLATILE); } }; /** */ template<typename T> class TypeDistiller<T &> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T)); if ( t ) return Type( t, REFERENCE ); else return Type(TypeDistiller<T>::Get(),REFERENCE); } }; /** */ template<typename T> class TypeDistiller<const T &> { public: static Type Get() { Type t = Type::ByTypeInfo(typeid(T)); if ( t ) return Type( t, CONST | REFERENCE ); else return Type(TypeDistiller<T>::Get(),CONST|REFERENCE); } }; /** */ template<typename T> class TypeDistiller<volatile T &> { public:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -