https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99846
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- Oops, sorry, I meant to paste this as the further reduced version: #include <list> struct Value; using Array = std::list<Value>; struct Value : Array {}; int main() { Value left; Value right; return left < right; }