https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80144
Eric Gallager <egallager at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Status|UNCONFIRMED |NEW Last reconfirmed| |2017-08-21 CC| |egallager at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> --- (In reply to Arthur O'Dwyer from comment #0) > Compile this code with GCC trunk and -fconcepts: > > template<typename T> > concept bool Never = requires(T t) { > { t != 42 }; > }; > > template<typename T> concept bool First = Never<T>; > template<Never T> concept bool Second = true; > > int main() > { > static_assert(!Never<void*>); > static_assert(!First<void*>); > static_assert(!Second<void*>); // static assertion failed > } > > I claim that the final static_assert should not fail, or else GCC should > diagnose some kind of syntax error in my concept definitions (perhaps the > syntax "Never T" is not intended to be supported). Confirmed, although I'm not sure which of those 2 options is correct...