xref: /dflybsd-src/contrib/gcc-8.0/libstdc++-v3/src/c++98/misc-inst.cc (revision 38fd149817dfbff97799f62fcb70be98c4e32523)
1*38fd1498Szrj // Explicit instantiation file.
2*38fd1498Szrj 
3*38fd1498Szrj // Copyright (C) 1997-2018 Free Software Foundation, Inc.
4*38fd1498Szrj //
5*38fd1498Szrj // This file is part of the GNU ISO C++ Library.  This library is free
6*38fd1498Szrj // software; you can redistribute it and/or modify it under the
7*38fd1498Szrj // terms of the GNU General Public License as published by the
8*38fd1498Szrj // Free Software Foundation; either version 3, or (at your option)
9*38fd1498Szrj // any later version.
10*38fd1498Szrj 
11*38fd1498Szrj // This library is distributed in the hope that it will be useful,
12*38fd1498Szrj // but WITHOUT ANY WARRANTY; without even the implied warranty of
13*38fd1498Szrj // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*38fd1498Szrj // GNU General Public License for more details.
15*38fd1498Szrj 
16*38fd1498Szrj // Under Section 7 of GPL version 3, you are granted additional
17*38fd1498Szrj // permissions described in the GCC Runtime Library Exception, version
18*38fd1498Szrj // 3.1, as published by the Free Software Foundation.
19*38fd1498Szrj 
20*38fd1498Szrj // You should have received a copy of the GNU General Public License and
21*38fd1498Szrj // a copy of the GCC Runtime Library Exception along with this program;
22*38fd1498Szrj // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23*38fd1498Szrj // <http://www.gnu.org/licenses/>.
24*38fd1498Szrj 
25*38fd1498Szrj //
26*38fd1498Szrj // ISO C++ 14882:
27*38fd1498Szrj //
28*38fd1498Szrj 
29*38fd1498Szrj #define _GLIBCXX_USE_CXX11_ABI 1
30*38fd1498Szrj #define _GLIBCXX_DISAMBIGUATE_REPLACE_INST 1
31*38fd1498Szrj #include <string>
32*38fd1498Szrj #include <istream>
33*38fd1498Szrj #include <ostream>
34*38fd1498Szrj 
35*38fd1498Szrj namespace std _GLIBCXX_VISIBILITY(default)
36*38fd1498Szrj {
37*38fd1498Szrj _GLIBCXX_BEGIN_NAMESPACE_VERSION
38*38fd1498Szrj 
39*38fd1498Szrj #if _GLIBCXX_USE_CXX11_ABI
40*38fd1498Szrj   // C++98 members that are not instantiated by src/c++11/string-inst.cc
41*38fd1498Szrj   // because they changed in C++11 to take const_iterator parameters.
42*38fd1498Szrj   template string::iterator string::erase(iterator);
43*38fd1498Szrj   template string::iterator string::erase(iterator, iterator);
44*38fd1498Szrj   template void string::insert(iterator, size_type, char);
45*38fd1498Szrj   template void string::insert(iterator, iterator, iterator);
46*38fd1498Szrj   template string::iterator string::insert(iterator, char);
47*38fd1498Szrj   template string& string::replace(iterator, iterator, const string&);
48*38fd1498Szrj   template string&
49*38fd1498Szrj   string::replace(iterator, iterator, const char*, size_type);
50*38fd1498Szrj   template string& string::replace(iterator, iterator, const char*);
51*38fd1498Szrj   template string& string::replace(iterator, iterator, size_type, char);
52*38fd1498Szrj   template string& string::replace(iterator, iterator, char*, char*);
53*38fd1498Szrj   template string&
54*38fd1498Szrj   string::replace(iterator, iterator, const char*, const char*);
55*38fd1498Szrj   template string& string::replace(iterator, iterator, iterator, iterator);
56*38fd1498Szrj   template string&
57*38fd1498Szrj   string::replace(iterator, iterator, const_iterator, const_iterator);
58*38fd1498Szrj 
59*38fd1498Szrj #ifdef _GLIBCXX_USE_WCHAR_T
60*38fd1498Szrj   template wstring::iterator wstring::erase(iterator);
61*38fd1498Szrj   template wstring::iterator wstring::erase(iterator, iterator);
62*38fd1498Szrj   template void wstring::insert(iterator, size_type, wchar_t);
63*38fd1498Szrj   template void wstring::insert(iterator, iterator, iterator);
64*38fd1498Szrj   template wstring::iterator wstring::insert(iterator, wchar_t);
65*38fd1498Szrj   template wstring& wstring::replace(iterator, iterator, const wstring&);
66*38fd1498Szrj   template wstring&
67*38fd1498Szrj   wstring::replace(iterator, iterator, const wchar_t*, size_type);
68*38fd1498Szrj   template wstring& wstring::replace(iterator, iterator, const wchar_t*);
69*38fd1498Szrj   template wstring& wstring::replace(iterator, iterator, size_type, wchar_t);
70*38fd1498Szrj   template wstring& wstring::replace(iterator, iterator, wchar_t*, wchar_t*);
71*38fd1498Szrj   template wstring&
72*38fd1498Szrj   wstring::replace(iterator, iterator, const wchar_t*, const wchar_t*);
73*38fd1498Szrj   template wstring& wstring::replace(iterator, iterator, iterator, iterator);
74*38fd1498Szrj   template wstring&
75*38fd1498Szrj   wstring::replace(iterator, iterator, const_iterator, const_iterator);
76*38fd1498Szrj #endif
77*38fd1498Szrj 
78*38fd1498Szrj   // XXX this doesn't belong in an -inst.cc file
79*38fd1498Szrj   // Defined in src/c++98/locale_facets.cc
80*38fd1498Szrj   _GLIBCXX_PURE bool
81*38fd1498Szrj   __verify_grouping_impl(const char* __grouping, size_t __grouping_size,
82*38fd1498Szrj                          const char* __grouping_tmp, size_t __n);
83*38fd1498Szrj 
84*38fd1498Szrj   bool
__verify_grouping(const char * __grouping,size_t __grouping_size,const string & __grouping_tmp)85*38fd1498Szrj   __verify_grouping(const char* __grouping, size_t __grouping_size,
86*38fd1498Szrj 		    const string& __grouping_tmp) throw()
87*38fd1498Szrj   {
88*38fd1498Szrj     return __verify_grouping_impl(__grouping, __grouping_size,
89*38fd1498Szrj                                   __grouping_tmp.c_str(),
90*38fd1498Szrj                                   __grouping_tmp.size());
91*38fd1498Szrj   }
92*38fd1498Szrj #endif
93*38fd1498Szrj 
94*38fd1498Szrj _GLIBCXX_END_NAMESPACE_VERSION
95*38fd1498Szrj } // namespace
96