[Bug libstdc++/60497] unique_ptr<T> tries to complete its type T even though it's not required to be a complete type

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 30 14:48:26 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60497

--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:47915ef8477569b2fbd8001996aa4e542284bb24

commit r12-320-g47915ef8477569b2fbd8001996aa4e542284bb24
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Apr 30 14:45:42 2021 +0100

    libstdc++: Use std::addressof to avoid ADL for operator& [PR 60497]

    This is another small step towards avoiding the problems described in PR
    60497, by using std::addressof to avoid ADL, so that we don't require
    all template arguments to be complete.

    libstdc++-v3/ChangeLog:

            PR libstdc++/60497
            * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
            std::addressof.
            * include/bits/basic_string.tcc (basic_string::swap)
            (basic_string::assign): Likewise.
            * include/bits/deque.tcc (deque::operator=(const deque&)):
            Likewise.
            * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
            Likewise.
            * include/bits/vector.tcc (vector::operator=(const vector&)):
            Likewise.


More information about the Gcc-bugs mailing list