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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org

--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This issue actually touches half the library.

Using std::bind with unique_ptr<B<A>> tries to complete A

Using unique_lock<Something<unique_ptr<B<A>>> tries to complete A

Using call_once(o, f, Something<unique_ptr<B<A>>) tries to complete A

etc. etc.

There are a few more unqualified std::get calls that I'm fixing, but most of
the problems come from using the built-in & operator, which does ADL and so
tries to complete A. That means we must use std::addressof even on internal
library types without an overloaded operator& if they have any template
arguments of user-defined types.

Reply via email to