1// Origin: PR c++/42820
2// { dg-do compile }
3
4template <class T> struct vector{};
5template<class T>struct Traits{struct Primitive{struct Id{};};};
6
7template <template<class T> class Tree, class Polyhedron> struct Tree_vs_naive
8{
9  typedef typename Tree<int>::Primitive Primitive;
10
11  void f() const
12  {
13    typedef vector<typename Primitive::Id> Id_vector;
14  }
15};
16
17template <template<class T> class Tree> void test_hint_strategies()
18{
19  vector<typename Tree<int>::Primitive::Id> v;
20}
21
22int main(void)
23{
24  test_hint_strategies<Traits>();
25}
26