1 // { dg-do assemble } 2 // { dg-options "-g" } 3 4 typedef unsigned int size_t; 5 6 7 struct dummy { }; 8 9 struct arrrrrgh { }; 10 11 12 template<class Par,class Rand = arrrrrgh> 13 struct whyyyyyyy { }; 14 15 16 17 18 template<class T, class S =dummy> 19 struct grrrrrrrr { }; 20 21 22 template<class Par, class Par2 =Par, class Rand =arrrrrgh> 23 class no_future 24 { 25 public: 26 27 28 template<class S> no_future(const grrrrrrrr<whyyyyyyy<Par,Rand> *,S> & man)29 no_future(const grrrrrrrr<whyyyyyyy<Par,Rand>*,S>& man ) { } 30 ~no_future()31 ~no_future( ) { } 32 33 private: 34 35 36 no_future(const no_future&); 37 no_future& operator=(const no_future&); 38 }; 39 40 main()41int main( ) 42 { 43 grrrrrrrr<whyyyyyyy<double>*> man; 44 45 no_future<double> here(man); 46 47 return 0; 48 } 49