模板错误排查之:错误提示在模板头,实际错误在模板体

今天是费脑的一天,模板在实例化时,提示错误行在模板头,我查阅了很多资料,对模板头的描述,换了多个方法,仍然提示错误,继续排查……

删除重写时,发现是模板体的一行发生错误,改正后,顺序通过,代码摘录如下:

修改前:

        报错行: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{},按实例查找,基本就能解决问题。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值