libstdc++
exception.h
Go to the documentation of this file.
1
// Exception Handling support header for -*- C++ -*-
2
3
// Copyright (C) 2016-2021 Free Software Foundation, Inc.
4
//
5
// This file is part of GCC.
6
//
7
// GCC is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 3, or (at your option)
10
// any later version.
11
//
12
// GCC is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
16
//
17
// Under Section 7 of GPL version 3, you are granted additional
18
// permissions described in the GCC Runtime Library Exception, version
19
// 3.1, as published by the Free Software Foundation.
20
21
// You should have received a copy of the GNU General Public License and
22
// a copy of the GCC Runtime Library Exception along with this program;
23
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24
// <http://www.gnu.org/licenses/>.
25
26
/** @file bits/exception.h
27
* This is an internal header file, included by other library headers.
28
* Do not attempt to use it directly.
29
*/
30
31
#ifndef __EXCEPTION_H
32
#define __EXCEPTION_H 1
33
34
#pragma GCC system_header
35
36
#pragma GCC visibility push(default)
37
38
#include <
bits/c++config.h
>
39
40
extern
"C++"
{
41
42
namespace
std
43
{
44
/**
45
* @defgroup exceptions Exceptions
46
* @ingroup diagnostics
47
* @since C++98
48
*
49
* Classes and functions for reporting errors via exceptions.
50
* @{
51
*/
52
53
/**
54
* @brief Base class for all library exceptions.
55
*
56
* This is the base class for all exceptions thrown by the standard
57
* library, and by certain language expressions. You are free to derive
58
* your own %exception classes, or use a different hierarchy, or to
59
* throw non-class data (e.g., fundamental types).
60
*/
61
class
exception
62
{
63
public
:
64
exception
()
_GLIBCXX_NOTHROW
{ }
65
virtual
~exception
() _GLIBCXX_TXN_SAFE_DYN
_GLIBCXX_NOTHROW
;
66
#if __cplusplus >= 201103L
67
exception
(
const
exception
&) =
default
;
68
exception
& operator=(
const
exception
&) =
default
;
69
exception
(
exception
&&) =
default
;
70
exception
& operator=(
exception
&&) =
default
;
71
#endif
72
73
/** Returns a C-style character string describing the general cause
74
* of the current error. */
75
virtual
const
char
*
76
what
()
const
_GLIBCXX_TXN_SAFE_DYN
_GLIBCXX_NOTHROW
;
77
};
78
79
/// @}
80
81
}
// namespace std
82
83
}
84
85
#pragma GCC visibility pop
86
87
#endif
c++config.h
std
ISO C++ entities toplevel namespace is std.
std::exception
Base class for all library exceptions.
Definition
exception.h:62
std::exception::what
virtual const char * what() const noexcept
std::auto_ptr_ref
Definition
auto_ptr.h:49
bits
exception.h
Generated by
1.9.8