1 // Explicit instantiation file.
2 
3 // Copyright (C) 2020-2021 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 // Instantiations in this file are only for the new SSO std::string ABI
30 #include <sstream>
31 
32 #if _GLIBCXX_USE_CXX11_ABI
33 namespace std _GLIBCXX_VISIBILITY(default)
34 {
35 _GLIBCXX_BEGIN_NAMESPACE_VERSION
36 
37 template basic_stringbuf<char>::basic_stringbuf(const allocator_type&);
38 template basic_stringbuf<char>::basic_stringbuf(ios_base::openmode,
39 						const allocator_type&);
40 template basic_stringbuf<char>::basic_stringbuf(__string_type&&,
41 						ios_base::openmode);
42 template basic_stringbuf<char>::basic_stringbuf(basic_stringbuf&&,
43 						const allocator_type&);
44 template basic_stringbuf<char>::basic_stringbuf(basic_stringbuf&&,
45 						const allocator_type&,
46 						__xfer_bufptrs&&);
47 template basic_stringbuf<char>::allocator_type
48 basic_stringbuf<char>::get_allocator() const noexcept;
49 template string
50 basic_stringbuf<char>::str() const &;
51 template string
52 basic_stringbuf<char>::str() &&;
53 template string_view
54 basic_stringbuf<char>::view() const noexcept;
55 template void
56 basic_stringbuf<char>::str(string&&);
57 
58 template basic_istringstream<char>::basic_istringstream(ios_base::openmode,
59 							const allocator_type&);
60 template basic_istringstream<char>::basic_istringstream(__string_type&&,
61 							ios_base::openmode);
62 template string
63 basic_istringstream<char>::str() const &;
64 template string
65 basic_istringstream<char>::str() &&;
66 template string_view
67 basic_istringstream<char>::view() const noexcept;
68 template void
69 basic_istringstream<char>::str(string&&);
70 
71 template basic_ostringstream<char>::basic_ostringstream(ios_base::openmode,
72 							const allocator_type&);
73 template basic_ostringstream<char>::basic_ostringstream(__string_type&&,
74 							ios_base::openmode);
75 template string
76 basic_ostringstream<char>::str() const &;
77 template string
78 basic_ostringstream<char>::str() &&;
79 template string_view
80 basic_ostringstream<char>::view() const noexcept;
81 template void
82 basic_ostringstream<char>::str(string&&);
83 
84 template basic_stringstream<char>::basic_stringstream(ios_base::openmode,
85 						      const allocator_type&);
86 template basic_stringstream<char>::basic_stringstream(__string_type&&,
87 						      ios_base::openmode);
88 template string
89 basic_stringstream<char>::str() const &;
90 template string
91 basic_stringstream<char>::str() &&;
92 template string_view
93 basic_stringstream<char>::view() const noexcept;
94 template void
95 basic_stringstream<char>::str(string&&);
96 
97 #ifdef _GLIBCXX_USE_WCHAR_T
98 template basic_stringbuf<wchar_t>::basic_stringbuf(const allocator_type&);
99 template basic_stringbuf<wchar_t>::basic_stringbuf(ios_base::openmode,
100 						   const allocator_type&);
101 template basic_stringbuf<wchar_t>::basic_stringbuf(__string_type&&,
102 						   ios_base::openmode);
103 template basic_stringbuf<wchar_t>::basic_stringbuf(basic_stringbuf&&,
104 						   const allocator_type&);
105 template basic_stringbuf<wchar_t>::basic_stringbuf(basic_stringbuf&&,
106 						   const allocator_type&,
107 						   __xfer_bufptrs&&);
108 template basic_stringbuf<wchar_t>::allocator_type
109 basic_stringbuf<wchar_t>::get_allocator() const noexcept;
110 
111 template wstring
112 basic_stringbuf<wchar_t>::str() const &;
113 template wstring
114 basic_stringbuf<wchar_t>::str() &&;
115 template wstring_view
116 basic_stringbuf<wchar_t>::view() const noexcept;
117 template void
118 basic_stringbuf<wchar_t>::str(wstring&&);
119 
120 template basic_istringstream<wchar_t>::basic_istringstream(ios_base::openmode,
121 							   const allocator_type&);
122 template basic_istringstream<wchar_t>::basic_istringstream(__string_type&&,
123 							   ios_base::openmode);
124 template wstring
125 basic_istringstream<wchar_t>::str() const &;
126 template wstring
127 basic_istringstream<wchar_t>::str() &&;
128 template wstring_view
129 basic_istringstream<wchar_t>::view() const noexcept;
130 template void
131 basic_istringstream<wchar_t>::str(wstring&&);
132 
133 template basic_ostringstream<wchar_t>::basic_ostringstream(ios_base::openmode,
134 							   const allocator_type&);
135 template basic_ostringstream<wchar_t>::basic_ostringstream(__string_type&&,
136 							   ios_base::openmode);
137 template wstring
138 basic_ostringstream<wchar_t>::str() const &;
139 template wstring
140 basic_ostringstream<wchar_t>::str() &&;
141 template wstring_view
142 basic_ostringstream<wchar_t>::view() const noexcept;
143 template void
144 basic_ostringstream<wchar_t>::str(wstring&&);
145 
146 template basic_stringstream<wchar_t>::basic_stringstream(ios_base::openmode,
147 							 const allocator_type&);
148 template basic_stringstream<wchar_t>::basic_stringstream(__string_type&&,
149 							 ios_base::openmode);
150 template wstring
151 basic_stringstream<wchar_t>::str() const &;
152 template wstring
153 basic_stringstream<wchar_t>::str() &&;
154 template wstring_view
155 basic_stringstream<wchar_t>::view() const noexcept;
156 template void
157 basic_stringstream<wchar_t>::str(wstring&&);
158 #endif
159 
160 _GLIBCXX_END_NAMESPACE_VERSION
161 }
162 
163 #endif //_GLIBCXX_USE_CXX11_ABI
164