加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++ typename的使用方式

发布时间:2020-12-15 04:57:42 所属栏目:百科 来源:网络整理
导读:基本用法 对于泛型模板的声明,typename和class的作用一样,都是为了说明模板类型。 template void fun(T t,C c); // 这里的T和C是等价的 与class的区别 https://stackoverflow.com/questions/2023977/difference-of-keywords-typename-and-class-in-templat

基本用法

对于泛型模板的声明,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::type;

/*

''''''

*/

}

上述的函数是一个泛型的函数模板,如果需要使用到F的返回类型,就要靠上面这种说明方式。一个更具体的例子,在C++11的多线程中,如果使用std::future,那么泛型的效果更加明显。

template

auto getRes() -> std::future::type>

{

// 这个函数返回一个泛型的std::future类型,但是该类型依赖于泛型函数F的返回值,所以使用typename的方式

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读