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