Доступ к внешним типам классов шаблона из специализации внутреннего шаблона

Рассмотрим следующий код

template<int>
struct outer{
typedef int outertype;
template<int=0, int=0> struct inner;
};

template<int o> template<int,int> struct outer<o>::inner{
void f(outertype){}
};
template<int o> template<int i> struct outer<o>::inner<0,i>{
//void f(outertype){}   //test.cpp:11:9: error: ‘outertype’ has not been declared
void f(outer<o>::outertype){}   //ok but more verbose
};

Я очень подозреваю, что ошибка в комментариях — ошибка g ++ (4.8.2), или это странная тонкость в правилах поиска имен?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector