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