在我的项目中,我正在使用boost::asio网络和线程管理.我想使用现代C++的一些功能,例如共享指针.
有两种选择:boost::shared_ptr因为我已经在使用Boost,std::shared_ptr因为我使用的是C++ 11编译器.据我所知,这些基本上是等价的,但它们彼此不相容.
我已经读过我应该更喜欢Boost上的标准库组件,而不是毫无意义地使用外部依赖.但是我仍然会使用Boost(至少直到他们决定将ASIO集成到标准库中),所以我仍然需要依赖.
共享指针只是一个例子,这个问题适用于标准库从升压接管所有功能,如function,bind,thread,等.
鉴于我的情况,这是该功能的首选实现?有没有关于选择的问题,在使用其他Boost或标准库组件时,我需要特别使用Boost或标准库版本?
虽然Boost是未来C++标准的事实上的支持者,但是它不是标准化的,所以如果选择Boost而不是C++标准库,那么你总是受到兼容性中断的支配.(以Boost Spirit的历史性突破性变化为例).
因此,始终编写代码,以便尽可能迁移到C++标准库.
使用C++标准库函数也可以更容易地进行编译器优化,因为它们的精确行为是由标准定义的.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |