拥有必须使用各种编译器C ++ 17 C ++ 03等编译的共享项目库。因此,只使用更好的unique_ptr
或不完美的auto_ptr
并不理想如果代码要保持通用。
看看#ifdef类型的解决方案,但它会变得混乱。 加上经过良好尝试和测试编码的编辑并不是一个特别有吸引力的想法!
任何人都知道auto_ptr
的形式,适合度和功能代替?
答案 0 :(得分:1)
有Boost.Move和Boost Smart Pointer。 std::unique_ptr
和std::auto_ptr
可能会被boost::movelib::unique_ptr
取代。 std::shared_ptr
和std::weak_ptr
boost::shared_ptr
和boost::weak_ptr
。
而且,当没有转移所有权的意图时,您可以使用boost::scoped_ptr
更具表现力。