即使在 C++11 推出时,我也听到了很多关于 C++17 和 C++14 的嗡嗡声。
但现在我知道 C++17 有望在 2017 年秋季交付(不包括概念),但我仍然不确定以下标准是什么。
我听说过 C++21 流行起来。那准确吗?
没有人可以确切地说出确切的发布日期。但考虑到最近的 C++ 版本 C++11、C++14、C++17,我们似乎有一个三年的发布周期。
事实上,Herb Sutter 在 2016 年 6 月写道:
注意:[...] 但现在我们将停留三年,因此 C++17 之后的下一个标准将是 C++20。
所以它很可能是 C++20。到那时还没有准备好的所有功能,可能会推迟到以后的 C++ 版本。
如果您对 C++ 开发感兴趣,我建议您定期阅读C++ subreddit。当然,网络中还有更多资源。
您会注意到 C++1z 仍在使用中,并且现在功能已完成。但它直到 2017 年发布才成为 C++17 。
在这一点上,我们不应该谈论 C++20 或 C++21,即使那是目标日期。我们应该谈论 C++2a 或 C++2x。
目前的计划是 3 年的发布周期,有些人抱怨要改为 2 年的发布周期。但它官方仍然是 3 年,所以下一个目标日期是 2020 年。
但是,我们现在应该怎么称呼它呢?C++2x 遇到的问题是,如果 2020 年代有超过 3 个标准版本,我们的字母就会用完。每次发布 3 年,这将是 2020 年、2023 年、2026 年、2029 年——太多了。并且有一些关于尝试 2 年发布周期的讨论(甚至对于 2019 年发布的 C++2x,这在 2011 年发布 C++0x 之后会很有趣)。
任何这样的混淆都值得吹嘘打破命名循环,并可能引入 C++2α 或 C++2Ω,这是另一个优点。
因此,您的问题的答案是:此时下一个标准应该称为 C++2x,如果历史可以作为参考,x 可能是 -1 和 +3 之间的任何值:目标日期是 2020 年,但大约是所有标准的一半C++ 标准版本并没有在计划的那一年发布,因此请谨慎对待。