C ++标准库标头可以包含C标准标头吗?

xskxzr

我只能在标准草案N4582中发现

[res.on.headers / 1] C ++标头可能包含其他C ++标头。

似乎没有指定C ++标头是否可以包含C标准标头。

如果允许,即使不包含此标头,使用在C标准标头中定义的全局名称是否不安全(因为程序可能会通过某些C ++标准标头隐式包含标头)?

Angew不再为SO感到骄傲

对于这个问题,您可以跟进(名称冲突),是的,当然可以。原因是C ++标准库包括<c:::>用于C标准库内容C ++头,并且该标准明确允许它们在全局名称空间中提供名称(除了必须在中提供它们::std)。

此外,基于C ++标准的附件D [depr],C标准库标头(<:::.h>版本)也是C ++标准库的一部分(尽管已弃用)。这意味着[res.on.headers] / 1允许C ++标头包含它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章