gpt4 book ai didi

c++ - 标准库是否需要符合标准?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:01 26 4
gpt4 key购买 nike

是否要求标准库符合标准?我觉得标准库不符合标准。这种感觉的基础是编译器生成的错误消息。例如,有时 GCC 会给出以前缀 __gxx 开头的错误消息以及许多我现在不记得的其他错误消息。但是看到它们让我觉得这些是非常编译器特定的消息,不同的编译器将无法编译 GCC 提供的标准库,反之亦然。是真的吗?

这个问题可以换句话说:

  • 一个编译器提供的标准库可以用其他编译器编译吗?
  • 当我们说一个特定的编译器符合标准时,它是否自动意味着它附带的标准库也符合标准?或者它只是意味着这个编译器可以编译我们程序员编写的符合标准的代码
  • 我可以在我的项目中使用一个编译器提供的标准库,而我的项目使用不同编译器来编译项目吗?可移植性是否与标准一致性相同?

这些问题是看待同一个问题的不同角度。所以,请帮助我理解当我们说编译器 X 符合标准时它到底是什么意思。

最佳答案

标准库是实现的细节。在标准不要求它包含"file"[标题]的意义上,它甚至可能不会被“编译”:

174) A header is not necessarily a source file, nor are the sequences delimited by < and > in header names necessarily valid source file names (16.2).

该标准谨慎地简化了对实现的要求,因此该库可以“内置”到编译器(也称为内在函数)。例如,扩展 std 命名空间,或 #defining 标准库中使用的名称会导致未定义的行为。

关于c++ - 标准库是否需要符合标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6469954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com