最近,iso c++ 委员会正式发布了 c++ 17 标准,正式名称为 iso/iec 14882:2017。
基于 c++ 11,c++ 17 旨在使 c++ 成为一个不那么臃肿复杂的编程语言,以简化该语言的日常使用,使开发者可以更简单地编写和维护代码。
c++ 17 是对 c++ 语言的重大更新,引入了许多新的语言特性:
utf-8 字符文字
折叠表达式 (fold expressions):用于可变的模板
内联变量 (inline variables):允许在头文件中定义变量
在 if 和 switch 语句内可以初始化变量
结构化绑定 (structured binding):for (auto [key,value] : my_map) {…}
类模板参数规约 (class template argument deduction):用pair p{1, 2.0};替代pair{1, 2.0};
此外,c++ 17 还带来了并行 stl,派生自 boost 的文件系统库等其他特性。作为标准库中新的关键“词汇类型”,std::string_view和std::optional将会以函数参数和返回类型的形式广泛使用。这允许开发者编写更简单的签名,例如:在字符串类型上可以用std::string_view替代模板化 (templatizing);开发者可在函数体内更多地用std::variant和std::any类型作为类成员,并内部使用。
我们也曾报道过 c++ 17 的一些新特性,具体内容可点此查看。
llvm 的 clang 编译器也已经将代码中出现“c++1z”的地方修改为“c++17”(c++ 17 曾被称为 c++1z)。gcc 和 llvm/clang 都有效地提供了完整的 c++ 17 支持。
对于正在进行中的 c++ 20,预计在两年内( 2019 年夏天)完成所有功能。
台积电对公司的市场、技术和未来发展
华为已开始为P20用户发送新的软件更新
8位crc校验分析及程序
工业机器人可能涉及在特定空间内精准协调多个轴的移动
受限空间安全预警模块,为企业生产安全保驾护航!
C语言的重大更新 C++17标准发布
关于2018物联网产业的分布展望
简述汽车电子防盗技术发展的新趋势
什么是变量?PLC变量哪些部分组成?
《虚拟现实与智能硬件》获得文献数据库收录
尼吉康最新小型锂离子二次电池 针对IoT和可穿戴设备应用
车载雷达,谁才是当之无愧的“汽车之眼”
如何提高电源适配器的效率因数?
“ADI助力半导体测试设备成长”在线研讨会即将开始
开展综合能源业务的优势和制约因素是什么
QQ音乐不止于听歌,带来了更多探索的可能性
带你了解新产业:房地产区块链
针对声学Box防水方案做设计分享与探讨
FPGA从Xilinx 的7系列学起(1)
物联网产品设计怎样避免出现失败