今天是费脑的一天,模板在实例化时,提示错误行在模板头,我查阅了很多资料,对模板头的描述,换了多个方法,仍然提示错误,继续排查……
删除重写时,发现是模板体的一行发生错误,改正后,顺序通过,代码摘录如下:
修改前:
报错行:template<typename T, typename = decltype(std::declval<T>().Index)>
void _if_T_has_Index_for_TC_Dict(vector<T*>* _Items)
{
……
for (size_t i = _from; i < _Items->size(); i++)
错误行: (_Items+i)->Index = i;
……
}
错误行修改为:(*_Items)[i]->Index = i;
重新编译,通过。
模板错误查找方法总结:
1,要整体查找;
2、定义一个类:class T{},按实例查找,基本就能解决问题。