xref: /aosp_15_r20/external/clang/test/Modules/Inputs/PR24954/B.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li namespace B {
2*67e74705SXin Li 
3*67e74705SXin Li   template <class _CharT>
4*67e74705SXin Li   struct basic_ostream {
5*67e74705SXin Li     basic_ostream& operator<<(basic_ostream& (*__pf)());
6*67e74705SXin Li   };
7*67e74705SXin Li 
8*67e74705SXin Li 
9*67e74705SXin Li   template <class _CharT> basic_ostream<_CharT>&
10*67e74705SXin Li   endl();
11*67e74705SXin Li 
12*67e74705SXin Li   struct S1 {
13*67e74705SXin Li     template <class _CharT> friend void
14*67e74705SXin Li     operator<<(basic_ostream<_CharT>& __os, const S1& __x);
15*67e74705SXin Li   };
16*67e74705SXin Li 
17*67e74705SXin Li   S1 setw(int __n);
18*67e74705SXin Li 
19*67e74705SXin Li   template <class _CharT> class S2;
20*67e74705SXin Li 
21*67e74705SXin Li   template <class _CharT> void
22*67e74705SXin Li   operator<<(basic_ostream<_CharT>& __os, const S2<_CharT>& __x);
23*67e74705SXin Li 
24*67e74705SXin Li   template <class _CharT>
25*67e74705SXin Li   struct S2 {
26*67e74705SXin Li     template <class _Cp> friend void
27*67e74705SXin Li     operator<<(basic_ostream<_Cp>& __os, const S2<_Cp>& __x);
28*67e74705SXin Li   };
29*67e74705SXin Li 
30*67e74705SXin Li }
31