Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

85 lines
2.4KB

  1. // Exception Handling support header for -*- C++ -*-
  2. // Copyright (C) 2016-2020 Free Software Foundation, Inc.
  3. //
  4. // This file is part of GCC.
  5. //
  6. // GCC is free software; you can redistribute it and/or modify
  7. // it under the terms of the GNU General Public License as published by
  8. // the Free Software Foundation; either version 3, or (at your option)
  9. // any later version.
  10. //
  11. // GCC 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. // You should have received a copy of the GNU General Public License and
  20. // a copy of the GCC Runtime Library Exception along with this program;
  21. // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  22. // <http://www.gnu.org/licenses/>.
  23. /** @file bits/exception.h
  24. * This is an internal header file, included by other library headers.
  25. * Do not attempt to use it directly.
  26. */
  27. #ifndef __EXCEPTION_H
  28. #define __EXCEPTION_H 1
  29. #pragma GCC system_header
  30. #pragma GCC visibility push(default)
  31. #include <bits/c++config.h>
  32. extern "C++" {
  33. namespace std
  34. {
  35. /**
  36. * @defgroup exceptions Exceptions
  37. * @ingroup diagnostics
  38. *
  39. * Classes and functions for reporting errors via exception classes.
  40. * @{
  41. */
  42. /**
  43. * @brief Base class for all library exceptions.
  44. *
  45. * This is the base class for all exceptions thrown by the standard
  46. * library, and by certain language expressions. You are free to derive
  47. * your own %exception classes, or use a different hierarchy, or to
  48. * throw non-class data (e.g., fundamental types).
  49. */
  50. class exception
  51. {
  52. public:
  53. exception() _GLIBCXX_NOTHROW { }
  54. virtual ~exception() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
  55. #if __cplusplus >= 201103L
  56. exception(const exception&) = default;
  57. exception& operator=(const exception&) = default;
  58. exception(exception&&) = default;
  59. exception& operator=(exception&&) = default;
  60. #endif
  61. /** Returns a C-style character string describing the general cause
  62. * of the current error. */
  63. virtual const char*
  64. what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
  65. };
  66. } // namespace std
  67. }
  68. #pragma GCC visibility pop
  69. #endif