Код: Выделить всё
#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;
}
g++ не находит подходящей специализации и жалуется на «неполный тип». Мне интересно, поскольку имя типа аргумента по умолчанию T3 = int должно применяться к специализации (или оно применяется только к полной специализации?)
Подробнее здесь: https://stackoverflow.com/questions/297 ... yes-gcc-no
Мобильная версия