我正在阅读Boost阵列文档,我看到这一行:
如果您使用的是C++ 11,则应考虑使用std :: array而不是boost :: array
我的印象是Boost,因为它的主要库,总是比标准库更好,因为:
所以我更倾向于提升stdlib?
如果不是/更复杂,我的哪些假设需要纠正?
Dan*_*lli 24
我认为你应该在可用的时候使用标准的库,因为......它是标准的,并附带编译器.此外,如果你使用boost,你需要一个讨厌的外部依赖.
所以,我的建议是:尽可能使用std.如果您正在编写可移植代码,也必须使用旧编译器编译,您可以考虑使用自己的命名空间(例如:cxx0x)根据您正在使用的编译器嵌入std或boost命名空间(这称为命名空间别名):
#ifdef COMPILER_HAS_CXX0X
#include <memory>
namespace cxx0x = std;
#else
#include <boost/shared_ptr.hpp>
namespace cxx0x = boost;
#endif
...
cxx0x::shared_ptr< MyClass > = ...
Run Code Online (Sandbox Code Playgroud)