Don*_*eld 27 c++ boost utility
我一直在浏览Boost库的修订版1.38.0,试图确定那里是否有足够的珠宝来证明我公司外部软件审批流程的合理性.在编写测试程序和阅读文档的过程中,我得出了几个结论
事实上,有些图书馆对我来说似乎有点玩具.
经过短时间的调查后,我可以看到一些相当容易访问的库,比如boost :: variant(我非常喜欢访问者组件以及如果访问者缺少运算符,编译器会调整这个事实其中一种变种类型).我使用boost :: shared_ptr,除了我们的组已经有一组智能指针类型这一事实.
因此基于Stack Overflow用户的丰富经验,Boost库
请注意,这与Boost认为有害的问题有些不同?
PS - 有没有一个答案(来自litb)被删除?我在这里看不到它,只在我的用户页面上摘录...
Ano*_*ous 18
我经常使用(它让我的生活变得更简单):
智能指针(shared_ptr,scoped_ptr,weak_ptr,进程间unique_ptr):
scoped_ptr 对于基本RAII(没有共享所有权和所有权转移),免费.shared_ptr对于更复杂的操作 - 需要共享所有权时.但是有一些成本.unique_ptr- unique_ptr通过移动仿真统一各种方法(出现在Boost),积极开展工作.unique_ptr)Boost Thread - 主动开发(线程现在是可移动的)库,用于处理线程.隐藏给定平台上线程实现的复杂性.
提升MPL和融合 - 这些更难以解释.很长一段时间我没有使用编译时的电源,但经过一些阅读和学习后发现我的一些代码可以很好地简化.还是要小心编译时间......
提升阿西奥
Boost格式(强大的输出格式,但非常重)
Boost Spirit2x(Karma和Qi用于解析和基于给定语法生成输出).非常强大,可以创建解析器而无需借助外部工具.然而编译时间可能是个问题.此外,版本2x正在积极开发,文档相当稀少(尽管精神级别的邮件列表非常有用)
提升Bind,Function和Lambda让你的生活更轻松,提升凤凰 - 只是为了实验
lexical_cast(类似的东西可能很快就会出现在boost :: string中)
正则表达式/ Xpressive - 正则表达式
键入特征和概念检查 - 再次使您的生活更轻松
数学:
Boost Iterator(用于迭代器和外观的专用适配器,用于创建自己的)
增强单元测试框架
还有一些我在Boost中几乎没有触及的部分.可能我也忘了提几个显而易见的.
记得使用正确的工具(锤子)来解决正确的问题(钉子).请记住保持解决方案简单.记住接收功能的成本(例如shared_ptr或boost::format运行时开销或MPL/Fusion/Spirit/Phoenix编译时间成本和可执行大小).但是实验和学习 - 这就是乐趣所在.
当说服管理层使用新库时 - 您不必从所有库开始.从简单的事情开始(可能是那些具有长而稳定的Boost历史,广泛的编译器支持,计划包含在TR2/C++ 1x中的事物等)以及显示其优点的简单示例.
vla*_*adr 13
在设计跨平台(例如*nix和win32)多线程应用程序(,.)时,我发现boost这是一个无可争议的必备条件.至少在一个实例中,仅仅这一点已经充分证明了我的雇主项目的一部分.boost::threadboost::interprocessboost
其余的(容器,通用编程和元编程,内存)随后作为免费赠品.
我想说有价值的图书馆是:
enable_if,, type/function_traits)也许Python(从未尝试过,但有些例如.KDE程序使用它)
| 归档时间: | 
 | 
| 查看次数: | 8500 次 | 
| 最近记录: |