`
swimmer2000
  • 浏览: 36731 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用模板判断模板参数类型

阅读更多

C++中可以把数据类型当成参数,类型参数可以由编译器推导出来,也可以由程序员显式指定. 下面的两个模板,就可以用来判断模板的类型参数是否为reference或者const.

template <typename T> struct IsReference ///Use this struct to determine if a template type is a reference { enum { VALUE = 0 }; };

template <typename T> struct IsReference<T&> { enum { VALUE = 1 }; };

template <typename T> struct IsReference<const T&> { enum { VALUE = 1 }; };

template <typename T> struct IsConst ///Use this struct to determine if a template type is a const type { enum { VALUE = 0 }; };

template <typename T> struct IsConst<const T&> { enum { VALUE = 1 }; };

template <typename T> struct IsConst<const T> { enum { VALUE = 1 }; };

这两个模板函数(IsReference和IsConst)聪明的地方在于,编译器会根据模板参数的类型,选 择最贴近的模板类(struct)来实例化.

使用示例: template <typename T> void foo() { if (IsReferenc<T>.VALUE) { // 类型参数T为reference } if (IsConst<T>.VALUE) { // 类型参数为const } }

分享到:
评论

相关推荐

    半导体常规电学参数测试模板PPT学习教案.pptx

    "半导体常规电学参数测试模板PPT学习教案" 本资源是关于半导体常规电学参数测试的学习教案,主要介绍了半导体硅单晶导电型号的测量方法、半导体硅单晶电阻率的测量方法等知识点。 1. 半导体硅单晶导电型号的测量...

    材料研发工程师简历模板.doc

    * 硅通孔技术中碳纳米管互连结构的失效机理研究(2009.05-至今):利用 ABAQUS 软件建立碳纳米管束等效有限元模型,研究碳纳米管束结构机械性能探讨各项参数对碳纳米管束等效模型机械性能的影响,总结其变化规律。...

    机器学习作业-利用对数几率回归进行判断某人是否患有心脏病+源代码+文档说明

    1、资源内容:机器学习作业-利用对数几率回归进行判断某人是否患有心脏病+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行...

    数学建模-假设检验.PPT

    假设检验的概念是指在统计学中,对总体参数或分布形式作出某种假设,然后利用样本信息来判断原假设是否成立。如果原假设成立,则拒绝备择假设;否则,接受备择假设。 假设检验的类型 假设检验可以分为两类:参数...

    Visual C++开发经验技巧宝典(第1章)

    0078 在C++.NET中如何判断空指针 33 0079 C++与C++.NET中纯虚函数的区别 33 0080 C++.NET中数据类型转换的方法 33 0081 在C++.NET中如何定义具有输出参数的函数 33 0082 C++.NET中如何实现方法的默认参数 ...

    C++大学教程,一本适合初学者的入门教材(part2)

    12.5 类模板与非类型参数 12.6 模板与继承 12.7 模板与友元 12.8 模板与static成员 小结 术语 自测练习 自测练习答案 练习 第13章 异常处理 13.1 简介 13.2 何时使用异常处理 13.3 其他错误处理方法 13.4 C...

    Visual C++开发经验技巧宝典(第3章)

    0160 判断代码中的括号是否匹配 76 0161 如何对齐零乱的代码 77 0162 显示函数参数 77 0163 在类向导中处理没有发现的窗口消息 77 0164 如何汉化可执行文件 77 0165 查看Exe或Dll文件中的资源 78 0166 ...

    国家开放大学《计算机应用基础》形考作业三答案.doc

    在 Excel 中,可以根据现有工作簿创建新工作簿,也可以利用本机或在线模板新建工作簿。 公式编写 在 Excel 中,公式可以用来实现各种计算和逻辑操作,例如,IF 函数可以用来实现条件判断。 错误信息显示 在 Excel ...

    Excel VBA实用技巧大全 附书源码

    01048利用GetOpenFilename方法获取某类型文件名 01049改变GetOpenFilename方法的默认路径 01050改变GetOpenFilename方法的标题文字 01051使用GetOpenFilename方法时出现错误的处理 01052利用GetSaveAsFilename方法...

    Excel VBA与数据库整合应用范例精讲书及源代码

    内容简介 《Excel VBA 数据库整合应用范例精讲》用180个实例介绍了利用Excel VBA来操作数据库(包括Access、SQL Server和FoxPro)的实用方法和技巧。  全书共11章。第1~6章是利用Excel VBA操作Access数据库的实例...

    Matlab基于VQ的语者识别系统(含所有代码).doc

    该系统通过提取Mel倒谱系数,制作模板码本与测试者相应参数进行对比,根据阈值判断,差别最小的则认为匹配原训练模板,即测试者与训练者为同一人,否则认为不是同一人。 该系统的主要组成部分包括语者判定和实施...

    pc524.zip_lyapunov PID

    混沌的判断指标Lyapunov指数计算,IMC-PID是利用内模控制原理来对PID参数进行计算,通过反复训练模板能有较高的识别率。

    C++大学教程,一本适合初学者的入门教材(part1)

    12.5 类模板与非类型参数 12.6 模板与继承 12.7 模板与友元 12.8 模板与static成员 小结 术语 自测练习 自测练习答案 练习 第13章 异常处理 13.1 简介 13.2 何时使用异常处理 13.3 其他错误处理方法 13.4 C...

    适用于侧信道分析的卷积神经网络结构的实验研究.pdf

    侧信道分析是一种利用加密设备在运行过程中的时间消耗、功率消耗等泄露的敏感信息对密钥进行攻击的方法。侧信道攻击有多种实现方式,包括简单能量分析攻击、差分能量分析攻击和模板攻击等。模板攻击是侧信道攻击中的...

    易迅电子病历系统V6.4.0官方安装版

    利用软件系统帮助医生快速、智能安全的完成非主观判断性的临床工作内容。利用软件系统帮助医生积累临床经验知识,并通过与其他医生的经验交流、信息共享的过程中提升自己的医疗水平。让医生彻底摆脱重复性的临床工作...

    代码审计之youdiancms最新版getshell漏洞1

    跟进第一个看看:这个函数很简单,就简单的判断session是否存在,我们可以通过上文的验证码函数来设置。然后就是checkPurview函数。 getshell 在后台模板管理中,我们可以修改模板,但是对有检测,我们可以用来绕...

Global site tag (gtag.js) - Google Analytics