Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. // Concept checking instantiations -*- C++ -*-
  2.  
  3. // Copyright (C) 2001-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. // The implementation of some of the more complex checks uses the simple
  26. // checks (good reuse of code), thereby requiring that the simple checks
  27. // be instantiated somewhere.  The simple checks use other simple checks,
  28. // and so on, until a couple hundred symbols all need instantiations.  We
  29. // explicitly instantiate the initial set of symbols; compiling this file
  30. // with -fimplicit-templates will take care of the rest for us.
  31.  
  32. #define _GLIBCXX_USE_CXX11_ABI 0
  33. #include <bits/concept_check.h>
  34.  
  35. #ifdef _GLIBCXX_CONCEPT_CHECKS
  36.  
  37. #include <memory>
  38. #include <iterator>
  39. #include <ostream>
  40.  
  41. #define _Instantiate(...) template void __function_requires< __VA_ARGS__ > ()
  42.  
  43. namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
  44. {
  45. _GLIBCXX_BEGIN_NAMESPACE_VERSION
  46.  
  47.   template void __aux_require_boolean_expr<bool>(bool const&);
  48.  
  49.   _Instantiate(_ConvertibleConcept<unsigned, unsigned> );
  50.  
  51.   _Instantiate(_InputIteratorConcept<char*> );
  52.  
  53.   _Instantiate(_InputIteratorConcept<char const*> );
  54.  
  55. #ifdef _GLIBCXX_USE_WCHAR_T
  56.   _Instantiate(_InputIteratorConcept<wchar_t*> );
  57.  
  58.   _Instantiate(_InputIteratorConcept<wchar_t const*> );
  59.  
  60.   _Instantiate(_LessThanComparableConcept<wchar_t*> );
  61. #endif
  62.  
  63.   _Instantiate(_LessThanComparableConcept<char*> );
  64.  
  65.   _Instantiate(_LessThanComparableConcept<int> );
  66.  
  67.   _Instantiate(_LessThanComparableConcept<long> );
  68.  
  69.   _Instantiate(_LessThanComparableConcept<long long> );
  70.  
  71.   _Instantiate(_LessThanComparableConcept<unsigned> );
  72.  
  73.   _Instantiate(_OutputIteratorConcept<std::ostreambuf_iterator<
  74.     char, std::char_traits<char> >, char> );
  75.  
  76. #ifdef _GLIBCXX_USE_WCHAR_T
  77.   _Instantiate(_OutputIteratorConcept<std::ostreambuf_iterator<
  78.     wchar_t, std::char_traits<wchar_t> >, wchar_t> );
  79. #endif
  80.  
  81.   _Instantiate(_RandomAccessIteratorConcept<char*> );
  82.  
  83.   _Instantiate(_RandomAccessIteratorConcept<char const*> );
  84.  
  85.   _Instantiate(_RandomAccessIteratorConcept<
  86.     __normal_iterator<char const*, std::string> > );
  87.  
  88.   _Instantiate(_RandomAccessIteratorConcept<
  89.     __normal_iterator<char*, std::string> > );
  90.  
  91. #ifdef _GLIBCXX_USE_WCHAR_T
  92.   _Instantiate(_RandomAccessIteratorConcept<
  93.     __normal_iterator<wchar_t const*,
  94.     std::basic_string<wchar_t, std::char_traits<wchar_t>,
  95.                                std::allocator<wchar_t> > > > );
  96.  
  97.   _Instantiate(_RandomAccessIteratorConcept<
  98.     __normal_iterator<wchar_t*,
  99.     std::basic_string<wchar_t, std::char_traits<wchar_t>,
  100.                                std::allocator<wchar_t> > > > );
  101.  
  102.   _Instantiate(_RandomAccessIteratorConcept<wchar_t*> );
  103.  
  104.   _Instantiate(_RandomAccessIteratorConcept<wchar_t const*> );
  105. #endif
  106.  
  107. _GLIBCXX_END_NAMESPACE_VERSION
  108. } // namespace
  109.  
  110. #undef _Instantiate
  111.  
  112. #endif
  113.