typedef矢量模板

时间:2012-10-19 16:03:03

标签: c++ templates vector typedef

我正在尝试向我的类添加一些typedef,但编译器会在以下代码中报告语法错误:

    template<class T>
    class MyClass{
        typedef std::vector<T> storageType; //this is fine
        typedef storageType::iterator iterator; //the error is here

但下一个也不起作用:

        typedef std::vector<T>::iterator iterator;

我在很多论坛上寻找答案,但我无法找到解决方案或解决方法。谢谢你的帮助!

2 个答案:

答案 0 :(得分:5)

您错过了typename

typedef typename std::vector<T>::iterator iterator;

有很多类似的问题。例如。看看以下内容:

答案 1 :(得分:2)

std::vector<T>::iterator是一个依赖类型,因此您需要在它之前添加typename。

typedef typename std::vector<T>::iterator iterator;
        ^