OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.pt / ttp43.C
1 // { dg-do assemble  }
2
3 template < class T, template <class> class E1, template <class> class E2 >
4 struct Add {
5   Add(const E1<T>& e1, const E2<T>& e2) {}
6 };
7
8
9 template < class T, template <class> class E1, template <class> class E2 >
10 struct Mul {
11   Mul(const E1<T>& e1, const E2<T>& e2) {}
12 };
13
14
15 template < class T >
16 struct Lit {
17   Lit(const T& t) {}
18 };
19
20
21 template < class T >
22 struct Id {
23   Add < T, ::Id, Lit > operator+(const T& t) const {
24     return Add < T, ::Id, Lit >(*this, Lit<T>(t));
25   }
26
27   Mul < T, ::Id, Lit > operator*(const T& t) const {
28     return Mul < T, ::Id, Lit >(*this, Lit<T>(t));
29   }
30 };