C++ 函数模板返回值指定
来源:互联网 发布:怎样安装办公软件 编辑:程序博客网 时间:2024/06/01 14:09
C++函数模板不能偏特化,可以全特化。另外,返回值也是可以用static_cast指定的。
举例如下:
template<typename T1, typename T2, typename T3>T1 add(T2 a, T3 b){ return static_cast<int>(a + b);}
指定T1为int,代码如下:
int result = add<int>(0.4, 0.9);
指定T1, T2参数为int和float,代码如下:
int result = add<int, float>(0.4, 0.9);
一个完整的利用函数模板指定函数返回值的例子如下:
#include <iostream>enum class AAA : int { TYPE1 = 33, TYPE2 = 52, TYPE3 = 92, TYPE4 = 102, TYPE5 = 22, TYPE6 = 8, TYPE7 = 12,};enum class BBB : int { TPYE1 = AAA::TYPE1, TYPE3 = AAA::TYPE3, TYPE5 = AAA::TYPE5,};enum class CCC : int { TPYE2 = AAA::TYPE2, TYPE3 = AAA::TYPE3, TYPE5 = AAA::TYPE5,};AAA uec2AAA (int uec) { AAA rc; switch (uec) { case 1: rc = AAA::TYPE1; break; case 2: rc = AAA::TYPE2; break; case 3: rc = AAA::TYPE3; break; case 4: rc = AAA::TYPE4; break; case 5: rc = AAA::TYPE5; break; case 6: rc = AAA::TYPE6; break; default: break; } return rc; }template<typename T1>T1 uec2Rc(int a){ return static_cast<T1>(uec2AAA(a));}int main(void){ BBB result = uec2Rc<BBB>(3); printf("result = %d\n", static_cast<int>(result)); CCC result2 = uec2Rc<CCC>(2); printf("result = %d\n", static_cast<int>(result2)); return 0;}
还有一些下次再写。
阅读全文
0 0
- C++ 函数模板返回值指定
- Powershell指定函数的返回值
- C++ - 函数模板(function template)返回值
- C函数的返回值
- c 函数的返回值
- c程序函数返回值
- 【c/c++】函数模板和模板函数
- 模板参数仅作为函数的返回值
- c语言函数返回值问题
- C语言函数返回值的获取
- C语言函数说明与返回值
- C中fread()函数的返回值
- C语言main函数返回值
- C语言main函数返回值问题
- C&C++ 函数的值返回
- c语言main()函数返回值问题
- C语言之函数与返回值
- 【C++】指针作为函数的返回值
- 神经网络(1)---传统神经网络准备
- Myeclipse将Jsp默认编码格式设置为utf-8
- centos 安装python3.6
- Hibernate 原生sql 划重点
- Redis-数据结构(字符串列表list)
- C++ 函数模板返回值指定
- patd乙级真题 1065. 单身狗(25)
- 搭建django开发环境
- HTTP协议详解
- ACM9817
- epoll/select/poll
- Claymore’s Dual Ethereum AMD+NVIDIA GPU Miner v10.2 以太坊 挖矿软件
- cnn中fcl
- STL的set iterator