https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104319
--- Comment #10 from qingzhe huang <nickhuang99 at hotmail dot com> --- Here I have another test case. It involves an anonymous template argument which confuses me for a lot at the time which clang is doing a great job to clarify the reason for me. https://www.godbolt.org/z/YGfMncGeW template <typename T=int, std::enable_if_t<std::is_integral<T>::value, bool>=true //there should be a space in ">=" > struct TestStruct{};