Можно ли по умолчанию использовать аргументы функции пакета параметров?

Это тот момент, когда gcc 4.9.2 и clang 3.5.2 находятся в резком разногласии. Программа:

template<typename ...Ts>
int foo(int i = 0, Ts &&... args)
{
    return i + sizeof...(Ts);
}

int main()
{
    return foo();
}

компилируется без комментариев от gcc (-std=c++11 -Wall -pedantic). Clang говорит:

error: missing default argument on parameter 'args'

Сfoo исправлено:

template<typename ...Ts>
int foo(int i = 0, Ts &&... args = 0)
{
    return i + sizeof...(Ts);
}

Clang не имеет претензий, но GCC говорит:

error: parameter pack ‘args’ cannot have a default argument

Какой компилятор прав?

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

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