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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |SUSPENDED
   Last reconfirmed|                            |2021-04-01

--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to the_gamester28 from comment #0)
> It seems that the template requirements of invoke_tag(bar_tag, int) are
> considered while evaluating line marked "here". Requirements of irrelevant
> overloads should not be considered, as it can potentially lead to falsely
> reporting a cyclic dependency.

This is as specified by http://wg21.link/cwg2369

I think it would be reasonable to allow a compiler to accept the testcase under
a generalization of 13.9.1/9: "If the function selected by overload resolution
(12.4) can be determined without instantiating a class template definition, it
is unspecified whether that instantiation actually takes place."

But that does not require a compiler to accept it.

It might make sense to check non-dependent conversions that don't require
template instantiation, then constraints, then non-dependent conversions that
do require template instantiation.  But that's a matter for the committee; G++
is conforming to the current working paper.
  • [Bug c++/99599] [1... jason at gcc dot gnu.org via Gcc-bugs

Reply via email to