#include <vector>
#include <iostream>
using namespace std;
template<class T>
class A {
T m_;
};
template<class T>
class B : public A<T> {
T n_;
};
template<class T>
void f(vector<B<T>*> v)
{
for (typename vector<B<T>*>::iterator it = v.begin(); it != v.end(); it++) {
// do sth
}
}
int main(void)
{
vector<B<int>* > v;
}