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

Is C++21 the Next Standard?

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

但现在我了解到 C++17 有望在 2017 年秋季交付(没有概念),但我仍然不确定以下标准是什么。

我听说过 C++21。准确吗?

看起来ISOCPP我们看到

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

没有人能说出确切的发布日期。但是鉴于最近的 C++ 版本 C++11、C++14、C++17,我们似乎有一个三年的发布周期。

事实上,Herb Sutter wrote in June 2016:

Note: [...] but for now we’re staying with three years, so the next standard after C++17 will be C++20.

所以很可能是 C++20。届时所有尚未准备好的功能,可能会推迟到以后的 C++ 版本。

如果您对 C++ 开发感兴趣,我当然建议您定期阅读网络中的 C++ subreddit. There are many more resources

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

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

目前的计划是 3 年的发布周期,有些人抱怨要改为 2 年的发布周期。但官方仍然是3年,所以下一个目标日期是2020年。

但是,现在我们应该怎么称呼它呢? C++2x 运行 遇到的问题是,如果 2020 年代有超过 3 个标准发布,我们 运行 就没有字母了。每次发布 3 年,即 2020 年、2023 年、2026 年、2029 年——太多了。并且有人谈论尝试 2 年的发布周期(甚至可能是 C++2x,在 2019 年推出,这在 2011 年 C++0x 推出之后会很有趣)。

任何此类混淆都值得吹嘘打破命名循环,并可能引入 C++2α 或 C++2Ω,这是另一个优点。

所以你的问题的答案是:下一个标准此时应该称为 C++2x,如果历史有任何指导,x 可以是 -1 和 +3 之间的任何值:目标日期是 2020 年,但是大约一半的 C++ 标准发布并没有在他们计划的那一年发布,所以对此持保留态度。