【问题标题】:Where is the proposal on "structural binding"?“结构绑定”的提案在哪里?
【发布时间】:2015-12-05 22:04:55
【问题描述】:

在下面C++ Going native video,
提到了一种称为“结构绑定”的语言功能。

我曾经referred 将这个概念称为“解构”(来自 javascript 背景)。

该功能将允许用户捕获多个返回值,而无需使用std::tie,或指定类型。

例子:

std::map<std::string,int> table;
auto { cursor, inserted } = table.insert({"hello",0});  

我在哪里可以找到此提案并跟踪其进度?

【问题讨论】:

  • P0144R0。也是一个竞争提案 - P0151R0。而且我很确定这是题外话......
  • 我在搜索“结构”。谢谢。 @T.C.那么我相信 SO 会很快关闭它。
  • 我认为这与主题无关,我认为重新措辞将更多地关注此提案的状态,而不是改进问题的地方。
  • 仅供参考:你可以看看collection of all C++ papers.

标签: c++ tuples standards language-lawyer c++17


【解决方案1】:

您所指的提案是P0144R0: Structured Bindings post-Kona mailing 将本文列为 Evolution 工作组。当前的Evolution Working Group(EWG) active issue list 没有涵盖它,Nicol Bolos 指出 EWG 活动问题列表尚未针对 Kona 更新。一旦它显示在 EWG 活动列表中,您就可以通过跟踪问题来跟踪提案。

有一些非常好的旅行报告,特别是Botond Ballo's trip report鼓励进一步工作的建议部分下涵盖了这个建议,它说:

解构初始化的提议,允许编写 自动 {x, y, z} = expr;其中 expr 的类型是一个类似元组的对象, 其元素将绑定到变量 x、y 和 z(这 构造声明)。 “类似元组的对象”包括 std::tuple, std::pair、std::array 和聚合结构。该提案缺少一个 适应非聚合用户定义类型的机制 “类似元组”并使用此语法; EWG 的反馈是,这样一个 机制很重要。此外,EWG 建议将该提案 扩展为允许(可选)指定 x、y 和 z 的类型, 而不是推断它们的类型。

我们可以通过转到WG21 sitepapers section 找到 WG21 会议邮件。

作为 T.C.注意到还有一个竞争提案P0151R0: Proposal of Multi-Declarators 说:

我们为“结构化绑定”提出了一种更好的方法,如 P0144R0 其中“更好”被定义为更简洁、更正交、更 一般,更具表现力,更少(解析)模棱两可。

【讨论】:

  • 我正要更正正交中的错字,但后来看到原来的提案也有同样的错字。现在我被撕裂了:P
  • “更正交 [原文如此],更一般,”原文如此
猜你喜欢
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
  • 2017-01-04
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多