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.