Can you tell me why the following code segment doesn't compile with g++ while it compiles OK with Ms VC++ #include <vector> template<class T> class C { public: class A { int x; } ; vector<A> v1; //this line compiles OK vector<T> v2; //this line compiles OK vector<A>::iterator it1; //this line doesn't compile vector<T>::iterator it2; //this line doesn't compile }; Any help will be appreciated. Thanks, Luu Vo.