2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.pt / ttp43.C
blobe1bc4cee6521224a6166e1a67c3b02c624cc5093
1 // { dg-do assemble  }
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 };
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) {}
15 template < class T >
16 struct Lit {
17   Lit(const T& t) {}
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   }
27   Mul < T, ::Id, Lit > operator*(const T& t) const {
28     return Mul < T, ::Id, Lit >(*this, Lit<T>(t));
29   }