Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ libstdc++;遵守MISRA C++;?_C++_Standards_Libstdc++_Standards Compliance_Misra - Fatal编程技术网

C++ libstdc++;遵守MISRA C++;?

C++ libstdc++;遵守MISRA C++;?,c++,standards,libstdc++,standards-compliance,misra,C++,Standards,Libstdc++,Standards Compliance,Misra,这是出于我之前提出的一个问题(关于同一主题): 现在我有一个更重要的问题:libstdc++(这是gcc标准库的实现)是否符合MISRA C++:2008?我想答案是肯定的。。。只要使用gcc和-std=c++03标志编译代码 如果我使用2011年的标准编译代码(即-std=c++11),会发生什么?那是符合MISRA C++:2008的吗?我是否必须证明libstdc++符合MISRA?我可以为一些规则编写偏差(例如,我想使用std::array而不是C样式的数组),但是为整个MISRA标准

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

现在我有一个更重要的问题:libstdc++(这是gcc标准库的实现)是否符合MISRA C++:2008?我想答案是肯定的。。。只要使用
gcc
-std=c++03
标志编译代码

如果我使用2011年的标准编译代码(即
-std=c++11
),会发生什么?那是符合MISRA C++:2008的吗?我是否必须证明libstdc++符合MISRA?我可以为一些规则编写偏差(例如,我想使用
std::array
而不是C样式的数组),但是为整个MISRA标准编写这些偏差看起来像是一项可怕的任务


如果您能深入了解这个主题,我将不胜感激。

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

我非常怀疑MISRA-C++是否是这些库的首选。库(和gcc)维护人员大多来自Linux/桌面(“托管系统”)方面,在这方面不需要MISRA遵从性

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

如果我用2011年的标准编译代码会发生什么?那是符合MISRA C++:2008的吗

不,它不符合要求。MISRA-C++明确要求您使用C++03,因此在这里很难证明偏差的合理性

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


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

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

我非常怀疑MISRA-C++是否是这些库的首选。库(和gcc)维护人员大多来自Linux/桌面(“托管系统”)方面,在这方面不需要MISRA遵从性

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

如果我用2011年的标准编译代码会发生什么?那是符合MISRA C++:2008的吗

不,它不符合要求。MISRA-C++明确要求您使用C++03,因此在这里很难证明偏差的合理性

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


<> P>没有办法证明它,因为它不是.< /P>整体,如果你需要一个安全的子集C++ 11和更高的,可能是更好的选择,因为这更倾向于桌面/系统编程,而不是面向关键任务的嵌入式系统(C++最初不适合)。它们似乎被更新为C++14。你在这里太正确了。我在笔记本电脑上构建我的项目,因此我使用“桌面”编译器(g++,clang++)。然而,由于最终目标是在嵌入式设备中部署,因此我肯定应该考虑嵌入式系统编译器。多谢各位@然后,如果大型编译器供应商(如IAR、Green Hills、Keil等)支持,您可能应该咨询他们。如果没有的话,我很确定一些汽车半导体公司有这样的编译器,但是你只能使用某些处理器系列。我也发现了这些处理器系列,它们看起来非常像这里的主题。它们同时处理MISRA-C++和C++14。我还没有读过文件。@Andrew嗯。。。我不知道C++ WG在2011开始吸烟,但除此之外,他们至少不害怕修复语言中明显的问题(逻辑运算符给出布尔不int,字符串文字是conchch[]),而不是char [],i= i++也可以定义好等等)。虽然C WG是非常正统的,并且把语言错误当作珍爱的老宠物。总体来说,如果你需要一个安全的C++ 11和更高的子集,这可能是一个更好的选择,因为这更倾向于桌面/系统编程,而不是面向关键任务的嵌入式系统(C++最初不适合)。它们似乎被更新为C++14。你在这里太正确了。我在笔记本电脑上构建我的项目,因此我使用“桌面”编译器(g++,clang++)。然而,由于最终目标是在嵌入式设备中部署,因此我肯定应该考虑嵌入式系统编译器。多谢各位@然后,如果大型编译器供应商(如IAR、Green Hills、Keil等)支持,您可能应该咨询他们。如果没有的话,我很确定一些汽车半导体公司有这样的编译器,但是你只能使用某些处理器系列。我也发现了这些处理器系列,它们看起来非常像这里的主题。它们同时处理MISRA-C++和C++14。我还没有读过文件。@Andrew嗯。。。我不知道C++ WG在2011开始吸烟,但除此之外,他们至少不害怕修复语言中明显的问题(逻辑运算符给出布尔不int,字符串文字是conchch[]),而不是char [],i= i++也可以定义好等等)。而C工作组是非常正统的,把语言错误当作珍贵的老宠物对待。