1 // Origin: PR c++/45606
2 // { dg-do compile }
3 
4 template<class T, class U = int>
5 struct S0
6 {
7   typedef int const_iterator;
8 };
9 
10 template<class T>
11 struct Test
12 {
13   typedef S0<T> SAlias;
14   typedef typename SAlias::const_iterator const_iterator;
15   const_iterator begin ();
16 };
17 
18 template<class T>
19 typename S0<T>::const_iterator
begin()20 Test<T>::begin()
21 {
22   return 0;
23 }
24