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