// Origin: PR c++/43704 // { dg-do compile } template struct if_ { typedef T2 type; }; template struct iterator_restrict_traits { struct iterator_category {}; }; template struct matrix { struct ci {struct ic {};}; class i {}; }; template struct triangular_adaptor { typedef typename if_::type ty1; class iterator2 : iterator_restrict_traits::iterator_category { }; }; template struct banded_adaptor { typedef typename if_::type ty1; class iterator1 : iterator_restrict_traits::iterator_category { }; }; template struct singular_decomposition { banded_adaptor >::iterator1 it1; };