在最近发表评论时,我发现自己认为,在我的经验中,Boost并没有被广泛应用于受监管的行业(FDA,FAA)。事实上,我不知道有任何项目使用它或已经使用它。不过,我意识到,我在这里可能缺乏经验,所以我想知道,是否有人知道在医疗设备或航空飞行系统(照明、机舱控制、座舱设备等)中使用boost的项目。
我不确定这是不是合适的地方问它(也许其他一些网站),但我认为这将是一个好的地方开始。
这不是一个是否应该在这些领域使用助推器的问题,而是一个任何人都知道是否使用过助力的问题。
编辑一些可能有助于澄清这一点的示例项目:飞机机舱照明系统、机舱管理系统、座舱仪表、输液/食品/胰岛素泵、透析机、实验室诊断设备、血液中心数据收集系统等。有些项目对生命维持或可能对飞行至关重要,有些项目收集数据,收集用于医疗决策的数据等,但我认为所有这些项目都是由联邦航空局/食品和药物管理局监管的。
编辑外部(没有随开发链一起提供)库经常被引入到这些类型的项目中,用于其他目的(图形库、驱动程序、USB堆栈等)。这些都被视为汤。boost的使用将属于这种方法的范围。有人知道用这种方式使用boost的项目吗?
编辑 Boost是一个非常大的框架,包含多个组件。我正在寻找项目中使用过的任何部分。例如,"Boost智能指针“或"Boost Enable”或"Boost Array“或"Boost Optional”等,但用于“整体”,而不是部分。不是通过查看Boost代码和重用这个想法来使用的;用作整个系统的组成部分(即法律意义)。
--这是问题的核心,因为以这种方式使用意味着必须处理处理汤的权衡。,这可能使这个问题超出了这个范围,所以site...not确定。
发布于 2013-12-22 02:23:22
我认为我们在这里能得到的最好的答案是“是和不是”。我会尽力解释原因。
Boost对于许多组成库来说是一个巨大的保护伞。它们中的一些以不同的方式相互依赖(例如,当更高级别的库需要由Boost类特征的低级部分提供的特性时)。这就提出了一个简单回答这个问题的有用性的问题,因为如果在一个受监管的项目中使用了Boost的三个部分,但它们与您想要使用的部分不同,那么了解这一点就没有什么价值了。我们永远不会知道所有部分的完整答案,因为你无法证明是否定的(而且有太多的部分永远不会期待"100%是“的答案)。
助推是(而且一直都是)快速发展。全新的库一直被添加。ASIO是一个大的,直到最近才存在。这使得回答这个问题变得更加困难,因为随着时间的推移,助推器中有一些是年轻的,没有其他的好测试。此外,现有的库有时会进行向后不兼容的修订。"Boost Filesystem 3“(不久前)。
Boost的许多部分最终不是通过传统的依赖项,而是通过从Boost复制粘贴代码,或者修改它来体验(例如添加或删除对特定编译器的支持)。类似地,Boost的许多部分最终都出现在项目中,因为Boost是许多新的C++标准库特性的试验场,比如shared_ptr (C++11)和unordered_map (TR1)。有些特性是今天语言的一部分,最初是Boost的一部分,所以很多人甚至不知道就使用了"Boost代码“。
请注意,代码在语言中转换到官方状态时并不会变得更安全--GCC在相同概念的Boost等效实现中存在错误。在考虑实际问题时,这很重要,比如“我们应该允许在我们的项目中使用Boost,还是应该将自己限制在编译器供应商提供给我们的内容上?”如果您正在考虑使用编译器供应商最近实现的特性(例如,在过去的一年内),那么使用更成熟的第三方(例如Boost)实现可能会更好。
最后,由于这个问题的推动力似乎是为了获得一些保证,即使用Boost对一个生产项目来说并不是个坏主意:我肯定会说,一般来说,使用Boost是好的,但有一个很大的警告,您需要一个本地的Boost专家,谁知道Boost的哪一部分不应该在您的领域中使用。例如,Boost Spirit、凤凰和Wave是图书馆的例子,它们已经被提升了一段时间,但很少有人真正、深入地理解它们。使用你不完全理解的库代码是一回事(我们都理解),而使用几乎没有人理解的代码则是另一回事。
总之,我认为没有人能给你保证,你寻求提升是安全关键的系统是可以的。您需要自己评估它,就像您需要评估您自己的编译器供应商的软件、其他第三方依赖项以及您自己编写的代码一样。我经常使用这四种类型的软件,根据我的经验,Boost的关键bug比其他任何一种都少,比GCC或我自己的代码更少回归。
https://stackoverflow.com/questions/20714009
复制相似问题