gpt4 book ai didi

c++ - 在安全关键系统中测试 C++17

转载 作者:IT老高 更新时间:2023-10-28 23:00:53 26 4
gpt4 key购买 nike

我目前正在考虑安全关键软件 (DO-178C DAL-D) 中的 C++ 和编码标准的定义。我在看 MISRA C++,它又有 10 年的历史了,它错过了所有 C++11…17 的特性。

虽然在安全性方面保持保守通常不是一个坏主意,但新的语言功能可能对安全性有益。

在审查期间,人们必须争论您做出某些决定的原因。人们总是会争辩说,新的语言特性使代码更清晰……因此关于误解的错误更少;特别是如果编译器能够测试和验证您的假设。

但很难找到比“让事情更清晰”更突出安全方面的语言特征。现代 C++ 的哪些方面真正有助于安全?

我正在建立一个小型练习项目来测试这些想法,目前完全专注于“让编译器检查你的假设”。例如,我们刚刚开始使用 [[nodiscard]] 并在第一个小时内发现了至少两个错误。但是现代 c++ 的哪些方面是在设计和使用时应考虑到安全性的?

最佳答案

我首先想到这些:

  • atomicmemory_model :它们允许在并发/无锁上下文中编写可移植代码。
  • unique_ptr : 有助于简化内存处理
  • override让您在编译时发现错误。
  • constexpr if使代码写得更接近使用它的地方,这有助于减少错误(有时,为了根据模板参数专门化一个行为,你会编写一个具有 n 特化的类。现在你可以使用if constexprn 分支代替)。

等等...在某种程度上,考虑到代码清晰度和可移植性的好处,我认为 C++11/14/17 的每个特性都有帮助。

关于c++ - 在安全关键系统中测试 C++17,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com