在公共库中找不到哪些组件对C++项目至关重要?

pmr*_*pmr 3 c++

对于大多数C++项目,Boost涵盖了很多基础组件,但经常使用的解决方案和习惯用法需要一些锅炉板或地面工作.您认为在每个项目中拥有它并因此将它放在一个小的"库"中是如此重要?我想到的一些事情:

  • 单身基类(有人会认为他需要它,所以他可以正确地做到)
  • ScopeGuard
  • 工厂基础级
  • any_iterator

(最后两个是在Loki,但Loki与Boost重叠,人们对使用它犹豫不决.)

编辑:我可能应该补充一点,我不询问标准库的常用扩展,例如copy_if.

Joh*_*ing 5

以上都不是.特别是,绝对不是Singleton类,因为Singletons的使用通常表明存在设计 缺陷.在过去的15年里,我从来没有需要过Singleton课程,而且我在旅途中找到的所有课程都是黑客攻击或以其他方式损害了他们所处系统的稳健性.

一般来说,除了一个好的,符合标准的编译器,希望永远不要停止学习更多关于我的选择语言和不限制我的动作的编码标准,我发现我不需要任何东西来编写完整的系统.

特别值得注意的是,在过去的15年中,我所拥有的每项工作都明确禁止使用Boost.虽然我在自己的项目和小工具中使用Boost,但我的生产代码都没有使用它.我是Boost的粉丝,但我并没有真的错过它.现在,在VS2010中支持C++ 0x,我更想念它.

也就是说,多年来我已经建立了一个#include图书馆,无论我走到哪里,我都会带着有用的小东西和小玩意儿.这包括:

  • 一个例外框架
  • 的一个版本sprintf的作品与std::string
  • 高分辨率计时器类,主要用于开发,压力测试和调试
  • 一个实现 transform_if
  • 一个实现 copy_if

还有一些我很少使用的STL扩展.