类模板内不会提示任何错误?
运行会报错,但是在写代码的过程中不会提示任何错误
template内怎么写都不会提示错误,这是为什么?
我以为编译器的问题,最后才发现其他地方会正常提示错误,就是红色波浪线,只有template内部不会提示。
这对于我来说很烦恼!
模板在使用时进行编译和检查
模板编译是两个阶段的
Visual Studio可以对模板提供智能提示。
需要在template旁填写参数类型。鼠标移动到template旁会弹出,并选择所添加的类型。微软更新博客:https://devblogs.microsoft.com/cppblog/template-intellisense/
【相关推荐】
some_template<int,string>foo;//使用类模板
some_template<string,int>bar;//使用部分特化
1.foo的实例化类型与提供的部分特化类型不匹配,因此,foo的类型必然从通用类模板实例化
2.bar选择部分特化模板来实例化。当声明了部分特化的时候,编译器将为实例化选择最特化的模板定义,当没有部分特化可以使用的时候,就使用通用模板定义。
ps:函数模板是没有部分特化的,如果声明了一个部分特化的函数模板,编译器会报错