| // { dg-do compile } |
| |
| // Origin: Ivan Godard <igodard@pacbell.net> |
| |
| // PR c++/15410: Declaration of friend class template with wrong |
| // template parameter. |
| |
| template <typename T, typename U> struct F; // { dg-message "previous declaration" } |
| |
| class W |
| { |
| template<int i> friend class F; // { dg-error "template parameter" } |
| int x; // { dg-message "private" } |
| }; |
| |
| template <typename T, typename U> struct F |
| { |
| void Look(W& w) { w.x = 3; } // { dg-error "within this context" } |
| }; |
| |
| int main() |
| { |
| W w; |
| F<char, bool> f; |
| f.Look(w); |
| return 0; |
| } |