C++ C与C的关系&x2B+;标准库
这个问题与编程或特定的语言概念没有直接关系。我的问题是,我们能否使用对C++ C与C的关系&x2B+;标准库,c++,c,language-lawyer,C++,C,Language Lawyer,这个问题与编程或特定的语言概念没有直接关系。我的问题是,我们能否使用对C国际标准(例如C11)的引用来提供规范性引用,以描述C++中C库中的任何概念 更具体地说,在N3797::18.3.3[c.limits]中定义的头中描述了c库头。但是C标准提供了有关内容的更全面信息,而不是N3797工作草案 代码> C11/COD>中定义的 C库的所有内容对于 C++ 11 C库中定义的 C++ +代码>实现,或者不能依赖于 C++ 标准提供的内容。C11,在C++11之前,引用的C标准是C90。这在
C
国际标准(例如C11
)的引用来提供规范性引用,以描述C++
中C
库中的任何概念
更具体地说,在N3797::18.3.3[c.limits]
中定义的头
中描述了c库
头。但是C
标准提供了有关
内容的更全面信息,而不是N3797
工作草案
<>代码> C11/COD>中定义的<代码> C库<代码>的所有内容对于1.2节
规范性参考文件中有说明:
以下参考文件对于本文件是必不可少的
本文件的应用。凡是注日期的引用文件,仅适用于
引用适用。凡是不注日期的参考文件,其最新版本为
参考文件(包括任何修订)适用
包括:
- ISO/IEC 9899:1999,编程语言-C
- ISO/IEC 9899:1999/Cor.1:2001(E),编程语言-C,技术勘误1
- ISO/IEC 9899:1999/Cor.2:2004(E),编程语言-C,技术勘误2
- ISO/IEC 9899:1999/Cor.3:2007(E),编程语言-C,技术勘误3
C++标准使用C标准库引用C99和TCS,并在C++与C.</P>时明确表示。 C标准库的第17.2节说:
17.6.1.2
头文件中,其中包括:
除第18条至第30条和附件D中另有说明外,以下内容:
每个标题cname应与相应标题cname相同
标题名.h,如C标准库(1.2)或C
Unicode TR,视情况而定,好像通过包含。在C++标准中
但是,库中的声明(已定义的名称除外
因为C)中的宏在名称空间的名称空间范围(3.3.6)内
std。未指定这些名称是否首先在
然后通过std将全局命名空间作用域和注入命名空间
显式使用声明(7.3.3)
climits
的内容,因为它们与限制有关。h
包含在第18.3.3节中,并说明:
内容与标准C库标题相同。
[注意:中宏定义的常量类型为
不需要匹配宏引用的类型。-结束注释]
注意,正如我在上面的评论中提到的,规范引用不是整体的,C++标准必须明确引用标准引用,以应用到C++标准。有关更多详细信息,请参见。
关于@ShafikYaghmour,据我从asnwer了解,我们只能使用C标准的引用部分作为规范性参考。对吗?据我所知,C++标准必须明确地引用一个规范性的引用,否则我们不能引用一部分规范性引用。我把以上的注释转移到我的答案中,所以我们现在可以删除这些评论。@ SaffiKygMigMug特别是在<代码> <代码>标题的情况下,我们可以依赖C标准所说的,是吗?@DmitryFucintv我想这就是[c.limits]/2想要告诉我们的:“内容与标准c库标题
”相同——据我所知,“内容”还包括常量等的规范。