1 // { dg-do compile }
2 
3 template <typename V>
4 struct b
5 {
6   template <typename T>
7   class a
8   {
9     template <typename>
10     friend class a;
11 
12     T t_;
13 
14    public:
ab15     a() {}
16     a(a<T *> const &);
17   };
18 };
19 
20 template <typename V>
21 template <typename T>
a(a<T * > const & rhs)22 b<V>::a<T>::a(a<T *> const &rhs): t_(*rhs.t_)
23 {}
24 
25 
26 int
f()27 f ()
28 {
29   b<void *>::a<char *> q;
30   b<void *>::a<char> w(q);
31 
32   return 0;
33 }
34