https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104326
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm, only clang is able to accept the code. MSVC rejects it with: <source>(13): error C3520: 'Types': parameter pack must be expanded in this context While ICC ICEs after an error message: <source>(10): error: parameter pack "Types" was referenced but not expanded template <Types> typename... Outer, ^ <source>(11): error: parameter pack "Types" was referenced but not expanded Types... Inner ^ <source>(19): internal error: null pointer Test<tuple<O1<1>, O2<2>>> test1; ^