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

时间:2018-04-24 15:53:45

标签: c++ standards libstdc++ standards-compliance misra

这是由我之前提出的问题(在同一主题上)推动的:

Do BLAS and LAPACK libraries comply with MISRA standard?

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

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

我很感激对此话题的任何见解。

1 个答案:

答案 0 :(得分:3)

不,它不符合MISRA-C ++。不是glibc。但是,标准中没有要求库必须用某种语言编写。无论是否有MISRA,标准库本身的标准合规性都是一个相当混乱的主题。

我非常怀疑MISRA-C ++是这些库的优先考虑事项。库(和gcc)维护者大多来自Linux / Desktop(“托管系统”)方面,不需要MISRA合规性。

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

  

如果我使用2011年的标准编译代码会怎样? MISRA C ++:2008是否合规?

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

  

我是否必须证明libstdc ++符合MISRA标准?

没有办法证明它,因为它不是。