1 // Origin: PR c++/43206 2 // { dg-do compile } 3 4 template<class A> struct NumericTraits{ typedef A TInputImage;}; 5 template<class B> class CovariantVector{}; 6 template<class C> struct Image{ typedef C PixelType;}; 7 template<class H, class E, class D> 8 class F { 9 typedef H G; 10 typedef 11 typename NumericTraits<typename G::PixelType>::RealType 12 InputRealType; 13 }; 14 15 template<typename TInputImage, 16 typename TOutputImage=Image<CovariantVector<typename NumericTraits<typename TInputImage::PixelType>::TInputImage> > > 17 class XXX{}; 18 19 XXX<Image<float> > x; 20 21