https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65790
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Status|UNCONFIRMED |NEW Last reconfirmed| |2015-04-17 Ever confirmed|0 |1 Known to fail| |4.8.3, 4.9.2, 5.0, 6.0 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Confirmed, Clang and EDG accept this: extern "C" int printf(const char* ...); namespace std { typedef decltype(sizeof(0)) size_t; template<typename _Tp, _Tp... _Idx> struct integer_sequence { typedef _Tp value_type; static constexpr size_t size() { return sizeof...(_Idx); } }; template<size_t... _Idx> using index_sequence = integer_sequence<size_t, _Idx...>; } void g(std::size_t a, std::size_t b, std::size_t c) { printf("%zu, %zu, %zu\n", a, b, c); } template <std::size_t... Seq> void f(std::index_sequence<Seq...>) { g(Seq...); } int main() { f(std::index_sequence<0, 1, 2>()); }