我希望在我的C++应用程序中使用智能指针。
为了使用std scoped_ptr,我应该包含哪个头文件?
scoped_ptr
std::unique_ptr
boost::scoped_ptr
标准C++库中没有scoped_ptr。所有的C++11智能指针都在头文件<memory>中。如果需要boost::scoped_ptr,则需要包含boost/scoped_ptr.hpp。
<memory>
boost/scoped_ptr.hpp
在std命名空间中没有scoped_ptr。 你可以使用来自boost的boost::scoped_ptr。 或者我猜你想要使用std::unique_ptr。在这种情况下,你需要包含<memory>
std
scoped_ptr
不是标准的智能指针,它是由Boost提供的。C++11引入了std::unique_ptr
,它类似于scoped_ptr
,但唯一的区别是它可以移动。至于这些头文件在哪里可以找到,这些信息可以在各自的文档中非常容易地找到。 - Luc Tourailleboost::scoped_ptr
和std::unique_ptr
之间的区别,可以参考这个问题和这个问题。 - Luc Touraille