迭代器无法访问模板?

时间:2013-08-20 09:14:50

标签: c++ templates iterator

当我尝试使用矢量迭代器模板专用类时,在模板中,我在MSVS2012中收到错误C2146。这是编译器问题还是我的代码有问题?

template <typename T>
struct A { };

typedef A< int > Ai;

std::vector<   Ai   >::iterator;            // ok
std::vector< A<int> >::iterator;            // ok

struct B {
    std::vector<   Ai   >::iterator it1;    // ok
    std::vector< A<int> >::iterator it2;    // ok
};

template <typename T>
struct C {
    std::vector<  Ai  >::iterator it1;      // ok
    std::vector< A<int> >::iterator it2;    // ok
    std::vector< A<T> >::iterator it3;      // fail
};

0 个答案:

没有答案