这是由我之前提出的问题(在同一主题上)推动的:
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标准编写它们看起来就像是一个糟糕的任务。
我很感激对此话题的任何见解。
答案 0 :(得分:3)
不,它不符合MISRA-C ++。不是glibc。但是,标准中没有要求库必须用某种语言编写。无论是否有MISRA,标准库本身的标准合规性都是一个相当混乱的主题。
我非常怀疑MISRA-C ++是这些库的优先考虑事项。库(和gcc)维护者大多来自Linux / Desktop(“托管系统”)方面,不需要MISRA合规性。
如果您需要符合MISRA标准的库,则必须查看各种商用嵌入式系统编译器。
如果我使用2011年的标准编译代码会怎样? MISRA C ++:2008是否合规?
不,它不合规。 MISRA-C ++明确要求您使用C ++ 03,因此很难证明偏差是正确的。
我是否必须证明libstdc ++符合MISRA标准?
没有办法证明它,因为它不是。