The below code compiles fine with gcc and clang but gives this error with icc 2016:
main.cpp(11): error: parameter pack "IX2" was referenced but not expanded
KA(const A<IX2>&... ax) {
^
compilation aborted for main.cpp (code 2)
template<int I> struct A {}; template<int... IX> struct KA { template<int... IX2> KA(const A<IX2>&... ax) { } }; int main() { return 0; }