1 // Explicit instantiation file.
2 
3 // Copyright (C) 1997-2020 Free Software Foundation, Inc.
4 //
5 // This file is part of the GNU ISO C++ Library.  This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
9 // any later version.
10 
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 // GNU General Public License for more details.
15 
16 // Under Section 7 of GPL version 3, you are granted additional
17 // permissions described in the GCC Runtime Library Exception, version
18 // 3.1, as published by the Free Software Foundation.
19 
20 // You should have received a copy of the GNU General Public License and
21 // a copy of the GCC Runtime Library Exception along with this program;
22 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23 // <http://www.gnu.org/licenses/>.
24 
25 //
26 // ISO C++ 14882:
27 //
28 
29 #include <ostream>
30 #include <iomanip>
31 
32 namespace std _GLIBCXX_VISIBILITY(default)
33 {
34 _GLIBCXX_BEGIN_NAMESPACE_VERSION
35 
36   // ostream
37   template class basic_ostream<char>;
38   template ostream& endl(ostream&);
39   template ostream& ends(ostream&);
40   template ostream& flush(ostream&);
41   template ostream& operator<<(ostream&, char);
42   template ostream& operator<<(ostream&, unsigned char);
43   template ostream& operator<<(ostream&, signed char);
44   template ostream& operator<<(ostream&, const char*);
45   template ostream& operator<<(ostream&, const unsigned char*);
46   template ostream& operator<<(ostream&, const signed char*);
47 
48   template ostream& operator<<(ostream&, _Setfill<char>);
49   template ostream& operator<<(ostream&, _Setiosflags);
50   template ostream& operator<<(ostream&, _Resetiosflags);
51   template ostream& operator<<(ostream&, _Setbase);
52   template ostream& operator<<(ostream&, _Setprecision);
53   template ostream& operator<<(ostream&, _Setw);
54   template ostream& __ostream_insert(ostream&, const char*, streamsize);
55 
56   template ostream& ostream::_M_insert(long);
57   template ostream& ostream::_M_insert(unsigned long);
58   template ostream& ostream::_M_insert(bool);
59 #ifdef _GLIBCXX_USE_LONG_LONG
60   template ostream& ostream::_M_insert(long long);
61   template ostream& ostream::_M_insert(unsigned long long);
62 #endif
63   template ostream& ostream::_M_insert(double);
64   template ostream& ostream::_M_insert(long double);
65   template ostream& ostream::_M_insert(const void*);
66 
67 #ifdef _GLIBCXX_USE_WCHAR_T
68   template class basic_ostream<wchar_t>;
69   template wostream& endl(wostream&);
70   template wostream& ends(wostream&);
71   template wostream& flush(wostream&);
72   template wostream& operator<<(wostream&, wchar_t);
73   template wostream& operator<<(wostream&, char);
74   template wostream& operator<<(wostream&, const wchar_t*);
75   template wostream& operator<<(wostream&, const char*);
76 
77   template wostream& operator<<(wostream&, _Setfill<wchar_t>);
78   template wostream& operator<<(wostream&, _Setiosflags);
79   template wostream& operator<<(wostream&, _Resetiosflags);
80   template wostream& operator<<(wostream&, _Setbase);
81   template wostream& operator<<(wostream&, _Setprecision);
82   template wostream& operator<<(wostream&, _Setw);
83   template wostream& __ostream_insert(wostream&, const wchar_t*, streamsize);
84 
85   template wostream& wostream::_M_insert(long);
86   template wostream& wostream::_M_insert(unsigned long);
87   template wostream& wostream::_M_insert(bool);
88 #ifdef _GLIBCXX_USE_LONG_LONG
89   template wostream& wostream::_M_insert(long long);
90   template wostream& wostream::_M_insert(unsigned long long);
91 #endif
92   template wostream& wostream::_M_insert(double);
93   template wostream& wostream::_M_insert(long double);
94   template wostream& wostream::_M_insert(const void*);
95 #endif
96 
97 _GLIBCXX_END_NAMESPACE_VERSION
98 } // namespace
99 
100 // XXX GLIBCXX_ABI Deprecated
101 #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
102 
103 #pragma GCC diagnostic ignored "-Wattribute-alias"
104 
105 #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
106   extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
107 _GLIBCXX_LDBL_COMPAT (_ZNSolsEd, _ZNSolsEe);
108 #ifdef _GLIBCXX_USE_WCHAR_T
109 _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd,
110 		      _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe);
111 #endif
112 _GLIBCXX_LDBL_COMPAT (_ZNSo9_M_insertIdEERSoT_,
113 		      _ZNSo9_M_insertIeEERSoT_);
114 #ifdef _GLIBCXX_USE_WCHAR_T
115 _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_,
116 		      _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_);
117 #endif
118 
119 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
120