0

当我尝试使用向量迭代器来模板专用类时,在模板中,我在 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
};
4

0 回答 0