0

When I trying to use vector iterator to template specialized class, in the template, I get an error C2146 in MSVS2012. Is it a compiler issue or something wrong with my code?

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
};
Alexander Mihailov
  • 1,154
  • 7
  • 15

0 Answers0