Home | History | Annotate | Download | only in stl
      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_INTERNAL_STDEXCEPT
     20 #define _STLP_INTERNAL_STDEXCEPT
     21 
     22 #ifndef _STLP_INTERNAL_STDEXCEPT_BASE
     23 #  include <stl/_stdexcept_base.h>
     24 #endif
     25 
     26 #if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE)
     27 
     28 #  if defined(_STLP_USE_EXCEPTIONS) || \
     29     !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32))
     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 #  endif
    108 #endif
    109 
    110 #endif /* _STLP_INTERNAL_STDEXCEPT */
    111