我注意到C ++ 17中的许多新功能来自C17。两种标准之间有关系吗? C函数和它们的C ++等效项之间是否有实际区别?

最佳答案

C ++ 17是基于C17的吗?


没有。

The normative reference for C++ as of the current working draft is C11

如果现在是C11,那么它最晚是C ++ 17的C11。 😃

Here's a related proposal(尽管我不确定采用的正是该提议)。




  我注意到C ++ 17中的许多新功能来自C17。


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


  两种标准之间有关系吗?


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


  C函数和它们的C ++等效项之间是否有实际区别?


没有具体的例子,我不能说,但是同样,您应该将它们视为独立的事物。

就其“继承”的库和语言功能而言,C ++仅“基于”C。但是,请注意,这不是将C11批量导入C ++ 17; that's not how it works



顺便说一句,尽管术语“ C17”是它的一个公认的(并且是广泛使用的)名称,并且尽管它的__STDC_VERSION__宏是201710L,但它实际上是“ C18”(从技术上来说是ISO/IEC 9899:2018)。

(参见C ++ 98的__cplusplus199711L;有时就是这样,有时会这样,因为在达成共识并冻结了诸如此类的事情之后,出版时间才稍微延后一年。)

09-08 05:45