c++ 完备的运行时类型信息(动态类型信息)
也许可以有简捷的方法,好比不必要引入TypeInfoImp,可是现实最终证明TypeInfoImp的方法最具机动性也最能节减代码。最最少,它在自界说的struct可能class就很利便,只要改struct内部包括一个GetTypeInfo()的函数,它就可以被纳入TypeOf系统中,很是利便。对付模板范例的TypeInfoImp,就要用到哈希表了。好比,对付std::paira的范例信息,如下实现, template<typename FstTy,typename SndTy> struct TypeInfoImp < std::pair<FstTy,SndTy> > { static const bool value = true; typedef TypeInfoImp < std::pair<FstTy,SndTy> > type; static TypeInfo* GetTypeInfo() { ParamsTypeInfo<FstTy,SndTy> args; return PodPair::LookupTemplateTypeInfo(args); } }; 提取其范例参数的const TypeInfo*,天生数组。用此数组到PodPair的哈希表内里查找,假如哈希表中以有此范例数组参数的工具就返回,不然见建设一个添加一条哈希条目,然后返回。每一个泛型范例,好比vector,list,pair都有一个属于本身的哈希表。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |