1
/*
2
 * Copyright (c) 1996,1997
3
 * Silicon Graphics Computer Systems, Inc.
4
 *
5
 * Copyright (c) 1999
6
 * Boris Fomitchev
7
 *
8
 * This material is provided "as is", with absolutely no warranty expressed
9
 * or implied. Any use is at your own risk.
10
 *
11
 * Permission to use or copy this software for any purpose is hereby granted
12
 * without fee, provided the above notices are retained on all copies.
13
 * Permission to modify the code and to distribute modified code is granted,
14
 * provided the above notices are retained, and a notice that the code was
15
 * modified is included with the above copyright notice.
16
 *
17
 */
18
19
#ifndef _STLP_STDEXCEPT
20
#define _STLP_STDEXCEPT
21
22
#  if !defined (_STLP_OUTERMOST_HEADER_ID)
23
#    define _STLP_OUTERMOST_HEADER_ID 0x63
24
#    include <stl/_prolog.h>
25
#  endif
26
27
#ifndef _STLP_INTERNAL_STDEXCEPT_BASE
28
#  include <stl/_stdexcept_base.h>
29
#endif
30
31
_STLP_BEGIN_NAMESPACE
32
33
class _STLP_CLASS_DECLSPEC logic_error : public __Named_exception {
34
public:
35
  logic_error(const string& __s) : __Named_exception(__s) {}
36
#    ifndef _STLP_USE_NO_IOSTREAMS
37
  ~logic_error() _STLP_NOTHROW_INHERENTLY;
38
#    endif
39
};
40
41
class _STLP_CLASS_DECLSPEC runtime_error : public __Named_exception {
42
public:
43
  runtime_error(const string& __s) : __Named_exception(__s) {}
44
#    ifndef _STLP_USE_NO_IOSTREAMS
45
  ~runtime_error() _STLP_NOTHROW_INHERENTLY;
46
#    endif
47
};
48
49
class _STLP_CLASS_DECLSPEC domain_error : public logic_error {
50
public:
51
  domain_error(const string& __arg) : logic_error(__arg) {}
52
#    ifndef _STLP_USE_NO_IOSTREAMS
53
  ~domain_error() _STLP_NOTHROW_INHERENTLY;
54
#    endif
55
};
56
57
class _STLP_CLASS_DECLSPEC invalid_argument : public logic_error {
58
public:
59
  invalid_argument(const string& __arg) : logic_error(__arg) {}
60
#    ifndef _STLP_USE_NO_IOSTREAMS
61
  ~invalid_argument() _STLP_NOTHROW_INHERENTLY;
62
#    endif
63
};
64
65
class _STLP_CLASS_DECLSPEC length_error : public logic_error {
66
public:
67
  length_error(const string& __arg) : logic_error(__arg) {}
68
#    ifndef _STLP_USE_NO_IOSTREAMS
69
  ~length_error() _STLP_NOTHROW_INHERENTLY;
70
#    endif
71
};
72
73
class _STLP_CLASS_DECLSPEC out_of_range : public logic_error {
74
public:
75
  out_of_range(const string& __arg) : logic_error(__arg) {}
76
#    ifndef _STLP_USE_NO_IOSTREAMS
77
  ~out_of_range() _STLP_NOTHROW_INHERENTLY;
78
#    endif
79
};
80
81
class _STLP_CLASS_DECLSPEC range_error : public runtime_error {
82
public:
83
  range_error(const string& __arg) : runtime_error(__arg) {}
84
#    ifndef _STLP_USE_NO_IOSTREAMS
85
  ~range_error() _STLP_NOTHROW_INHERENTLY;
86
#    endif
87
};
88
89
class _STLP_CLASS_DECLSPEC overflow_error : public runtime_error {
90
public:
91
  overflow_error(const string& __arg) : runtime_error(__arg) {}
92
#    ifndef _STLP_USE_NO_IOSTREAMS
93
  ~overflow_error() _STLP_NOTHROW_INHERENTLY;
94
#    endif
95
};
96
97
class _STLP_CLASS_DECLSPEC underflow_error : public runtime_error {
98
public:
99
  underflow_error(const string& __arg) : runtime_error(__arg) {}
100
#    ifndef _STLP_USE_NO_IOSTREAMS
101
  ~underflow_error() _STLP_NOTHROW_INHERENTLY;
102
#    endif
103
};
104
105
_STLP_END_NAMESPACE
106
107
#  if (_STLP_OUTERMOST_HEADER_ID == 0x63)
108
#    include <stl/_epilog.h>
109
#    undef _STLP_OUTERMOST_HEADER_ID
110
#  endif
111
112
#endif /* _STLP_STDEXCEPT */
113
114
// Local Variables:
115
// mode:C++
116
// End: