1

我们这里有一个“旧”的 C++ 项目,其中大量使用了boost类(例如shared_ptr)。现在我们要将项目迁移到 C++11。

我的问题是:
1. 是否必须切换到std铸造运营商?
2. 迁移有什么好处std

4

2 回答 2

1

不,使用在 boost 中首次实现的特性的标准版本不是强制性的。与 boost 的实现相比,使用 std 版本没有任何大的优势,除非它可能使您能够消除对 boost 的依赖。

在采用 boost 特性的过程中,对 std 版本进行了改进。我不确定这些改进在多大程度上也被应用到了 boost 中。很可能大多数都是,但可能不是全部。

使用各种 std 实现可能会清除依赖于一种实现的某些特性的错误。

于 2013-08-13T20:28:24.027 回答
1

我从之前的评论中看到,通过强制转换运算符意味着智能指针。在这种情况下,过渡应该是微不足道的。在其他情况下,例如从 boost::thread 迁移到 std::thread,路径并不那么明显。查看Anthony Williams 的这篇文章,了解 boost::threads 和 std::threads 之间的区别

另外,这个关于 boost::bind vs std::bind

主要优点是支持,不需要部署 boost。(注意:就支持而言,boost 邮件列表有时会比商业编译器回复得更快)

于 2013-08-13T20:35:00.673 回答