2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.dg / template / friend23.C
blob96f8125b68ab72aeb560ad35b3d72e9177901abf
1 // { dg-do compile }
3 // Origin: Alexandre Tolmos <ktulu@free.fr>
5 // PR c++/11876: Friend of its own class diagnostics
7 template <typename T>
8 class A
10         friend class A<int>;
11         friend class A<float>;
12 protected:
13         T _data;
14         inline A() : _data(0) {}
15         template <typename U>
16         inline A(const A<U>& r) : _data(r._data) {}
19 class B : public A<int>
21 public:
22         inline B() {}
23         inline B(const B& r) : A<int>(r) {}
26 class C : public A<float>
28 public:
29         inline C() {}
30         inline C(const B& r) : A<float>(r) {}
33 int main(int, char*[])
35         B b1, b2(b1);
36         C c(b1);
37         return 0;