共享项目库必须使用各种编译器 C++17 C++03 等进行编译。所以只需使用更好的 unique_ptr
或不太完美的 auto_ptr
如果要使代码保持通用,那么适当并不理想。
查看#ifdef 类型的解决方案,但它变得困惑。 另外,对久经考验的编码进行编辑并不是一个特别有吸引力的想法!
有人知道用于替换 auto_ptr
的形式、配合和功能下降吗?
最佳答案
有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
更具表现力无意转让所有权时。
关于c++ - C++17 中已弃用的 auto_ptr 的替代库/模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44959470/