Шаблон функции Variadic с расширением пакета не в последнем параметре

Мне интересно, почему следующий код не компилируется:

struct S
{
    template <typename... T>
    S(T..., int);
};

S c{0, 0};

Этот код не компилируется с Clang и GCC 4.8. Вот ошибка с Clang:

test.cpp:7:3: error: no matching constructor for initialization of 'S'
S c{0, 0};
  ^~~~~~~
test.cpp:4:5: note: candidate constructor not viable: requires 1 argument, but 2 were provided
    S(T..., int);
    ^

Мне кажется, что это должно работать, и T должен быть выведен, чтобы быть пакетом длины 1.

Если стандарты запрещают делать такие вещи, кто-нибудь знает почему?

Ответы на вопрос(4)

Ваш ответ на вопрос