https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66586
Michał Mirosław <mirq-gccboogs at rere dot qmqm.pl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mirq-gccboogs at rere dot qmqm.pl --- Comment #3 from Michał Mirosław <mirq-gccboogs at rere dot qmqm.pl> --- Created attachment 44379 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44379&action=edit Testcase with enable_if_t Happens also in 6.3.0, 7.3.0, 8.1.0 (same messages generated for those versions). Slightly different testcase, with enable_if_t. $ g++ -c -std=c++17 a.cc a.cc: In function ‘void bar()’: a.cc:22:7: error: no matching function for call to ‘foo(A&)’ foo(a); ^ a.cc:6:6: note: candidate: template<class S, class, class> void foo(S&) void foo(S&); ^~~ a.cc:6:6: note: template argument deduction/substitution failed: a.cc:9:6: note: candidate: template<class S, class> void foo(S&) void foo(S&); ^~~ a.cc:9:6: note: template argument deduction/substitution failed: a.cc:8:23: error: no type named ‘other’ in ‘struct A’ template <typename S, typename = void_t<typename S::other>> ^~~~~~~~