// { dg-do assemble } | |
template < class T, template < class > class E1, template < class > class E2 > | |
class Add { | |
public: | |
Add(const E1<T>& e1, const E2<T>& e2) {} | |
}; | |
template < class T > | |
struct Id { | |
template < template < class > class E > | |
Add < T, ::Id, E > operator+(const E<T>& e) const { | |
return Add < T, ::Id, E >(*this, e); | |
} | |
}; | |
template struct Id<double>; |