// Contribued by Gabriel Dos Reis <gdr@codesourcery.com> | |
// Origin: iskey@i100.ryd.student.liu.se | |
class ostream; | |
extern ostream& cout; | |
template <class T> struct s; | |
template <class T> | |
ostream& operator<<(ostream &o, const typename s<T>::t &x) | |
{ | |
return o; | |
} | |
template <class T> | |
struct s { | |
struct t | |
{ | |
friend ostream& | |
operator<<<T>(ostream&, const typename s<T>::t &); | |
}; | |
t x; | |
}; | |
int main() | |
{ | |
s<int>::t y; | |
cout << y; // { dg-error "" } | |
} |