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