https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116529
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-08-29 Keywords| |rejects-valid Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- And this fixes it: diff --git a/libstdc++-v3/include/backward/auto_ptr.h b/libstdc++-v3/include/backward/auto_ptr.h index 271a64d1de0..9e1318a9d9d 100644 --- a/libstdc++-v3/include/backward/auto_ptr.h +++ b/libstdc++-v3/include/backward/auto_ptr.h @@ -329,7 +329,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif // HOSTED template<typename _Tp, typename _Dp> - template<typename _Up, typename> + template<typename _Up, typename, typename> inline unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept : _M_t(__u.release(), deleter_type()) { } diff --git a/libstdc++-v3/include/bits/unique_ptr.h b/libstdc++-v3/include/bits/unique_ptr.h index 0f600db32f9..167136fe890 100644 --- a/libstdc++-v3/include/bits/unique_ptr.h +++ b/libstdc++-v3/include/bits/unique_ptr.h @@ -379,8 +379,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" /// Converting constructor from @c auto_ptr - template<typename _Up, typename = _Require< - is_convertible<_Up*, _Tp*>, is_same<_Dp, default_delete<_Tp>>>> + template<typename _Up, typename _Tpp = typename add_pointer<_Tp>::type, + typename = _Require<is_convertible<_Up*, _Tpp>, + is_same<_Dp, default_delete<_Tp>>>> unique_ptr(auto_ptr<_Up>&& __u) noexcept; #pragma GCC diagnostic pop #endif