|
- // Exception Handling support header for -*- C++ -*-
-
- // Copyright (C) 2016-2020 Free Software Foundation, Inc.
- //
- // This file is part of GCC.
- //
- // GCC is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; either version 3, or (at your option)
- // any later version.
- //
- // GCC is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // Under Section 7 of GPL version 3, you are granted additional
- // permissions described in the GCC Runtime Library Exception, version
- // 3.1, as published by the Free Software Foundation.
-
- // You should have received a copy of the GNU General Public License and
- // a copy of the GCC Runtime Library Exception along with this program;
- // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- // <http://www.gnu.org/licenses/>.
-
- /** @file bits/exception.h
- * This is an internal header file, included by other library headers.
- * Do not attempt to use it directly.
- */
-
- #ifndef __EXCEPTION_H
- #define __EXCEPTION_H 1
-
- #pragma GCC system_header
-
- #pragma GCC visibility push(default)
-
- #include <bits/c++config.h>
-
- extern "C++" {
-
- namespace std
- {
- /**
- * @defgroup exceptions Exceptions
- * @ingroup diagnostics
- *
- * Classes and functions for reporting errors via exception classes.
- * @{
- */
-
- /**
- * @brief Base class for all library exceptions.
- *
- * This is the base class for all exceptions thrown by the standard
- * library, and by certain language expressions. You are free to derive
- * your own %exception classes, or use a different hierarchy, or to
- * throw non-class data (e.g., fundamental types).
- */
- class exception
- {
- public:
- exception() _GLIBCXX_NOTHROW { }
- virtual ~exception() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
- #if __cplusplus >= 201103L
- exception(const exception&) = default;
- exception& operator=(const exception&) = default;
- exception(exception&&) = default;
- exception& operator=(exception&&) = default;
- #endif
-
- /** Returns a C-style character string describing the general cause
- * of the current error. */
- virtual const char*
- what() const _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
- };
-
- } // namespace std
-
- }
-
- #pragma GCC visibility pop
-
- #endif
|