Аргумент по умолчанию для частичной специализации [Clang да, GCC нет]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Аргумент по умолчанию для частичной специализации [Clang да, GCC нет]

Сообщение Anonymous »

Почему следующее компилируется с clang, но не с g++ 4.9

Код: Выделить всё

#include 

template< typename T1, typename T2 , typename T3 = int>
struct A;

template
struct A< std::array, T2,  T3 > {
int a;
};

int main()
{
A< std::array, double>  a;
a.a +=3;
}
http://coliru.stacked-crooked.com/a/c7800f49ba5aac43

g++ не находит подходящей специализации и жалуется на «неполный тип». Мне интересно, поскольку имя типа аргумента по умолчанию T3 = int должно применяться к специализации (или оно применяется только к полной специализации?)

Подробнее здесь: https://stackoverflow.com/questions/297 ... yes-gcc-no
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»