https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94563
--- Comment #1 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- To clarify the actual bug character of this issue, the following example shows it more clearly: template<class T, decltype((((T*) 0) < nullptr), true) = false> bool test(T*) { return true; } int main() { test((int*)(nullptr)); } This program should be ill-formed because the invalid expression ((T*) 0) < nullptr should not make test<int> available, but the code is accepted without any diagnostics.