【发布时间】:2018-06-13 20:42:46
【问题描述】:
MISRA C++ 规则 18-4-1 说:
不应使用动态堆内存分配。
见:http://dist.sonarsource.com/reports/coverage/misra_c++_2008.html
根据这条规则,MISRA C++ 规则允许std::string,因为std::string 确实在字符串变大时分配内存。另外,std::stringstream 这样的类呢?
【问题讨论】:
-
我无权访问该文档,但是否存在与使用标准库相关的其他规则以及在任何情况下都会排除使用 iostream 的例外情况?根据 MISRA,您可以通过适当的偏差声明程序做任何您认为必要的事情;你应该问自己的是这是否是一个适当的偏差?除非有符合 MISRA 的合同要求,否则您需要自己思考并了解具体应用中的后果。
-
感谢您的 cmets!
-
将
std::vector添加到列表中 -
我问过这个问题是因为 AUTOSAR 规范对 C++ 的要求不如 MISRA 严格。 AUTOSAR 规范可以在这里阅读 - autosar.org/fileadmin/user_upload/standards/adaptive/17-03/…
标签: c++ embedded heap-memory misra