// { dg-do compile } // Copyright (C) 2004 Free Software Foundation // Contributed by Kriang Lerdsuwanakij // Nested class of class template as friend template struct A { struct B1 { }; struct B2 { void f(); }; }; class C { int i; // { dg-error "private" } template friend struct A::B1; }; template void A::B2::f() { C c; c.i = 0; // { dg-error "context" } } int main() { A::B2 b1; b1.f(); // { dg-message "instantiated" } }