我们这里有一个“旧的”C ++项目,它大量使用boost
类(例如shared_ptr
)。现在我们要将项目迁移到C ++ 11。
我的问题是:
1.是否必须切换到std
铸造操作员?
2.迁移到std
有什么好处?
答案 0 :(得分:0)
不,并非强制要求使用最初在boost中实现的std版本的功能。使用std版本而不是boost的实现没有任何大的优势,除非它可能使你能够消除对boost的依赖。
在采用boost功能的过程中,对std版本进行了改进。我不确定这些改进在多大程度上也被应用于提升;很可能大多数都是,但可能不是全部。
使用各种std实现可以清除你依赖于一个实现的某些特性的错误。
答案 1 :(得分:0)
我从之前的评论中看到,通过构建运算符,您意味着智能指针。在这种情况下,过渡应该是微不足道的。 在其他情况下,如从boost :: thread迁移到std :: thread,路径不是那么明显。 检查this post by Anthony Williams有关boost :: threads和std :: threads
之间的区别另外,this one on boost::bind vs std::bind
主要优点是支持,而不需要部署boost。 (注意:就支持而言,提升邮件列表有时会比商业编译器更快地回复)