0

我注意到 C++17 中的许多新特性都来自 C17。这两个标准之间有什么关系吗?C 函数和它们的 C++ 等效函数之间有什么实际区别吗?

4

3 回答 3

9

C++17 是基于 C17 的吗?

不。

截至目前的工作草案,C++ 的规范参考是 C11

如果现在是 C11,那么对于 C++17 ,它最迟是 C11。

这是一个相关的提案(尽管我不确定是否正是这个提案被采纳了)。


我注意到 C++17 中的许多新特性都来自 C17。

我没有。我没有比较两者。如果两者都添加了类似的功能,那很可能是巧合。但是,由于 C17 实际上只是对 C11 的“错误修复”更新,因此似乎不太可能。

这两个标准之间有什么关系吗?

不是真的,不。当然,这两个工作组会相互交谈,但两种语言是独立的。

C 函数和它们的 C++ 等效函数之间有什么实际区别吗?

没有具体的例子我不能说,但你应该再次认为这些是分开和独立的事情。

C++ 仅就其“继承”的库和语言特性而言“基于”C。但是,请注意,这并不是将 C11 批量导入 C++17;这不是它的工作原理


顺便说一句,虽然“C17”这个术语是它的一个公认(和广泛)名称,虽然它的__STDC_VERSION__宏是201710L,但它实际上是“C18”(技术上是ISO/IEC 9899:2018)。

(比较 C++98 的__cplusplus情况199711L;有时时间就是这样安排的,在这样的事情已经同意并冻结之后,出版时间会稍微延长到下一年。)

于 2019-05-17T12:37:00.650 回答
5

从 C++17 开始,C++ 标准指的是 C11 (该提案在 2016 年被采纳以验证 C++17 的一部分),而不是 C17。但我不会称它为“基于”。

此外,C++ 和 C 标准由不同的工作组制定,这些工作组并不真正相交,因此它们之间没有直接关系(尽管有一些努力使 C 和 C++ 功能保持同步,但这样做很容易/有意义)。

于 2019-05-17T12:35:44.547 回答
0

绝对不是 C 和 C++ 是不同的语言,它们具有完全不同的涉及树。顺便说一句,只要我知道它是 c11

于 2019-10-19T09:50:26.317 回答