c语言最新标准17,C ++ 17中有哪些新功能?

语言特色:

模板和通用代码

LAMBDA如果Lambdas符合条件,他们就会隐瞒constexpr[*this]{ std::cout << could << " be " << useful << '\n'; }

属性

语法清理

更清洁的多回程和流量控制const auto [it, inserted] = map.insert( {"foo", bar} );

创建变量it并inserted从与推导的类型pair是map::insert返回。基本上,一流std::tie的auto

例:

适用于元组/对喜欢std::array和相对扁平的结构

实际上在标准中命名为结构化绑定if (const auto [it, inserted] = map.insert( {"foo", bar} ); inserted)

延伸if(decl)到decl不可转换为bool的案例。似乎主要支持哨兵,或者结束与开始迭代器类型不同的迭代器,这有助于使用以null结尾的循环等。许多要求的功能,以简化几乎通用的代码。

杂项最后!

并非在所有情况下,但区分语法,你从“真正的省略”,“只是创造一些被称为elision的东西”。不包括函数参数,但现在禁止函数参数评估交错

使一堆破碎的代码主要工作,并使.then未来的工作。

前向进度保证(FPG)(也称为并行算法的 FPG )我认为这是说“实施可能不会永远拖延线程”?测试头文件是否包含错误

使得从实验迁移到std几乎是无缝的

继承的构造函数修复了一些极端情况(有关行为更改的示例,请参阅P0136R0)

图书馆补充:

数据类型我最后检查几乎总是非空的?

标记的联合类型

{真棒|有用}也许是其中之一

非常有用保留任何东西(可复制)std::string 比如引用字符数组或子字符串

再也不要了string const&。也可以使解析速度提高5倍。

std::byte 他们可以咀嚼更多。既不是整数也不是字符,只是数据

调用东西使用一种语法调用任何可调用的(函数指针,函数,成员指针)。从标准的INVOKE概念。采用类似函数和元组,并将元组解包到调用中。

is_invocable,is_invocable_r,invoke_result弃用 result_of

is_invocable是“你可以打电话Foo给Args...并获得兼容的东西R”,R=void默认情况下。

invoke_result是std::result_of_t,但显然不太混乱?for_each_n

reduce

transform_reduce

exclusive_scan

inclusive_scan

transform_exclusive_scan

transform_inclusive_scan

添加用于线程目的,即使您没有使用它们也会暴露

穿线

(部分)图书馆基础知识TS v1未在上文或下文中介绍

集装箱改进

智能指针变化

其他std数据类型改进:

杂项

性状

弃用

自C ++ 14以来,Isocpp.org有一个独立的变化列表; 它已被部分掠夺。

自然地,TS工作并行继续,因此有一些TS不够成熟,必须等待下一次迭代。下一次迭代的目标是先前计划的C ++ 20,而不是C ++ 19,正如一些谣言所暗示的那样。已避免使用C ++ 1O。

从reddit帖子和这个reddit帖子中获取的初始列表,通过谷歌搜索或从上面的isocpp.org页面添加链接。

从SD-6功能测试列表中掠夺的其他条目。

clang的功能列表和库功能列表接下来将被掠夺。这似乎不可靠,因为它是C ++ 1z,而不是C ++ 17。

这些幻灯片在其他地方缺少一些功能

虽然没有问“删除了什么”,但这里有一些简短的列表,列出了C ++ 17中从C ++中删除的一些东西((大多数是?)以前弃用的东西):

删除:

有重写。我不确定这些是否对代码有任何影响,或者它们是否只是标准中的清理:

尚未整合到上面的论文:P0512R0(模板参数扣除调整)

P0490R0(结构化绑定调整)

P0513R0(更改为std::hash)

P0509R1(更新异常处理限制)

P0012R1(使异常规范成为类型系统的一部分)

P0504R0(可选/变体/任意标签)

P0497R0(共享ptr调整)

P0508R0(结构化绑定节点句柄)

P0521R0(共享指针使用计数和唯一更改?)

规格变化:

进一步参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值