Boost本质上是一个c++03库(激发了c++11标准的制定)。我正在考虑使用一些boost库(那些没有在c++11中实现的库)。如果我使用c++11,boost会编译通过吗(可能存在无法复制但可移动对象的问题)?以及boost如何充分利用c++11特性(可变参数模板显然是一些boost库可以使用的东西,而不是使用大量的boost MPL)?(我在boost FAQ中找不到这个答案。)
Boost正在向使用C++11特性迈进。
但需要记住的是,Boost不是“一个库”,而是一组库的集合。其中一些库(例如boost::array
)可能永远不会更新以使用许多c++11特性。为什么需要这样做呢?因为标准库中已经有了std::array
(它是基于boost::array
开发的)。
另一方面,Boost希望对仍在使用C++03的人保持有用。
注意:尽管我写得好像“Boost”是某种整体实体,但是有许多人在为Boost做出贡献,他们有着许多不同的观点。 ;-)
要查看各种Boost库与C++11编译器的兼容性如何,您可以查看Boost Testing网页。
C++11被设计成尽可能向后兼容。除非boost使用了C++11中的新保留关键字,否则我不知道为什么它不能与新标准完美编译。
std::shared_ptr
。 - Flexo