C++ 21是下一个标准吗?

Jon*_*Mee 9 c++ standards revisions c++14 c++17

即使C++ 11推出,我也听到了很多关于C++ 17和C++ 14的讨论.

但现在我明白C++ 17有望在2017年秋季推出(没有概念),但我仍然不确定以下标准是什么.

我听说C++ 21开始了.那是准确的吗?

Nat*_*ica 22

我们看到的是ISOCPP

在此输入图像描述

这表明至少现在C++ 20是他们正在使用的名称.

  • 我喜欢1998-2001甚至没有削减.谁还需要那些年. (12认同)
  • 显然他们在那些年里并不觉得需要任何改进. (7认同)
  • @Barry令人惊讶的是,随着行业的所有变化,C++在没有十年更新的情况下仍然具有相关性.我想,对一个非常需要的细分市场说话. (3认同)

dha*_*ann 10

没有人可以肯定地说出确切的发布日期.但鉴于最近的C++发布C++ 11,C++ 14,C++ 17,我们似乎有三年的发布周期.

事实上,Herb Sutter在2016年6月写道:

注意:[...]但是现在我们待了三年,所以C++ 17之后的下一个标准将是C++ 20.

所以很可能是C++ 20.而那些尚未准备好的功能可能会被推迟到以后的C++版本.

如果您对C++开发感兴趣,我建议您定期阅读C++ subreddit.当然,网络中有更多的资源.


Yak*_*ont 7

您会注意到C++ 1z仍在使用中,现在功能已经完成.但它直到2017才发布,不会成为C++ 17 .

在这一点上,我们不应该谈论C++ 20或C++ 21,即使这是目标日期.我们应该谈论C++ 2a或C++ 2x.

目前的计划是3年的发布周期,并且有些抱怨要转向2年的发布周期.但它正式保持3年,因此下一个目标日期是2020年.

但是,我们现在该怎么称呼呢?C++ 2x遇到的问题是,如果在20世纪20年代发布超过3个标准版本,我们就会用尽信件.每次发布3年,即2020年,2023年,2026年,2029年 - 太多了.并且有一些关于尝试2年发布周期的讨论(甚至可能是对于C++ 2x,即2019年推出,这在2011年推出C++ 0x之后会非常有趣).

任何这样的混淆将非常值得打破命名周期的吹牛权利,并可能引入C++2α或C++2Ω,这是另一个优点.

所以你的问题的答案是:下一个标准此时应该被称为C++ 2x,如果历史是任何指南,x可以是介于-1和+3之间的任何值:目标日期是2020,但是大约一半C++标准版本没有在他们计划的那一年发生,所以拿出一些盐.

  • 好的,我当然可以看到这一点.我认为最安全的是将其称为"下一个C++标准":-) PS:C++2α和C++2Ω很不错,但我们应该为C++标准保留这些名称,以提供出色的unicode支持:-) (6认同)
  • 所以你说这个名字应该区分它是否是一个发布的标准.我可以欣赏那里的细微差别,如果有正式名称,我不介意使用它.但是标准委员会的表现相当快,并且输了C++ 17.我很少,如果有的话,看到他们参考C++ 1z. (3认同)
  • 没有人再谈论C++ 1y了; 他们称之为C++ 14.如果他们从一开始就调用它,那么当我们回顾一些较旧的讨论时,我们就不需要问"哪一个是C++ 1y了?" 事实上,委员会中没有人或与他们有关联的人使用"C++ 1z"; 它始终是"C++ 17".整个"1z"事物是由用户创建的构造,以适应早已过时的"C++ 0x"模式.继续这种命名是没有意义的. (2认同)
  • 人们可以(并且委员会经常在邮件中)将下一个标准称为c ++ - next.这将解决不够的字母 - 过去 - z问题.有点像Debian,可以有稳定的,测试的和不稳定的版本.目前这将是-std = c ++ 14,c ++ 1z和c ++ - next.所以c ++ - 接下来是目前提出的CD之外的东西. (2认同)