https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110765
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |DUPLICATE
Status|UNCONFIRMED |RESOLVED
CC| |ppalka at gcc dot gnu.org
--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Thanks for the bug report. This looks like a dup of PR109751, which is an
unexpected consequence of the CWG2596 resolution (which we proactively
implement IIUC).
A general workaround is to turn the constrained hidden friend into a template,
so that its constraints don't get immediately checked upon instantiation of its
enclosing class (at which point the derived class is still incomplete).
template<class...>
friend constexpr auto tag_invoke(custom::to_char, derived_type const a)
noexcept
requires(requires { { a.to_char() }; })
{
return a.to_char();
}
*** This bug has been marked as a duplicate of bug 109751 ***