提倡倡导 - 需要帮助

DVK*_*DVK 6 c++ boost

可能重复
是否有理由不使用Boost?
使用C++ BOOST库有什么好处?

好的,高级别的问题是"请向我提供您认为最有效的论据,为什么整个Boost或其某些特定部分应该在我们公司的系统上编译并在软件工程标准中得到认可".

我需要的细节:

  • 很乐意接受两个积极的论点(为什么要安装),以及我可能听到的可能反驳的反驳(见下面的问题背景).

  • 应该针对技术软件工程团队成员和/或非常技术性的高级管理人员进行争论 - 换句话说,对于后者,论证的细节可能/应该是技术性的,但论证的主旨应该是"如何这使得公司X赚钱/挽救公司Y钱作为将其添加到我们的工具集的成本".

问题的背景:

  • 我是一家拥有数百名开发人员的公司的开发人员,其中许多人都使用C++.

  • 我从我心爱的Perl开发点重新分配给了一个我正在进行C++开发的团队.到目前为止,我发现很多我可以在Perl中轻松完成的事情,在C++中非常困难/繁琐(以foreach循环为例),任何时候我点击其中一个,答案50%可能最终成为"你不能在标准C++中做到这一点,但你可以用Boost做到这一点"

  • 我们的工具包包括一些传统的RogeWave库,以及非常复古的非常有限数量的Boost库(例如,没有正则表达式,没有foreach).

  • 任何开发都必须使用由Software Engineering团队编译和审查的库.这是一条艰难而快速的规则.

  • 由于各种原因(例如,努力做到这一点;功能与RogeWave冲突,例如RegEx;安装和使用任何新软件的风险;教育开发人员的成本等等),SE团队对添加新库有一定的抵抗力. ).如果提供足够的业务需求或主要说服成本/效益比论证,他们将添加库,但他们有非常严格的门槛.

所以,我正在寻找Boost的哪些部分如此精彩(具有确切的成本/收益估计)的示例,安装它们对于软件工程来说显然是值得的.

提前感谢任何想法/建议/示例.

请不要将这个问题标记为主观,因为我正在寻找可测量的答案,而不仅仅是美妙的感受:)

sbi*_*sbi 15

无论我在过去十年里工作过什么,当他们拥有自己的智能指针类时,我发现了错误 - 通常在几周内.而且,不,我从来没有看过它希望找到错误.

我养成了从TR1智能指针提议中发布以下引用的习惯:

Boost开发人员发现共享所有权智能指针非常难以正确实现.其他人也做了同样的观察.例如,Scott Meyers [Meyers01]说:

"STL本身不包含引用计数智能指针,并且编写一个好的指针 - 一直可以正常工作 - 非常棘手,除非必须,否则你不想这样做.我发布了代码以供参考 - 在1996年更有效的C++中计算智能指针,尽管它基于已建立的智能指针实现并将其提交给经验丰富的开发人员进行广泛的预发布审查,但有一小部分有效的错误报告已经流入多年.参考计数智能指针失败的方式非常值得注意."

这加上我发现的bug的详细分析通常让我把boost libs合并到代码库中. :)


jal*_*alf 10

在我看来,你这样做是错误的.由于增加新图书馆的建议将遇到很多阻力,所以甚至不用费心去争取整体提升.选择你的战斗.

找到知道的特定Boost库(了解它将要使用的应用程序)将是有用的,节省时间和金钱.然后建议添加那些.

我可以很容易地列出了Boost库,我发现有用的,所以我觉得他们是伟大的,但我不知道他们是否会成为任何应用程序中使用.

推动单个boost库被包含在内,然后随着时间的推移,其中很多都将包括在内,每个人都可以更简单地包含所有Boost.

  • 很公平,但问题是我们其他人并不真正知道哪些增强库与您的应用程序相关.大多数人发现智能指针非常有价值,而且我倾向于使用type_traits,但是过去,它确实是特定于域的,哪些库是相关的. (2认同)

Rob*_*nes 7

  1. 这是一个不受特定公司控制的开放标准(无许可费用)
  2. 这是跨平台的
  3. 它经过专业设计/编写,非常快速/高效,经过广泛测试
  4. 您的团队可以自行编译开源实现.
  5. Boost很快将成为标准C++ STL的一部分

这是2005年Dobbs博士讨论即将推出的C++ 0x标准的一篇略显古老的文章.

http://www.ddj.com/cpp/184401958

  • +1 - 除了并非所有Boost都被纳入下一个C++标准,但Boost肯定会对新标准产生重大影响. (5认同)
  • @jalf,如果他们必须完成所有文书工作来添加一个库,想象一下他们需要做多少工作才能将他们的语言升级到C++ 0X(无论何时出现) (2认同)