1 // Explicit instantantiations for numeric facets -*- C++ -*- 2 3 // Copyright (C) 2018-2022 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 #ifndef C 26 #define "This file should not be compiled directly, only included" 27 #endif 28 29 namespace std _GLIBCXX_VISIBILITY(default) 30 { 31 #if ! _GLIBCXX_USE_CXX11_ABI 32 template const num_get<C>& use_facet<num_get<C> >(const locale&); 33 template const num_put<C>& use_facet<num_put<C> >(const locale&); 34 35 template bool has_facet<num_get<C> >(const locale&); 36 template bool has_facet<num_put<C> >(const locale&); 37 #endif 38 39 _GLIBCXX_BEGIN_NAMESPACE_LDBL 40 41 #if ! _GLIBCXX_USE_CXX11_ABI 42 template class num_get<C, istreambuf_iterator<C> >; 43 template class num_put<C, ostreambuf_iterator<C> >; 44 #endif 45 46 // num_get member function templates 47 template 48 istreambuf_iterator<C> 49 num_get<C, istreambuf_iterator<C> >:: 50 _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 51 ios_base&, ios_base::iostate&, 52 long&) const; 53 54 template 55 istreambuf_iterator<C> 56 num_get<C, istreambuf_iterator<C> >:: 57 _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 58 ios_base&, ios_base::iostate&, 59 unsigned short&) const; 60 61 template 62 istreambuf_iterator<C> 63 num_get<C, istreambuf_iterator<C> >:: 64 _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 65 ios_base&, ios_base::iostate&, 66 unsigned int&) const; 67 68 template 69 istreambuf_iterator<C> 70 num_get<C, istreambuf_iterator<C> >:: 71 _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 72 ios_base&, ios_base::iostate&, 73 unsigned long&) const; 74 75 #ifdef _GLIBCXX_USE_LONG_LONG 76 template 77 istreambuf_iterator<C> 78 num_get<C, istreambuf_iterator<C> >:: 79 _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 80 ios_base&, ios_base::iostate&, 81 long long&) const; 82 83 template 84 istreambuf_iterator<C> 85 num_get<C, istreambuf_iterator<C> >:: 86 _M_extract_int(istreambuf_iterator<C>, istreambuf_iterator<C>, 87 ios_base&, ios_base::iostate&, 88 unsigned long long&) const; 89 #endif 90 91 #if ! _GLIBCXX_USE_CXX11_ABI 92 // num_put member function templates 93 template 94 ostreambuf_iterator<C> 95 num_put<C, ostreambuf_iterator<C> >:: 96 _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 97 long) const; 98 99 template 100 ostreambuf_iterator<C> 101 num_put<C, ostreambuf_iterator<C> >:: 102 _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 103 unsigned long) const; 104 105 #ifdef _GLIBCXX_USE_LONG_LONG 106 template 107 ostreambuf_iterator<C> 108 num_put<C, ostreambuf_iterator<C> >:: 109 _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 110 long long) const; 111 112 template 113 ostreambuf_iterator<C> 114 num_put<C, ostreambuf_iterator<C> >:: 115 _M_insert_int(ostreambuf_iterator<C>, ios_base&, C, 116 unsigned long long) const; 117 #endif 118 119 template 120 ostreambuf_iterator<C> 121 num_put<C, ostreambuf_iterator<C> >:: 122 _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char, 123 double) const; 124 125 template 126 ostreambuf_iterator<C> 127 num_put<C, ostreambuf_iterator<C> >:: 128 _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char, 129 long double) const; 130 #endif 131 132 _GLIBCXX_END_NAMESPACE_LDBL 133 } // namespace std 134