C++11之decltype
使用场景
在C++中经常要用到很长的变量名,如果已经有变量和你将使用的变量是一个类型,即可使用decltype关键字
来申明一样的类型变量。
decltype原理
返回现有变量类型,decltype是一个关键字,而不是一个函数,这有啥区别呢?decltype在编译阶段返回变量类
型,而不是在运行阶段传递不同变量返回不同值。
decltype使用范例
1、复杂已知变量类型
map<string, vector<string>> str_map;
decltype(str_map) str_map_new;
2、表达式返回值类型
int a, b;
decltype(a + b) a;
3、函数返回值
int foo(int i) {return i;
}
double foo(double d) {return d;
}template<typename T>
auto getNum(T t)->decltype(foo(t)) {return foo(t);
}
注意
1、decltype两个括号返回变量引用类型
int i;
decltype((i)) r = i;
decltype(i) a;
2、auto和decltype配合使用可以实现不同返回类型
C++11之decltype相关推荐
- C++11之decltype类型推导(使用场景、推导四规则、cv限定符)
系列文章 C++11之正则表达式(regex_match.regex_search.regex_replace) C++11之线程库(Thread.Mutex.atomic.lock_guard.同步 ...
- c++11:decltype
1.首先针对decltype有两种表达方法,分别是不带括号的和带括号的. 2.其次,对于这两种表达方式的区别体现在变量上: 只要是带了括号就取被推断变量的引用,不带括号就直接取被推断变量定义时的类型 ...
- C++11新增的关键字decltype(auto)
一.函数模板存在的类型问题 template<class T1,class T2> void fun(T1 a, T2 b) {(T1 or T2?)y = a + b; } 语句y = ...
- c++11中的declval和decltype
一.declval的介绍 std::declval定义在头文件中: template<class T> typename std::add_rvalue_reference<T> ...
- C++11 decltype类型推导详解
decltype decltype 是 C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导. decltype 是"declare type" ...
- C++11新特性之decltype类型推导
目录 一.decltype关键字 二.decltype的推导规则 1.表达式为单独变量 2.表达式为函数调用 3.表达式为左值,或者被()包围 三. decltype的应用 在前面一章,小编已经对 ...
- decltype 和 auto
返回类型推导 decltype decltype 推导规则 编译器将根据以下三条规则得出结果: 如果 exp 是一个不被括号( )包围的表达式,或者是一个类成员访问表达式,或者是一个单独的变量,那么 ...
- c++ enum 给定类型_C++11作用域内枚举enum
在C++11之前的枚举(enum),是没有办法两个枚举(enum)内有相同枚举名的.如果还不知道C++中枚举(enum)是什么,可以看这篇:枚举enum 如:苹果和桔子都有大,中,小.写个代码来说明下 ...
- C++11、C++14、C++17、C++20新特性总结(5万字详解)
文章目录 C++ 11是什么,C++ 11标准的由来 C++ auto类型推导完全攻略 auto 类型推导的语法和规则 auto 的高级用法 auto 的限制 auto 的应用 使用 auto 定义迭 ...
最新文章
- dotnet core高吞吐Http api服务组件FastHttpApi
- python语言及其应用下载_Python语言及其应用 中文pdf完整版[13MB]
- 车载wince系统刷界面ui_2020年值得关注的10个UI设计趋势!
- leetcode —— 面试题 17.08. 马戏团人塔
- POJ1703-Find them, Catch them
- mysql主主同步机制+keepalived实现MySQL高可用
- python控制键盘游戏内无效_关于python的游戏《兔子和獾》代码写到用键盘输入WASD控制兔子移动时,兔子移动不了。但是。。。...
- 通信协议(二)——SPI协议
- c语言中的三角函数公式,tan三角函数公式有哪些
- 搞清楚p问题、NP问题、NP完全问题和NP难问题
- 为什么visio输出图片俩边有留白_Microsoft Office Visio导出图片添加边界的操作教程...
- Maven第7篇:聚合、继承、单继承问题详解
- java 爬虫抢票_抢票爬虫 - nkandkn - 博客园
- Ajax+WCF+MySQL实现数据库部署并调用
- 2020秋季校园招聘深信服、噢易云、绿盟面筋
- CSS样式、字体样式、基本选择器的基础笔记
- nodeJS与npx之间的三两事
- 北京大学,南下布局!
- 已解决(Python爬虫requests库报错 请求异常SSL错误,证书认证失败问题)requests.exceptions.SSLError: HTTPSConnectionPool
- 【C语言】指针终结者-初阶
热门文章
- response setHeader 设置下载中文文件名乱码问题
- java七夕实现爱心
- input框输入身份证时实现动态脱敏
- 《“理想我”与“现实我”》
- 【Android】Android Window
- 使用Xshell连接到AWS云主机
- python关键词对联_使用百度 AI 进行智能写诗 智能春联
- PCB过孔的孔径大小对通流的影响
- 干货分享:小程序项目实践和经验总结
- 考计算机854的学校,2020年哈尔滨工业大学854计算机基础硕士研究生入学考试科目大纲...