1// PR c++/25836
2
3template <class T>
4class Iter {};
5
6template <class T>
7class SubIter : public Iter<T> {
8  void insert(T);
9};
10
11class GraphBase {
12public:
13  class Node;
14};
15
16template<class T>
17class Graph : public GraphBase {
18  class Inner {
19    Iter<typename Graph<T>::Node*> *get();
20  };
21};
22
23template<class T>
24Iter<typename Graph<T>::Node*> *Graph<T>::Inner::get() {
25  SubIter<typename Graph<T>::Node*> *iter;
26  iter->insert(0);
27}
28
29int main() {
30  Iter<Graph<int>::Node*> *n2_iter = new SubIter<Graph<int>::Node*>();
31}
32