]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libcxxrt/stdexcept.h
Import libc++ / libcxxrt into base. Not build by default yet (use
[FreeBSD/FreeBSD.git] / contrib / libcxxrt / stdexcept.h
1 /**
2  * stdexcept.h - provides a stub version of <stdexcept>, which defines enough
3  * of the exceptions for the runtime to use.  
4  */
5
6 namespace std
7 {
8
9         class exception
10         {
11         public:
12                 exception() throw();
13                 exception(const exception&) throw();
14                 exception& operator=(const exception&) throw();
15                 virtual ~exception();
16                 virtual const char* what() const throw();
17         };
18
19
20         /**
21          * Bad allocation exception.  Thrown by ::operator new() if it fails.
22          */
23         class bad_alloc: public exception
24         {
25         public:
26                 bad_alloc() throw();
27                 bad_alloc(const bad_alloc&) throw();
28                 bad_alloc& operator=(const bad_alloc&) throw();
29                 ~bad_alloc();
30                 virtual const char* what() const throw();
31         };
32
33         /**
34          * Bad cast exception.  Thrown by the __cxa_bad_cast() helper function.
35          */
36         class bad_cast: public exception {
37         public:
38                 bad_cast() throw();
39                 bad_cast(const bad_cast&) throw();
40                 bad_cast& operator=(const bad_cast&) throw();
41                 virtual ~bad_cast();
42                 virtual const char* what() const throw();
43         };
44
45         /**
46          * Bad typeidexception.  Thrown by the __cxa_bad_typeid() helper function.
47          */
48         class bad_typeid: public exception
49         {
50         public:
51                 bad_typeid() throw();
52                 bad_typeid(const bad_typeid &__rhs) throw();
53                 virtual ~bad_typeid();
54                 bad_typeid& operator=(const bad_typeid &__rhs) throw();
55                 virtual const char* what() const throw();
56         };
57
58
59
60 } // namespace std
61