CVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f1, TTypeInfoGetter f) { return AddVariant(info, name, member, f1, CTypeRef(f)); }
CMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f1, TTypeInfoGetter f) { return AddMember(info, name, member, f1, CTypeRef(f)); }
// four arguments: CVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r) { return AddVariant(info, name, member, f3, f2, CTypeRef(f1, r)); }
// four arguments: CMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, const CTypeRef& r) { return AddMember(info, name, member, f3, f2, CTypeRef(f1, r)); }
CVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t) { return AddVariant(info, name, member, f4, f3, f2, f1, CTypeRef(t)); }
CMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfoGetter1 f4, TTypeInfoGetter1 f3, TTypeInfoGetter1 f2, TTypeInfoGetter1 f1, TTypeInfo t) { return AddMember(info, name, member, f4, f3, f2, f1, CTypeRef(t)); }
CStlTwoArgsTemplate::CStlTwoArgsTemplate(size_t size, const CTypeRef& keyType, TPointerOffsetType keyOffset, const CTypeRef& valueType, TPointerOffsetType valueOffset, bool randomOrder) : CParent(size, CTypeRef(&CreateElementTypeInfo, this), randomOrder), m_KeyType(keyType), m_KeyOffset(keyOffset), m_ValueType(valueType), m_ValueOffset(valueOffset) { }
CVariantInfo* AddVariant(CChoiceTypeInfo* info, const char* name, const void* member, TTypeInfo t) { return AddVariant(info, name, member, CTypeRef(t)); }
CMemberInfo* AddMember(CClassTypeInfoBase* info, const char* name, const void* member, TTypeInfo t) { return AddMember(info, name, member, CTypeRef(t)); }
inline CTypeRef GetChoiceTypeRef(TTypeInfo (*func)(void)) { return CTypeRef(&CAutoPointerTypeInfoGetTypeInfo, func); }
inline CTypeRef GetSequenceOfTypeRef(T* const* p) { // const T* p = 0; return CTypeRef(&CSequenceOfTypeInfoGetTypeInfo, GetSetTypeRef(p)); }
inline CTypeRef GetSequenceTypeRef(T* const* ) { const T* p = 0; return CTypeRef(&CAutoPointerTypeInfoGetTypeInfo, GetAsnStructTypeInfo(p)); }