stl_rang.h
上传用户:nizebo
上传日期:2022-05-14
资源大小:882k
文件大小:2k
源码类别:

STL

开发平台:

Visual C++

  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. #ifndef __STL_RANGE_ERRORS_H
  15. #define __STL_RANGE_ERRORS_H
  16. // A few places in the STL throw range errors, using standard exception
  17. // classes defined in <stdexcept>.  This header file provides functions
  18. // to throw those exception objects.
  19. // __STL_DONT_THROW_RANGE_ERRORS is a hook so that users can disable
  20. // this exception throwing.
  21. #include <stl_config.h>
  22. #if defined(__STL_CAN_THROW_RANGE_ERRORS) && 
  23.     defined(__STL_USE_EXCEPTIONS) && 
  24.     !defined(__STL_DONT_THROW_RANGE_ERRORS)
  25. # define __STL_THROW_RANGE_ERRORS
  26. #endif
  27. // For the SGI 7.3 compiler, declare these functions here and define them
  28. // elsewhere.
  29. #if defined(__STL_THROW_RANGE_ERRORS) && 
  30.     defined(__sgi) && !defined(__GNUC__) && 
  31.     _COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)
  32. __STL_BEGIN_NAMESPACE
  33. void __stl_throw_range_error(const char* __msg);
  34. void __stl_throw_length_error(const char* __msg);
  35. __STL_END_NAMESPACE
  36. // For other compilers where we're throwing range errors, include the
  37. // stdexcept header and throw the appropriate exceptions directly.
  38. #elif defined(__STL_THROW_RANGE_ERRORS)
  39. #include <stdexcept>
  40. __STL_BEGIN_NAMESPACE
  41. inline void __stl_throw_range_error(const char* __msg) 
  42.   { throw range_error(__msg); }
  43. inline void __stl_throw_length_error(const char* __msg)
  44.   { throw length_error(__msg); }
  45. __STL_END_NAMESPACE
  46. // Otherwise, define inline functions that do nothing.
  47. #else 
  48. __STL_BEGIN_NAMESPACE
  49. inline void __stl_throw_range_error(const char*) {}
  50. inline void __stl_throw_length_error(const char*) {}
  51. __STL_END_NAMESPACE
  52. #endif
  53. #endif /* __STL_RANGE_ERRORS_H */
  54. // Local Variables:
  55. // mode:C++
  56. // End: