基本用法

对于泛型模板的声明,typenameclass的作用一样,都是为了说明模板类型。

template <typename T, class C>
void fun(T t, C c);  // 这里的T和C是等价的

与class的区别

https://stackoverflow.com/questions/2023977/difference-of-keywords-typename-and-class-in-templates

需要使用的类型需要依靠泛型模板的时候,此时需要typename进行显式说明。

代码实例:

template <class F>
void fun(F f) {using return_type = typename std::result_of<F()>::type;/*''''''*/
}

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

template <class F>
auto getRes() -> std::future<typename std::result_of<F()>::type>
{// 这个函数返回一个泛型的std::future类型,但是该类型依赖于泛型函数F的返回值,所以使用typename的方式
}

C++ typename的使用方式相关推荐

  1. c++ class struct同名_相对于C语言,C++对struct做了非常多的扩充,功能更全面了

    我有相当长的一段时间(数月)没有更新文章了. 并不是我放弃了写技术文章,而是因为这段时间,我把精力主要放在了图像智能算法的学习上了.去年12月时,我对图像智能算法还懵懵懂懂,做着 Linux 嵌入式应 ...

  2. 现代C++模板元编程基础

    元函数的基础介绍 C++的模板元编程是函数式编程,所以函数是一等公民.一切在编译期间执行的函数都可以称为元函数.元函数有struct和constexpr两种定义方式,前者是一直使用的,后者是C++11 ...

  3. lua 函数 默认值_Unity热更新框架之xLua

    一:xLua概述 二:Lua文件加载 三:xLua文件配置 四:Lua与C#交互 五:xLua热更新 一:xLua概述 1.1 xLua简介 xLua是由腾讯维护的一个开源项目,xLua为Unity. ...

  4. Unity XLua 相关

    转自:https://www.cnblogs.com/coderJiebao/p/unity3d23.html 1. Helloworld 1 using UnityEngine;2 using XL ...

  5. 基于bibtex的文献管理(详细)

    本文参考https://www.overleaf.com/learn/latex/Bibliography_management_with_bibtex 一.如何收集文献 正式论文 在dblp(CS专 ...

  6. XLua+AssetsBundlePackage热更新(使用netbox2.8作为服务器)

    1.打AB包 ab包插件:assetbundles-browser-master.zip 1)编辑器修改 将此代码放到Editor文件夹下,不然会报错 using System.Net; using ...

  7. Lua快速入门篇(XLua教程)(Yanlz+热更新+xLua+配置+热补丁+第三方库+API+二次开发+常见问题+示例参考)

                            <Lua热更新> ##<Lua热更新>发布说明: ++++"Lua热更新"开始了,立钻哥哥终于开始此部分的探 ...

  8. Geotools(空间分析,栅格,坐标系,查询,简易地图,GP工具)

    简介 概述:GeoTools 是一个开源 (LGPL) Java 代码库,它为操作地理空间数据提供符合标准的方法,例如实现地理信息系统.GeoTools 库数据结构基于开放地理空间联盟 (OGC) 规 ...

  9. 用模板实现单例模式(线程安全)、模板方式实现动态创建对象

    一.用模板实现单例模式 在前面的文章中,用过多种方法实现单例模式,现在用模板方式来实现: 为了实现线程安全,需要在linux 下使用pthread_mutex_t 加锁,请使用g++ 编译并需要链接 ...

最新文章

  1. 怎么帮java转换成类图_有把java代码直接转成uml类图的工具吗 – 手机爱问
  2. 历史版本_DNF:历史版本十大经典地图,没经历过那个时代的人不会明白的
  3. 网络:url?uri?
  4. 重载操作符与转换(上)
  5. [转载][总结]函数getopt(),getopt_long及其参数optind
  6. 大学计算机上机实验指导与测试pdf,4大学计算机基础上机实验指导与习题--习题.pdf...
  7. 详解深度语义匹配模型DSSM和他的兄弟姐妹
  8. java实验报告实验六,第六周java实验报告四
  9. 测试Android应用程序的逆向方法和寻找攻击面的技巧
  10. 前端如何更精准的评估开发时间
  11. c++ primer plus 对象和类
  12. 10款免费的电路设计软件,你用过几个?
  13. Netty权威指南 第2版
  14. 指数波段划分以及底部反弹行业特征统计分析
  15. HEIC格式怎么转换?掌握这个方法,轻松实现!
  16. 在CentOs7上部署Gunicorn
  17. js+css3实现鼠标控制图片旋转实现方向舵效果
  18. 微信公众号开发——模板消息
  19. 网易云api访问登录后仍返回{msg: ‘需要登录‘, code: 301}
  20. USB的四种传输类型

热门文章

  1. 建立efi分区_电脑维修不求人之几条命令无损增加分区的方法
  2. 【机器学习-西瓜书】七、朴素贝叶斯分类器
  3. Youki的C++命名规则
  4. WARNING:tensorflow:Entity <bound method GRUCell.call of <tensorflow.python.ops.rnn_cell_impl.GRUCell
  5. python发QQ邮件
  6. 【多线程】CAS乐观锁
  7. flex4自定义皮肤
  8. 【算法导论】双调欧几里得旅行商问题
  9. Python: PS滤镜--径向模糊
  10. 2016蓝桥杯C++A组第六题 寒假作业【暴力搜索】