2013-07-12 6 views
0

Предположим, что класс Data имеет шаблон локального класса Element<i>, следующий код имеет ошибку компиляции. Код кажется простым, но что не так?Определить тип локального класса в шаблоне класса

template<unsigned i, class Data> 
class A 
{ 
public: 
    typedef typename Data::Element<i> ElementTy; // compilation error: token error 
}; 

ответ

1

Вам нужен template ключевое слово:

typedef typename Data::template Element<i> ElementTy; 

Это говорит компилятору, что имя следующее является шаблоном.

Смежные вопросы