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