Вложенный шаблон
От: Ptomaine  
Дата: 05.01.03 11:04
Оценка:
Имеем вот такой код:
template <class X> class MyClass
{
public:
X element;
};

int main(int argc, char* argv[])
{
MyClass<MyClass<int>> a;
return 0;
}


На это компилятор возвращает:
E2299 Cannot generate template specialization from 'MyClass<X>'

Почему?

06.01.03 18:54: Перенесено из 'Философия программирования'
Re: Вложенный шаблон
От: Ivan Россия www.rsdn.ru
Дата: 05.01.03 11:13
Оценка:
Здравствуйте, Ptomaine, Вы писали:

P>MyClass<MyClass<int>> a;

Здесь, по-моему пробела между '>' не хватает
MyClass<MyClass<int> > a;

VC 6.0 и Cameau нормально этот код компилируют.
шаблоны можно определять рекурсивно — в книге "Modern C++ Design" эта возможность очень активно используется
Re: Вложенный шаблон
От: m.a.g. Мальта http://dottedmag.net/
Дата: 05.01.03 11:15
Оценка:
Здравствуйте, Ptomaine, Вы писали:

Удалено избыточное цитирование. -- ПК.

P>
P>MyClass<MyClass<int>> a;


P>E2299 Cannot generate template specialization from 'MyClass<X>'


Компилятор от m$? Наверное, ошибка — gcc проглатывает.
... << 12. Путь в сторону леса >> ...
Re[2]: Вложенный шаблон
От: Ptomaine  
Дата: 05.01.03 11:40
Оценка:
Здравствуйте, Ivan, Вы писали:

I>Здравствуйте, Ptomaine, Вы писали:


P>>MyClass<MyClass<int>> a;

I>Здесь, по-моему пробела между '>' не хватает
I>
I>MyClass<MyClass<int> > a;
I>

I>VC 6.0 и Cameau нормально этот код компилируют.
I>шаблоны можно определять рекурсивно — в книге "Modern C++ Design" эта возможность очень активно используется

Вообще-то, работает. Но какое отношение имеет этот пробел к коду?
Re[2]: Вложенный шаблон
От: Ptomaine  
Дата: 05.01.03 11:43
Оценка:
Здравствуйте, m.a.g., Вы писали:

Избыточное цитирование удалено. -- ПК.

MAG>Компилятор от m$? Наверное, ошибка — gcc проглатывает.


Я компилю через Builder5
Re[3]: Вложенный шаблон
От: Ivan Россия www.rsdn.ru
Дата: 05.01.03 12:08
Оценка:
Здравствуйте, Ptomaine, Вы писали:

P>Вообще-то, работает. Но какое отношение имеет этот пробел к коду?

В верхнем постинге пробела нет, а он нужен
Re: Вложенный шаблон
От: Eugene_z  
Дата: 06.01.03 09:07
Оценка:
Здравствуйте, Ptomaine, Вы писали:

P>Имеем вот такой код:

P> // ...
P>На это компилятор возвращает:
P>E2299 Cannot generate template specialization from 'MyClass<X>'

P>Почему?


Действительно, это одна из многих проблем нестандартности компилятора Visual C++ 6.0

Для интересующихся, можете написать моему другу на alex.gap@mail.ru и попросить большой список таких несоответствий для многих компиляторов. Он гурман таких вещей.
Re[2]: Вложенный шаблон
От: WolfHound  
Дата: 06.01.03 12:29
Оценка:
Здравствуйте, Eugene_z, Вы писали:

EZ>Для интересующихся, можете написать моему другу на alex.gap@mail.ru и попросить большой список таких несоответствий для многих компиляторов. Он гурман таких вещей.


Дык попроси своего друга пусть статью напишет. Думаю многим будет интересно.
... << RSDN@Home 1.0 beta 4 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Вложенный шаблон
От: Кодт Россия  
Дата: 07.01.03 12:11
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Дык попроси своего друга пусть статью напишет. Думаю многим будет интересно.


Просим! Бис! Браво!!!
Перекуём баги на фичи!
Re[3]: Вложенный шаблон
От: adontz Грузия http://adontz.wordpress.com/
Дата: 15.06.03 10:51
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Дык попроси своего друга пусть статью напишет. Думаю многим будет интересно.


Или хотя бы предоставит спикок!!! Давай проси!
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Вложенный шаблон
От: Аноним  
Дата: 15.06.03 10:56
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Бис! Браво!!!


Спешите, товарищ! Как бы не пришлось "Автора!" кричать...
Re[3]: Вложенный шаблон
От: Octane Россия  
Дата: 15.06.03 12:41
Оценка:
Здравствуйте, Ptomaine, Вы писали:

MyClass<MyClass<int> > a;


P>Вообще-то, работает. Но какое отношение имеет этот пробел к коду?


этот пробел должен не иметь отношения к оператору '>>'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.