https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71954
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-07-22 CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 Known to fail| |5.3.0, 6.1.0, 7.0 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed with 5.1.0, 6.1.0, and current trunk (7.0). Clang 3.8 end EDG eccp 4.11 both successfully compile the code. Rewriting it in terms of structs instead of variable templates works: template <typename...T> struct Str2 { template <typename...T1> struct Helper2 { enum { v = true}; }; template <typename T2, typename...T3> struct Helper2<Container<T2>, T3...> { enum { v = false }; }; static_assert(Helper2<T...>::v, "Check"); }; Str2<int, int, int> s;