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