首页 > 后端开发 > C++ > 为什么我的 TMap 模板在此函数调用中类型推导失败?

为什么我的 TMap 模板在此函数调用中类型推导失败?

Susan Sarandon
发布: 2024-12-23 01:10:08
原创
806 人浏览过

Why Does Type Deduction Fail for My TMap Template in This Function Call?

TMap 模板中类型推导失败

针对调用测试函数时出现推导错误的查询,问题出在实例化 T 模板参数的不可推导上下文。

在测试函数中,编译器尝试根据参数tmap_的类型推导类型T。然而,由于 TMap 模板可能存在针对不同类型的多种特化(例如,TMap 和 TMap<:string>),因此编译器无法仅通过检查 tmap_ 的类型来唯一确定 T 的类型。

考虑一个假设的专业化:

template <>
struct TMap<SomeType>
{
    typedef std::map<double, double> Type;
};
登录后复制

在这种情况下, TMap::Type 相当于 std::map。但是,如果 OtherType 存在另一个特化,也将其类型定义为 std::map,则编译器在遇到 std::map 时无法推断出 T 对应于哪种类型。 tmap_ 的类型。

编译器缺乏可用于在 tmap_ 的类型和 T 的类型之间建立唯一对应关系的信息,导致报告推导错误。要解决此问题,必须在调用测试函数时显式指定类型 T,确保选择正确的模板特化。

以上是为什么我的 TMap 模板在此函数调用中类型推导失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板