Предположим, есть крошечный класс
template<class T1>
class c {
template<class T>
class Test {
public:
typedef std::vector<T> vetor_type;
vetor_type some_var;
};
void f() {
Test<int>::vetor_type tt; //error
}
};
Я получаю сообщение об ошибке:
Ожидается ';' после выражения.
Редактировать: я не знаю, почему был удален ответ о typename, потому что это действительно помогло.
Но кто-то может объяснить, почему я должен использовать typename, если я пишу этот код в другом шаблоне класса?