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 35void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_runtime_error(const char* __msg); 36void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_range_error(const char* __msg); 37void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg); 38void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_length_error(const char* __msg); 39void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg); 40void _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