Lines Matching full:friend
7 template<typename T> friend struct Y;
20 template<typename T> friend void f0(T);
21 template<typename T> friend void f1(T);
31 template<typename U> friend struct X0;
35 template<typename U> friend struct X0;
39 template<typename U> friend struct X0;
43 template<typename U> friend void f2(U);
44 template<typename U> friend void f3(U);
65 friend class Foo;
76 template<typename U, U Value> friend struct X2a;
79 // lookup ends up finding the friend target from X3<int>.
80 template<typename U, T Value> friend struct X2b; // expected-error {{template non-type parameter has a different type 'long' in template redeclaration}} \
92 template<typename T> friend void f(const A<T>&);
107 template <typename T> friend struct cache;
110 template <typename T> friend struct cache;
126 friend A<U1, U2, U3>& inner::f0(A<U1, U2, U3>&, T);
136 friend void f(X, int_c<N>) {
162 template <typename T1, typename T2, typename B> friend void op(X2<T1, T2>& , B);
194 template <typename T1, typename T2, typename B> friend void op(X2<T1, T2>& , B);
214 template<unsigned M> friend class X<T, U, M>; // expected-error{{partial specialization cannot be declared as a friend}}
220 // Don't crash, and error on invalid friend type template.
223 template <typename U> friend S<U>; // expected-error{{friend type templates must use an elaborated type}}
230 template <> friend class B; // expected-error{{extraneous 'template<>' in declaration of class 'B'}}
238 template <class S> template <class U> friend class A<S>::B;
251 template<typename> friend class packaged_task;
265 template <typename> friend struct Foo; // expected-error {{redefinition of 'Foo' as different kind of symbol}}
274 template<typename> friend class A::does_not_exist; // \
275 // expected-error {{friend declaration of 'does_not_exist' does not match any declaration in 'PR12585::A'}}
283 template<typename> friend struct C::D;
298 template<T> friend struct F::G; // \
306 // Ensure that we can still instantiate a friend function template
307 // after the friend declaration is instantiated during the delayed
308 // parsing of a member function, but before the friend function has
315 template <class U> friend void foo(const A<U> & a) {