Здравствуйте, coreduo, Вы писали:
C>День добрый! Видимо ночь, поэтому не соображаю
C>template<class _Type> class A
C>{
C>public:
C>typedef typename _Type* iterator;
C>};
C>g++ версии 4.1.1 ругается:
C>test.cpp:4: error: expected nested-name-specifier before '_Type'
C>test.cpp:4: error: expected ';' before '*' token
C>А мелкософтовский компиллер съедает с удовольствием такую конструкцию.
а зачем там ставить typename ? если б было так —
template<class _Type> class A
{
public:
typedef typename some_temlate_class< _Type >::value * iterator;
};
тогда все понятно.
а так — _Type и так тип, и _Type * тоже тип. какая тут неопределенность ?