Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. // Explicit instantiation file.
  2.  
  3. // Copyright (C) 1997-2015 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. #define _GLIBCXX_USE_CXX11_ABI 1
  30. #define _GLIBCXX_DISAMBIGUATE_REPLACE_INST 1
  31. #include <string>
  32. #include <istream>
  33. #include <ostream>
  34.  
  35. namespace std _GLIBCXX_VISIBILITY(default)
  36. {
  37. _GLIBCXX_BEGIN_NAMESPACE_VERSION
  38.  
  39.   // string related to iostreams
  40.   template
  41.     basic_istream<char>&
  42.     operator>>(basic_istream<char>&, string&);
  43.   template
  44.     basic_ostream<char>&
  45.     operator<<(basic_ostream<char>&, const string&);
  46.   template
  47.     basic_istream<char>&
  48.     getline(basic_istream<char>&, string&, char);
  49.   template
  50.     basic_istream<char>&
  51.     getline(basic_istream<char>&, string&);
  52. #ifdef _GLIBCXX_USE_WCHAR_T
  53.   template
  54.     basic_istream<wchar_t>&
  55.     operator>>(basic_istream<wchar_t>&, wstring&);
  56.   template
  57.     basic_ostream<wchar_t>&
  58.     operator<<(basic_ostream<wchar_t>&, const wstring&);
  59.   template
  60.     basic_istream<wchar_t>&
  61.     getline(basic_istream<wchar_t>&, wstring&, wchar_t);
  62.   template
  63.     basic_istream<wchar_t>&
  64.     getline(basic_istream<wchar_t>&, wstring&);
  65. #endif
  66.  
  67. #if _GLIBCXX_USE_CXX11_ABI
  68.   // C++98 members that are not instantiated by src/c++11/string-inst.cc
  69.   // because they changed in C++11 to take const_iterator parameters.
  70.   template string::iterator string::erase(iterator);
  71.   template string::iterator string::erase(iterator, iterator);
  72.   template void string::insert(iterator, size_type, char);
  73.   template void string::insert(iterator, iterator, iterator);
  74.   template string::iterator string::insert(iterator, char);
  75.   template string& string::replace(iterator, iterator, const string&);
  76.   template string&
  77.   string::replace(iterator, iterator, const char*, size_type);
  78.   template string& string::replace(iterator, iterator, const char*);
  79.   template string& string::replace(iterator, iterator, size_type, char);
  80.   template string& string::replace(iterator, iterator, char*, char*);
  81.   template string&
  82.   string::replace(iterator, iterator, const char*, const char*);
  83.   template string& string::replace(iterator, iterator, iterator, iterator);
  84.   template string&
  85.   string::replace(iterator, iterator, const_iterator, const_iterator);
  86.  
  87. #ifdef _GLIBCXX_USE_WCHAR_T
  88.   template wstring::iterator wstring::erase(iterator);
  89.   template wstring::iterator wstring::erase(iterator, iterator);
  90.   template void wstring::insert(iterator, size_type, wchar_t);
  91.   template void wstring::insert(iterator, iterator, iterator);
  92.   template wstring::iterator wstring::insert(iterator, wchar_t);
  93.   template wstring& wstring::replace(iterator, iterator, const wstring&);
  94.   template wstring&
  95.   wstring::replace(iterator, iterator, const wchar_t*, size_type);
  96.   template wstring& wstring::replace(iterator, iterator, const wchar_t*);
  97.   template wstring& wstring::replace(iterator, iterator, size_type, wchar_t);
  98.   template wstring& wstring::replace(iterator, iterator, wchar_t*, wchar_t*);
  99.   template wstring&
  100.   wstring::replace(iterator, iterator, const wchar_t*, const wchar_t*);
  101.   template wstring& wstring::replace(iterator, iterator, iterator, iterator);
  102.   template wstring&
  103.   wstring::replace(iterator, iterator, const_iterator, const_iterator);
  104. #endif
  105.  
  106.   // XXX this doesn't belong in an -inst.cc file
  107.   // Defined in src/c++98/locale_facets.cc
  108.   _GLIBCXX_PURE bool
  109.   __verify_grouping_impl(const char* __grouping, size_t __grouping_size,
  110.                          const char* __grouping_tmp, size_t __n);
  111.  
  112.   bool
  113.   __verify_grouping(const char* __grouping, size_t __grouping_size,
  114.                     const string& __grouping_tmp) throw()
  115.   {
  116.     return __verify_grouping_impl(__grouping, __grouping_size,
  117.                                   __grouping_tmp.c_str(),
  118.                                   __grouping_tmp.size());
  119.   }
  120. #endif
  121.  
  122. _GLIBCXX_END_NAMESPACE_VERSION
  123. } // namespace
  124.