GCC vs. CL
От: ssi Россия  
Дата: 08.11.02 19:00
Оценка:
Почему CL не компилирует следующий код (вроде все законно):

struct ab {
   ab(int _a, int _b) : a(_a), b(_b) {}
   int a, b;
};
     
template<class T, int n> struct foo { T data[n]; };

int main() { 
   foo<ab, 2> theFoo = { ab(1, 2), ab(1, 2) };
   return 0; 
}


error C2552: 'theFoo' : non-aggregates cannot be initialized with initializer list

Если у ab убрать конструкор и написать

   foo<ab, 2> theFoo = { 1, 2, 1, 2 };


все компилируется. Причем, GCC совершенно спокойно компилирует и тот и другой вариант.
Помогите пожалуйста разобраться.
Знающие не говорят, говорящие не знают. Лао Цзы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.