我注意到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的__cplusplus
是199711L
;有时就是这样,有时会这样,因为在达成共识并冻结了诸如此类的事情之后,出版时间才稍微延后一年。)