你需要了解的 C++ 17 Top 19 新特性(附精彩评论)
什么是 C++17?
C++17(或 C++1z)是继 C++14 之后 C++ 编程语言 ISO/IEC 标准的下一次修订的非正式名称。C++17 现在功能已齐全,正在成为国际标准的路上。它的规范已于 2017 年 3 月达到国际标准草案的阶段。
C++17 标准化图表
| 年份 | C++ 标准 | 正式名称 |
| 1998 | ISO/IEC 14882:1998 | C++98 |
| 2003 | ISO/IEC 14882:2003 | C++03 |
| 2011 | ISO/IEC 14882:2011 | C++11 |
| 2014 | ISO/IEC 14882:2014 | C++14 |
| 2017 | Yet to be determined | C++17 |
| 2020 | Yet to be determined | C++20 |
C++17 的 19 个新特性
使 static_assert 的文本信息可选
删除 trigraphs
在模板参数中允许使用 typename(作为替代类)
来自 braced-init-list 的新规则用于自动推导
嵌套命名空间的定义,例如:使用 namespace X::Y { … } 代替 namespace X { namespace Y { … }}
允许命名空间和枚举器的属性
新的标准属性:[[fallthrough]], [[maybe_unused]] 和 [[nodiscard]]
UTF-8 字符文字
对所有非类型模板参数进行常量评估
Fold 表达式,用于可变的模板
A compile-time static if with the form if constexpr(expression)
结构化的绑定声明,现在允许 auto [a, b] = getTwoReturnValues();
if 和 switch 语句中的初始化器
在某些情况下,确保通过编译器进行 copy elision(Guaranteed copy elision by compilers in some cases)
一些用于对齐内存分配的扩展
构造函数的模板推导,允许使用 std::pair(5.0, false) 代替 std::pair<double,bool>(5.0, false)
内联变量,允许在头文件中定义变量
__has_include,允许由预处理程序指令检查头文件的可用性
__cplusplus 的值更改为 201703L
来自:http://www.masalaanews.com/
http://www.oschina.net/news/85129/top-19-new-features-of-c17-you-need-to-know
你需要了解的 C++ 17 Top 19 新特性(附精彩评论)的更多相关文章
- C++17 新特性之 std::optional(上)
最近在学习 c++ 17 的一些新特性,为了加强记忆和理解,把这些内容作为笔记记录下来,有理解不对的地方请指正,欢迎大家留言交流. 引言 在介绍之前,我们从一个问题出发,C++ 的函数如何返回多个值? ...
- LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Sun Jan 13 17:59:19 CST 2019]; root of context hierarch
在运行项目时出现了:LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via ...
- 滑雪 分类: POJ 2015-07-23 19:48 9人阅读 评论(0) 收藏
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 83276 Accepted: 31159 Description Mich ...
- Java SE 19 新增特性
Java SE 19 新增特性 作者:Grey 原文地址: 博客园:Java SE 19 新增特性 CSDN:Java SE 19 新增特性 源码 源仓库: Github:java_new_featu ...
- Java 19 新功能介绍
点赞再看,动力无限. 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Java 19 在2022 年 9 ...
- C#高级编程9 第17章 使用VS2013-C#特性
C#高级编程9 第17章 使用VS2013 编辑定位到 如果默认勾选了这项,请去掉勾选,因为勾选之后解决方案的目录会根据当前文件选中. 可以设置项目并行生成数 版本控制软件设置 所有文本编辑器行号显示 ...
- Oracle GoldenGate 19.1新特性
1.GoldenGate 19.1 新特性概览a.支持Oracle数据库19.1 长期支持发布版本.集成Oracle GoldenGate 12.3版的最终补丁集更新.b.微服务的安全性和可管理性增强 ...
- JDK 16 正式发布,一次性发布 17 个新特性…不服不行!
上一篇:Java 15 正式发布, 14 个新特性 JDK 16 正式发布 牛逼啊,JDK 15 刚发布半年(2020/09/15),JDK 16 又如期而至(2021/03/16),老铁们,跟上. ...
- c++17 新特性
编译环境说明:gcc 8.1 + eclipse +windows 10 eclipse cpp默认支持c++14,做c++17开发时,需要手动进行配置. 1.关键字 1)constexpr c++1 ...
随机推荐
- 【codeforces 754A】Lesha and array splitting
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- Spring MVC--@RequestMapping
2.1 @RequestMapping @RequestMapping是SpringMVC的核心注解,负责访问的url与调用方法之间的映射; @RequestMapping可以放在类和方法上; @Re ...
- KMP练习——KMP模式匹配 一(串)
Description 求子串的next值,用next数组存放,所有输出 Input 输入一个字符串 Output 输出全部next值 Sample Input abaabcac Sample Out ...
- 概念的理解 —— 奇点(singularity point)、第一性原理(first principle)
奇点(singularity point)一词出现在不同的环境里,对应着不同的含义: wikipedia:Singularity 文艺作品: 未来学(Futurology):比如雷·库兹韦尔的< ...
- Tomcat下ajax请求路径总结
ajax的url有两种,一种是绝对路径,另一种是相对路径. 一.绝对路径:包括协议名称.主机地址.端口.web项目名称等的完整请求路径. 例如: $.ajax({ url:"ht ...
- python2.x脚本转换为python3.x脚本的方法
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/dushu990/article/details/73549174 python2.x脚本转换为pyt ...
- hello.c内核模块编译 -- linux内核
Linux开发模块,在本机上看调试信息的方法走通了.当前版本号2.6.32-32-generic uname –r 能够查询 这里取module_param()作为样例. 该宏被定义在include/ ...
- python request爬取百度贴吧
import requests import os import shutil import time class PostBarSpider(object): def __init__(self, ...
- Unity UGUI——Rect Transform包裹(Anchor Presets)
Anchor Presets使用演示样品物业 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fonts ...
- NYOJ 1076 计划数(公式 要么 递归)
方案数量 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 给出一个N*M的棋盘.左下角坐标是(0.0).右上角坐标是(N,M),规定每次仅仅能向上或者向右走.问从左下 ...