libstdc++
exception.h
Go to the documentation of this file.
1
// Exception Handling support header for -*- C++ -*-
2
3
// Copyright (C) 2016-2020 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
*
48
* Classes and functions for reporting errors via exception classes.
49
* @{
50
*/
51
52
/**
53
* @brief Base class for all library exceptions.
54
*
55
* This is the base class for all exceptions thrown by the standard
56
* library, and by certain language expressions. You are free to derive
57
* your own %exception classes, or use a different hierarchy, or to
58
* throw non-class data (e.g., fundamental types).
59
*/
60
class
exception
61
{
62
public
:
63
exception
() _GLIBCXX_NOTHROW { }
64
virtual
~
exception
() _GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
65
#if __cplusplus >= 201103L
66
exception
(
const
exception
&) =
default
;
67
exception
& operator=(
const
exception
&) =
default
;
68
exception
(
exception
&&) =
default
;
69
exception
& operator=(
exception
&&) =
default
;
70
#endif
71
72
/** Returns a C-style character string describing the general cause
73
* of the current error. */
74
virtual
const
char
*
75
what
()
const
_GLIBCXX_TXN_SAFE_DYN _GLIBCXX_NOTHROW;
76
};
77
78
}
// namespace std
79
80
}
81
82
#pragma GCC visibility pop
83
84
#endif
std::exception::what
virtual const char * what() const noexcept
std
ISO C++ entities toplevel namespace is std.
c++config.h
std::exception
Base class for all library exceptions.
Definition:
exception.h:60
include
bits
exception.h
Generated by
1.8.17