stl_rang.h
资源名称:STL_doc.rar [点击查看]
上传用户:nizebo
上传日期:2022-05-14
资源大小:882k
文件大小:2k
源码类别:
STL
开发平台:
Visual C++
- /*
- * Copyright (c) 1999
- * Silicon Graphics
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
- #ifndef __STL_RANGE_ERRORS_H
- #define __STL_RANGE_ERRORS_H
- // A few places in the STL throw range errors, using standard exception
- // classes defined in <stdexcept>. This header file provides functions
- // to throw those exception objects.
- // __STL_DONT_THROW_RANGE_ERRORS is a hook so that users can disable
- // this exception throwing.
- #include <stl_config.h>
- #if defined(__STL_CAN_THROW_RANGE_ERRORS) &&
- defined(__STL_USE_EXCEPTIONS) &&
- !defined(__STL_DONT_THROW_RANGE_ERRORS)
- # define __STL_THROW_RANGE_ERRORS
- #endif
- // For the SGI 7.3 compiler, declare these functions here and define them
- // elsewhere.
- #if defined(__STL_THROW_RANGE_ERRORS) &&
- defined(__sgi) && !defined(__GNUC__) &&
- _COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)
- __STL_BEGIN_NAMESPACE
- void __stl_throw_range_error(const char* __msg);
- void __stl_throw_length_error(const char* __msg);
- __STL_END_NAMESPACE
- // For other compilers where we're throwing range errors, include the
- // stdexcept header and throw the appropriate exceptions directly.
- #elif defined(__STL_THROW_RANGE_ERRORS)
- #include <stdexcept>
- __STL_BEGIN_NAMESPACE
- inline void __stl_throw_range_error(const char* __msg)
- { throw range_error(__msg); }
- inline void __stl_throw_length_error(const char* __msg)
- { throw length_error(__msg); }
- __STL_END_NAMESPACE
- // Otherwise, define inline functions that do nothing.
- #else
- __STL_BEGIN_NAMESPACE
- inline void __stl_throw_range_error(const char*) {}
- inline void __stl_throw_length_error(const char*) {}
- __STL_END_NAMESPACE
- #endif
- #endif /* __STL_RANGE_ERRORS_H */
- // Local Variables:
- // mode:C++
- // End: