【问题标题】:Are fold expressions a C++14 or a C++1z feature?折叠表达式是 C++14 还是 C++1z 功能?
【发布时间】:2016-04-02 18:09:51
【问题描述】:

https://isocpp.org/std/the-standard 声明工作草案N4296

包含 C++14 标准和少量编辑更改。

我注意到 N4296 §5.1.3 包含“折叠表达式”规范。我认为这是一个没有达到官方 C++14 标准的功能。

折叠表达式是 C++14 的一部分,还是 N4296 中的这种添加是那些次要编辑性更改之一?

【问题讨论】:

  • c++17,但您会发现在 clang 中使用 -std=c++1z 支持它们,并使用 -std=c++14 发出警告
  • 5.1.3 不在 C++14 中。我记得 N3936 草案成为了 C++14 标准。
  • 折叠表达式的添加似乎不仅仅是编辑上的更改(尤其是“次要”更改)。

标签: c++ language-lawyer c++14 c++17 fold-expression


【解决方案1】:
  • N3937 是 C++14 DIS(国际标准草案)。 N3936(不再公开,但可以从 github repo 中挖出)是 N3937 的不同封面。

  • N4141 是 C++14 IS;这是 DIS 加上一些编辑更改。它不公开。

  • N4140 是 Pre-Urbana 工作草案;它是 N4141 加上更多的编辑更改。

  • N4296 是后厄巴纳工作草案。它包括在委员会厄巴纳会议上投票通过的 C++17 功能。

折叠表达式是 C++17 的一项功能。

【讨论】:

  • 为什么 N4141 不公开?
  • 数字令人困惑。 N4140 是 N4141 加上更多的编辑更改(4140
  • @jotik N3936 == N3937(忽略封面)。 N4140 = N3936 + 许多编辑更改。 N4141 = N3937 + 这些编辑更改的一小部分。
  • 折叠表达式似乎源自N4191(日期为 2014-10-07),因此它显然没有成为 2014 年 8 月结束投票期的标准。
  • @Destructor 因为他们不希望免费获得国际标准的确切文本。在实践中,没关系,我不认为;只需使用早于 IS 的任何草案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-25
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多