基本用法
对于泛型模板的声明,typename和class的作用一样,都是为了说明模板类型。
template
voID fun(T t,C c); // 这里的T和C是等价的
与class的区别
https://stackoverflow.com/questions/2023977/difference-of-keywords-typename-and-class-in-templates
需要使用的类型需要依靠泛型模板的时候,此时需要typename进行显式说明。
代码实例:
template
voID fun(F f) {
using return_type = typename std::result_of
/*
''''''
*/
}
上述的函数是一个泛型的函数模板,如果需要使用到F的返回类型,就要靠上面这种说明方式。一个更具体的例子,在C++11的多线程中,如果使用std::future,那么泛型的效果更加明显。
template
auto getRes() -> std::future
{
// 这个函数返回一个泛型的std::future类型,但是该类型依赖于泛型函数F的返回值,所以使用typename的方式
}
总结以上是内存溢出为你收集整理的C++ typename的使用方式全部内容,希望文章能够帮你解决C++ typename的使用方式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)