什么是“托尼表”?

xml*_*lmx 10 c++

下面这句话摘自GitHub页面

前/后表(“托尼表”)中描述的 C++20 功能

  1. C++ 文化中的Tony 表是什么?

  2. 为什么它们被用来表示前/后表

ton*_*ony 12

托尼表在某种程度上是“刚好”在表之前/之后。展示没有特定功能或特性的代码会是什么样子,并展示具有该特性的代码会是什么样子。

他们最初在这个 C++ 提案中使用:http : //www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf(见附录)以更清楚地说明论文的变化正在提议。(在清晰度方面将提案的 R2 版本与 R3 版本进行比较。)

经过一点点刺激和耐心,委员会发现使用表格可以提高对提案的理解并加快委员会的进程

表的目的是经过短短之前显示/。真正的“托尼表”还应该:

  • 显示动机:示例代码不应该只显示语法,还应该显示动机代码,真实的代码,清楚地表明该功能值得做
  • 显示所有重要的语法:该表应该有足够的示例来涵盖该功能的大致所有语法(并非全部 - 它可以跳过任何明显的东西,例如复制构造函数-如果在这种情况下很明显- 但应该涵盖任何值得一看的东西)
  • 对齐行:任何前后相同的行都应该对齐- 根据需要添加空行。它应该看起来有点像差异。

与传统委员会文件中的众多部分相比,真正的目标是成为“一站式商店”(参见http://open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3370.html #Organization传统论文的组织方式)。

过去,动机部分太罗嗦,技术规格部分太密集。我们仍然需要这些部分,但是大部分论文应该可以从表格中找到(这就是表格从附录移到大多数论文前面的原因)。

几乎每篇委员会论文的目标都是改变 C++ 代码的编写方式,因此展示实际代码将如何改变可以使过程更加清晰。

在委员会之外,这些表格已被用来描述新功能(参见https://github.com/tvananeerd/cpp17_in_TTs for C++17 over C++14,并为https://github.com/制作 PRs tvaneerd/cpp20_in_TTs因为 C++20 是巨大的!)。

没有真正的理由称它们为“托尼桌”(我认为大卫桑克尔是第一个这样称呼它们的人)。它们是表之前/之后。除了“之前/之后”的狭义定义之外,术语“托尼表”所具有的唯一“附加值”是捕获表预期内容的完整概念。

PS for C++23 它们开始被 Pony Stables 取代。https://isocpp.org/files/papers/D2349R0.html

  • 难道你不喜欢由(那个?)托尼写的关于托尼表的答案吗!:) (4认同)