libstdc++ 是否符合 MISRA C++?

Does libstdc++ comply with MISRA C++?

这是出于我之前提出的一个问题(关于同一主题):

现在我有一个更重要的问题:libstdc++(gcc 标准库的实现)MISRA C++:2008 兼容吗?我认为答案是 ... 只要您使用 gcc-std=c++03 标志编译代码。

如果我使用 2011 年的标准(即 -std=c++11)编译代码会怎样? MISRA C++:2008 兼容吗?我是否必须证明 libstdc++ 符合 MISRA 标准?我可以为几个规则编写偏差(例如,我想使用 std::array 而不是 C 样式数组),但是为整个 MISRA 标准编写它们看起来像一个 terryfying 任务。

如果您对此主题有任何见解,我将不胜感激。

不,它不符合 MISRA-C++ 标准。 glibc 也不是。但是标准也没有要求库必须用某种语言编写。标准库本身的标准合规性是一个相当模糊的话题,有或没有 MISRA。

我非常怀疑 MISRA-C++ 是这些库的优先选择。库(和 gcc)维护者主要来自 Linux/Desktop ("hosted system") 方面,不需要 MISRA 合规性。

如果您需要符合 MISRA 标准的标准库,则必须查看各种商业嵌入式系统编译器。

What happens if I compile the code with the standard from 2011? Is that MISRA C++:2008 compliant?

不,它不合规。 MISRA-C++ 明确要求您使用 C++03,因此很难证明此处存在偏差。

Do I have to prove that the libstdc++ is MISRA compliant?

无法证明,因为它不是。