Home | History | Annotate | Download | only in stl
      1 /*
      2  * Copyright (c) 1999
      3  * Silicon Graphics
      4  *
      5  * Permission to use, copy, modify, distribute and sell this software
      6  * and its documentation for any purpose is hereby granted without fee,
      7  * provided that the above copyright notice appear in all copies and
      8  * that both that copyright notice and this permission notice appear
      9  * in supporting documentation.  Silicon Graphics makes no
     10  * representations about the suitability of this software for any
     11  * purpose.  It is provided "as is" without express or implied warranty.
     12  *
     13  */
     14 
     15 #ifndef _STLP_RANGE_ERRORS_H
     16 #define _STLP_RANGE_ERRORS_H
     17 
     18 // A few places in the STL throw range errors, using standard exception
     19 // classes defined in <stdexcept>.  This header file provides functions
     20 // to throw those exception objects.
     21 
     22 // _STLP_DONT_THROW_RANGE_ERRORS is a hook so that users can disable
     23 // this exception throwing.
     24 #if defined (_STLP_CAN_THROW_RANGE_ERRORS) && defined (_STLP_USE_EXCEPTIONS) && \
     25    !defined (_STLP_DONT_THROW_RANGE_ERRORS)
     26 #  define _STLP_THROW_RANGE_ERRORS
     27 #endif
     28 
     29 // For the STLport iostreams, only declaration here, definition is in the lib
     30 #if !defined (_STLP_USE_NO_IOSTREAMS) && !defined (_STLP_EXTERN_RANGE_ERRORS)
     31 #  define _STLP_EXTERN_RANGE_ERRORS
     32 #endif
     33 
     34 _STLP_BEGIN_NAMESPACE
     35 void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_runtime_error(const char* __msg);
     36 void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_range_error(const char* __msg);
     37 void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg);
     38 void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_length_error(const char* __msg);
     39 void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg);
     40 void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_overflow_error(const char* __msg);
     41 
     42 #if defined (__DMC__) && !defined (_STLP_NO_EXCEPTIONS)
     43 #   pragma noreturn(__stl_throw_runtime_error)
     44 #   pragma noreturn(__stl_throw_range_error)
     45 #   pragma noreturn(__stl_throw_out_of_range)
     46 #   pragma noreturn(__stl_throw_length_error)
     47 #   pragma noreturn(__stl_throw_invalid_argument)
     48 #   pragma noreturn(__stl_throw_overflow_error)
     49 #endif
     50 _STLP_END_NAMESPACE
     51 
     52 #if !defined (_STLP_EXTERN_RANGE_ERRORS)
     53 #  include <stl/_range_errors.c>
     54 #endif
     55 
     56 #endif /* _STLP_RANGE_ERRORS_H */
     57 
     58 // Local Variables:
     59 // mode:C++
     60 // End:
     61