⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stl_config.h

📁 STL完整源码,实现STL文件的读写和三维体的重建及其分析
💻 H
字号:
/* * * Copyright (c) 1994 * Hewlett-Packard Company * * 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.  Hewlett-Packard Company makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. * * Copyright (c) 1997 * 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_CONFIG_H# define __STL_CONFIG_H// What this file does.//  (1)  Defines bool, true, and false if the compiler doesn't do so already.//  (2)  Defines __STL_NO_DRAND48 if the compiler's standard library does//       not support the drand48() function.//  (3)  Defines __STL_STATIC_TEMPLATE_MEMBER_BUG if the compiler can't //       handle static members of template classes.//  (4)  Defines 'typename' as a null macro if the compiler does not support//       the typename keyword.//  (5)  Defines __STL_CLASS_PARTIAL_SPECIALIZATION if the compiler //       supports partial specialization of class templates.//  (6)  Defines __STL_FUNCTION_TMPL_PARTIAL_ORDER if the compiler supports//       partial ordering of function templates (a.k.a partial specialization//       of function templates.//  (7)  Defines __STL_EXPLICIT_FUNCTION_TMPL_ARGS if the compiler//       supports calling a function template by providing its template//       arguments explicitly.//  (8)  Defines __STL_MEMBER_TEMPLATES if the compiler supports//       template members of classes.//  (9)  Defines 'explicit' as a null macro if the compiler does not support//       the explicit keyword.    //  (10) Defines __STL_LIMITED_DEFAULT_TEMPLATES if the compiler is//       unable to handle default template parameters that depend on//       previous template parameters.//  (11) Defines __STL_NON_TYPE_TMPL_PARAM_BUG if the compiler has //       trouble performing function template argument deduction for//       non-type template parameters.//  (12) Defines __SGI_STL_NO_ARROW_OPERATOR if the compiler is unable//       to support the -> operator for iterators.//  (13) Defines __STL_USE_EXCEPTIONS if the compiler (in the current//       compilation mode) supports exceptions.//  (14) Define __STL_USE_NAMESPACES if we're putting the STL into a //       namespace.  //  (15) Defines __STL_SGI_THREADS if this is being compiled on an SGI//       compiler, and if the user hasn't selected pthreads or no threads//       instead.//  (16) Defines __STL_WIN32THREADS if this is being compiled on a //       WIN32 compiler in multithreaded mode.//  (17) Define namespace-related macros (__STD, __STL_BEGIN_NAMESPACE, etc.)//       apropriately.//  (18) Define exception-related macros (__STL_TRY, __STL_UNWIND, etc.)//       appropriately.//  (19) Defines __stl_assert either as a test or as a null macro,//       depending on whether or not __STL_ASSERTIONS is defined.#ifdef _PTHREADS#   define __STL_PTHREADS#endif# if defined(__sgi) && !defined(__GNUC__)#   if !defined(_BOOL)#     define __STL_NEED_BOOL#   endif#   if !defined(_TYPENAME_IS_KEYWORD)#     define __STL_NEED_TYPENAME#   endif#   ifdef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES#     define __STL_CLASS_PARTIAL_SPECIALIZATION#   endif#   ifdef _MEMBER_TEMPLATES#     define __STL_MEMBER_TEMPLATES#   endif#   if !defined(_EXPLICIT_IS_KEYWORD)#     define __STL_NEED_EXPLICIT#   endif#   ifdef __EXCEPTIONS#     define __STL_USE_EXCEPTIONS#   endif#   if (_COMPILER_VERSION >= 721) && defined(_NAMESPACES)#     define __STL_USE_NAMESPACES#   endif #   if !defined(_NOTHREADS) && !defined(__STL_PTHREADS)#     define __STL_SGI_THREADS#   endif# endif# ifdef __GNUC__#   include <_G_config.h>#   if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)#     define __STL_STATIC_TEMPLATE_MEMBER_BUG#     define __STL_NEED_TYPENAME#     define __STL_NEED_EXPLICIT#   else#     define __STL_CLASS_PARTIAL_SPECIALIZATION#     define __STL_FUNCTION_TMPL_PARTIAL_ORDER#     define __STL_EXPLICIT_FUNCTION_TMPL_ARGS#     define __STL_MEMBER_TEMPLATES#   endif    /* glibc pre 2.0 is very buggy. We have to disable thread for it.       It should be upgraded to glibc 2.0 or later. */#   if !defined(_NOTHREADS) && __GLIBC__ >= 2 && defined(_G_USING_THUNKS)#     define __STL_PTHREADS#   endif#   ifdef __EXCEPTIONS#     define __STL_USE_EXCEPTIONS#   endif# endif# if defined(__SUNPRO_CC) #   define __STL_NEED_BOOL#   define __STL_NEED_TYPENAME#   define __STL_NEED_EXPLICIT#   define __STL_USE_EXCEPTIONS# endif# if defined(__COMO__)#   define __STL_MEMBER_TEMPLATES#   define __STL_CLASS_PARTIAL_SPECIALIZATION#   define __STL_USE_EXCEPTIONS#   define __STL_USE_NAMESPACES# endif# if defined(_MSC_VER)#   if _MSC_VER > 1000#     include <yvals.h>#   else#     define __STL_NEED_BOOL#   endif#   define __STL_NO_DRAND48#   define __STL_NEED_TYPENAME#   if _MSC_VER < 1100#     define __STL_NEED_EXPLICIT#   endif#   define __STL_NON_TYPE_TMPL_PARAM_BUG#   define __SGI_STL_NO_ARROW_OPERATOR#   ifdef _CPPUNWIND#     define __STL_USE_EXCEPTIONS#   endif#   ifdef _MT#     define __STL_WIN32THREADS#   endif# endif# if defined(__BORLANDC__)#   define __STL_NO_DRAND48#   define __STL_NEED_TYPENAME#   define __STL_LIMITED_DEFAULT_TEMPLATES#   define __SGI_STL_NO_ARROW_OPERATOR#   define __STL_NON_TYPE_TMPL_PARAM_BUG#   ifdef _CPPUNWIND#     define __STL_USE_EXCEPTIONS#   endif#   ifdef __MT__#     define __STL_WIN32THREADS#   endif# endif# if defined(__STL_NEED_BOOL)    typedef int bool;#   define true 1#   define false 0# endif# ifdef __STL_NEED_TYPENAME#   define typename# endif# ifdef __STL_NEED_EXPLICIT#   define explicit# endif# ifdef __STL_EXPLICIT_FUNCTION_TMPL_ARGS#   define __STL_NULL_TMPL_ARGS <># else#   define __STL_NULL_TMPL_ARGS# endif# ifdef __STL_CLASS_PARTIAL_SPECIALIZATION#   define __STL_TEMPLATE_NULL template<># else#   define __STL_TEMPLATE_NULL# endif// __STL_NO_NAMESPACES is a hook so that users can disable namespaces// without having to edit library headers.# if defined(__STL_USE_NAMESPACES) && !defined(__STL_NO_NAMESPACES)#   define __STD std#   define __STL_BEGIN_NAMESPACE namespace std {#   define __STL_END_NAMESPACE }#   define  __STL_USE_NAMESPACE_FOR_RELOPS#   define __STL_BEGIN_RELOPS_NAMESPACE namespace std {#   define __STL_END_RELOPS_NAMESPACE }#   define __STD_RELOPS std# else#   define __STD #   define __STL_BEGIN_NAMESPACE #   define __STL_END_NAMESPACE #   undef  __STL_USE_NAMESPACE_FOR_RELOPS#   define __STL_BEGIN_RELOPS_NAMESPACE #   define __STL_END_RELOPS_NAMESPACE #   define __STD_RELOPS # endif# ifdef __STL_USE_EXCEPTIONS#   define __STL_TRY try#   define __STL_CATCH_ALL catch(...)#   define __STL_RETHROW throw#   define __STL_NOTHROW throw()#   define __STL_UNWIND(action) catch(...) { action; throw; }# else#   define __STL_TRY #   define __STL_CATCH_ALL if (false)#   define __STL_RETHROW #   define __STL_NOTHROW #   define __STL_UNWIND(action) # endif#ifdef __STL_ASSERTIONS# include <stdio.h># define __stl_assert(expr) \    if (!(expr)) { fprintf(stderr, "%s:%d STL assertion failure: %s\n", \			  __FILE__, __LINE__, # expr); abort(); }#else# define __stl_assert(expr)#endif#endif /* __STL_CONFIG_H */// Local Variables:// mode:C++// End:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -