// { dg-do assemble } | |
// GROUPS passed conversions | |
class A {}; | |
template <class TP> | |
class B | |
{ | |
A &(*_f) (A &, TP); | |
TP _a; | |
public: | |
B (A &(*f) (A &, TP), TP a) : _f (f), _a (a) {} | |
friend A &operator<< (A &o, const B<TP> &m) | |
{ (*m._f) (o, m._a); return o; } | |
}; | |
A &setw (A &, int); | |
B<int> setw (int n) | |
{ | |
return B<int> (setw, n); | |
} | |
A x; | |
void f () | |
{ | |
x << setw (2); | |
} |