Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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++ Boost是否曾用于受监管项目(FDA、FAA)?_C++_Boost_Medical - Fatal编程技术网

C++ Boost是否曾用于受监管项目(FDA、FAA)?

C++ Boost是否曾用于受监管项目(FDA、FAA)?,c++,boost,medical,C++,Boost,Medical,在最近发表评论时,我发现自己在评论,根据我的经验,Boost并没有广泛应用于监管行业(FDA、FAA)。事实上,我不知道有哪个项目使用过它或者已经使用过它。不过,我意识到我在这里可能缺乏经验,因此我想知道是否有人知道在医疗设备或航空飞行系统(照明、客舱控制、驾驶舱设备等)中使用boost的项目 我不确定这是一个正确的地方问它(也许其他一些SO网站),但我认为这将是一个好的开始 这不是一个是否应该在这些领域使用boost的问题,而是一个任何人都知道是否已经使用boost的问题 编辑一些可能有助于澄

在最近发表评论时,我发现自己在评论,根据我的经验,Boost并没有广泛应用于监管行业(FDA、FAA)。事实上,我不知道有哪个项目使用过它或者已经使用过它。不过,我意识到我在这里可能缺乏经验,因此我想知道是否有人知道在医疗设备或航空飞行系统(照明、客舱控制、驾驶舱设备等)中使用boost的项目

我不确定这是一个正确的地方问它(也许其他一些SO网站),但我认为这将是一个好的开始

这不是一个是否应该在这些领域使用boost的问题,而是一个任何人都知道是否已经使用boost的问题

编辑一些可能有助于澄清这一点的示例项目:飞机座舱照明系统、座舱管理系统、座舱仪器、输液/食品/胰岛素泵、透析机、实验室诊断设备、血液中心数据收集系统等。其中一些是维持生命或可能对飞行至关重要的,有些人收集数据,有些人收集用于做出医疗决定的数据,等等,但我相信所有这些都被美国联邦航空管理局/食品和药物管理局列为受监管设备

编辑外部(不随开发链一起提供)库通常被带到这些类型的项目中,用于其他目的(图形库、驱动程序、USB堆栈等),它们被视为。boost的使用将属于这种方法。有人知道这样使用boost的项目吗

EDITBoost是一个非常大的框架,包含多个组件。我正在寻找已经在项目中使用过的任何部分。例如“Boost智能指针”或“Boost启用”或“Boost数组”或“Boost可选”等,但用于“整体”,而不是部分。通过查看Boost代码并重新使用该想法,您不会使用它;作为系统的整体组成部分使用(即法律意义)


这是问题的核心,因为以这种方式使用意味着必须处理处理汤的权衡。这可能会将此问题置于本SO网站的范围之外……不确定。

我认为我们能得到的最佳答案是“是”和“否”。我将尝试解释原因

Boost是许多组成库的一把巨大的保护伞。它们中的一些以各种方式相互依赖(例如,当高级库需要类似Boost类型特征的低级部分提供的特性时)。这就提出了一个问题的简单答案是否有用的问题,因为如果Boost的三个部分已经在一个受监管的项目中使用过,但它们是不同于您想要使用的部分,那么了解这一点是非常有价值的。我们永远不会知道关于所有部分的完整答案,因为你无法证明一个否定的答案(而且有太多的部分永远不会期望一个“100%肯定”的答案)

Boost正在(并且一直)快速发展。全新的库一直在添加。ASIO是一个直到最近才出现的大公司。这使得回答这个问题变得更加困难,因为随着时间的推移,Boost的某些部分还很年轻,而且没有其他部分测试得那么好。此外,现有库有时会进行向后不兼容的修订(例如不久前的“boostfilesystem 3”)

Boost的许多部分不是通过传统的依赖关系,而是通过复制粘贴Boost中的代码,或者根据需要修改代码(例如,添加或删除对特定编译器的支持),最终进入项目。同样,Boost的许多部分通过Boost作为许多新的C++标准库特征的证明基础,例如SyrdYPPTR(C++ 11)和unOrdEdjMaP(Tr1),最终在项目中结束。今天语言中的一些特性最初是Boost的一部分,因此许多人甚至不知道就使用了“Boost代码”

请注意,当代码在语言中转换为正式状态时,代码并不会以某种方式变得更安全——GCC有一些在相同概念的Boost等效实现中不存在的bug。这在考虑实际问题时很重要,例如“我们应该允许在我们的项目中使用Boost,还是应该限制编译器供应商提供给我们的内容?”如果您正在考虑使用编译器供应商最近(比如,在过去一年内)实现的功能,您最好使用更成熟的第三方(例如Boost)实现

最后,由于这个问题的动机似乎是为了获得一些保证,即使用Boost对于生产项目来说并不是一个坏主意:我肯定会说,一般来说,使用Boost是好的,但要注意的是,您需要一位本地Boost专家,他知道Boost的哪些部分不应该在您的领域中使用。例如,Boost Spirit、Phoenix和Wave都是图书馆的例子,它们已经在Boost中使用了一段时间,但很少有人真正深入地理解它们。使用你不完全理解的库代码是一回事(我们都理解),但使用地球上几乎没有人理解的代码则完全是另一回事


总之,我不认为任何人能够向您保证,您寻求的提升对于安全关键系统来说是可行的。您需要自己评估它,就像您需要评估自己的编译器供应商的软件、其他第三方依赖项以及您自己编写的代码一样。我已经大量使用了这四类软件,根据我的经验,Boost比其他任何一类软件都有更少的严重错误,比GCC或我自己的代码有更少的回归。

如果归结到系统设计师如何在体系结构级别处理系统安全,我会说很多

三倍

例如,如果所采用的方法是三重冗余,则需要信任