我遇到了编译器错误并发现了一些有趣的内容。出于某种原因,unique_ptr
有auto_ptr
的重载,但我认为auto_ptr
已被弃用:
/usr/local/include/c++/4.9.0/bits/unique_ptr.h:228:2:
note:template<class _Up, class>
std::unique_ptr<_Tp, _Dp>::unique_ptr(std::auto_ptr<_Up>&&)
unique_ptr(auto_ptr<_Up>&& __u) noexcept;
/usr/local/include/c++/4.9.0/bits/unique_ptr.h:228:2:
note: template argument deduction/substitution failed:
main.cpp:41:67: note: mismatched types 'std::auto_ptr<T>' and 'char*'
这是因为与使用auto_ptr
的代码向后兼容吗?
答案 0 :(得分:2)
是的,它与auto_ptr互操作,不推荐使用(根据标准)
当前版本标准的规范性,但不保证 在未来的修订中成为标准的一部分。