xref: /freebsd/contrib/libcxxrt/stdexcept.h (revision 7a984708)
17a984708SDavid Chisnall /**
27a984708SDavid Chisnall  * stdexcept.h - provides a stub version of <stdexcept>, which defines enough
37a984708SDavid Chisnall  * of the exceptions for the runtime to use.
47a984708SDavid Chisnall  */
57a984708SDavid Chisnall 
67a984708SDavid Chisnall namespace std
77a984708SDavid Chisnall {
87a984708SDavid Chisnall 
97a984708SDavid Chisnall 	class exception
107a984708SDavid Chisnall 	{
117a984708SDavid Chisnall 	public:
127a984708SDavid Chisnall 		exception() throw();
137a984708SDavid Chisnall 		exception(const exception&) throw();
147a984708SDavid Chisnall 		exception& operator=(const exception&) throw();
157a984708SDavid Chisnall 		virtual ~exception();
167a984708SDavid Chisnall 		virtual const char* what() const throw();
177a984708SDavid Chisnall 	};
187a984708SDavid Chisnall 
197a984708SDavid Chisnall 
207a984708SDavid Chisnall 	/**
217a984708SDavid Chisnall 	 * Bad allocation exception.  Thrown by ::operator new() if it fails.
227a984708SDavid Chisnall 	 */
237a984708SDavid Chisnall 	class bad_alloc: public exception
247a984708SDavid Chisnall 	{
257a984708SDavid Chisnall 	public:
267a984708SDavid Chisnall 		bad_alloc() throw();
277a984708SDavid Chisnall 		bad_alloc(const bad_alloc&) throw();
287a984708SDavid Chisnall 		bad_alloc& operator=(const bad_alloc&) throw();
297a984708SDavid Chisnall 		~bad_alloc();
307a984708SDavid Chisnall 		virtual const char* what() const throw();
317a984708SDavid Chisnall 	};
327a984708SDavid Chisnall 
337a984708SDavid Chisnall 	/**
347a984708SDavid Chisnall 	 * Bad cast exception.  Thrown by the __cxa_bad_cast() helper function.
357a984708SDavid Chisnall 	 */
367a984708SDavid Chisnall 	class bad_cast: public exception {
377a984708SDavid Chisnall 	public:
387a984708SDavid Chisnall 		bad_cast() throw();
397a984708SDavid Chisnall 		bad_cast(const bad_cast&) throw();
407a984708SDavid Chisnall 		bad_cast& operator=(const bad_cast&) throw();
417a984708SDavid Chisnall 		virtual ~bad_cast();
427a984708SDavid Chisnall 		virtual const char* what() const throw();
437a984708SDavid Chisnall 	};
447a984708SDavid Chisnall 
457a984708SDavid Chisnall 	/**
467a984708SDavid Chisnall 	 * Bad typeidexception.  Thrown by the __cxa_bad_typeid() helper function.
477a984708SDavid Chisnall 	 */
487a984708SDavid Chisnall 	class bad_typeid: public exception
497a984708SDavid Chisnall 	{
507a984708SDavid Chisnall 	public:
517a984708SDavid Chisnall 		bad_typeid() throw();
527a984708SDavid Chisnall 		bad_typeid(const bad_typeid &__rhs) throw();
537a984708SDavid Chisnall 		virtual ~bad_typeid();
547a984708SDavid Chisnall 		bad_typeid& operator=(const bad_typeid &__rhs) throw();
557a984708SDavid Chisnall 		virtual const char* what() const throw();
567a984708SDavid Chisnall 	};
577a984708SDavid Chisnall 
587a984708SDavid Chisnall 
597a984708SDavid Chisnall 
607a984708SDavid Chisnall } // namespace std
617a984708SDavid Chisnall 
62