📄 stl_config.h
字号:
# define __STL_NO_BOOL# define __STL_NEED_TYPENAME# define __STL_NEED_EXPLICIT# define __STL_USE_EXCEPTIONS# ifdef _REENTRANT# define __STL_PTHREADS# endif# define __SGI_STL_NO_ARROW_OPERATOR# define __STL_PARTIAL_SPECIALIZATION_SYNTAX# define __STL_NO_EXCEPTION_HEADER# define __STL_NO_BAD_ALLOC# endif# if defined(__COMO__)# define __STL_MEMBER_TEMPLATES# define __STL_MEMBER_TEMPLATE_CLASSES# define __STL_TEMPLATE_FRIENDS# define __STL_CLASS_PARTIAL_SPECIALIZATION# define __STL_USE_EXCEPTIONS# define __STL_HAS_NAMESPACES# endif// Intel compiler, which uses the EDG front end.# if defined(__ICL)# define __STL_LONG_LONG # define __STL_MEMBER_TEMPLATES# define __STL_MEMBER_TEMPLATE_CLASSES# define __STL_TEMPLATE_FRIENDS# define __STL_FUNCTION_TMPL_PARTIAL_ORDER# define __STL_CLASS_PARTIAL_SPECIALIZATION# define __STL_NO_DRAND48# define __STL_HAS_NAMESPACES# define __STL_USE_EXCEPTIONS# define __STL_MEMBER_TEMPLATE_KEYWORD# ifdef _CPPUNWIND# define __STL_USE_EXCEPTIONS# endif# ifdef _MT# define __STL_WIN32THREADS# endif# endif// Mingw32, egcs compiler using the Microsoft C runtime# if defined(__MINGW32__)# define __STL_NO_DRAND48# ifdef _MT# define __STL_WIN32THREADS# endif# endif// Cygwin32, egcs compiler on MS Windows# if defined(__CYGWIN__)# define __STL_NO_DRAND48# endif// Microsoft compiler.# if defined(_MSC_VER) && !defined(__ICL) && !defined(__MWERKS__)# define __STL_NO_DRAND48# define __STL_STATIC_CONST_INIT_BUG
//# if _MSC_VER < 1200# define __STL_NEED_TYPENAME
//# endif# define __STL_NO_USING_CLAUSE_IN_CLASS# define __STL_NO_FRIEND_TEMPLATE_CLASS# if _MSC_VER < 1100 /* 1000 is version 4.0, 1100 is 5.0, 1200 is 6.0. */# define __STL_NEED_EXPLICIT# define __STL_NO_BOOL# define __STL_NO_BAD_ALLOC# endif# if _MSC_VER > 1000# ifndef UNDER_CE
# include <yvals.h>
# endif
# define __STL_DONT_USE_BOOL_TYPEDEF# endif# define __STL_NON_TYPE_TMPL_PARAM_BUG# define __SGI_STL_NO_ARROW_OPERATOR# define __STL_DEFAULT_CONSTRUCTOR_BUG# ifdef _CPPUNWIND# define __STL_USE_EXCEPTIONS# endif# ifdef UNDER_CE
# undef __STL_USE_EXCEPTIONS //Make sure no exception syntax used
# endif
# ifdef _MT# define __STL_WIN32THREADS# endif# if _MSC_VER >= 1200# define __STL_PARTIAL_SPECIALIZATION_SYNTAX# define __STL_HAS_NAMESPACES# define __STL_CAN_THROW_RANGE_ERRORS# define NOMINMAX# undef min# undef max// disable warning 'initializers put in unrecognized initialization area'# pragma warning ( disable : 4075 )// disable warning 'empty controlled statement found'# pragma warning ( disable : 4390 )// disable warning 'debug symbol greater than 255 chars'# pragma warning ( disable : 4786 )# endif# if (_MSC_VER < 1100)# define __STL_NO_EXCEPTION_HEADER# define __STL_NO_BAD_ALLOC# endif# if defined UNDER_CE
# define __STL_NO_EXCEPTION_HEADER
# endif
// Because of a Microsoft front end bug, we must not provide a // namespace qualifier when declaring a friend function.# define __STD_QUALIFIER# endif# if defined(__BORLANDC__)# define __STL_NO_BAD_ALLOC# define __STL_NO_DRAND48# define __STL_DEFAULT_CONSTRUCTOR_BUG# if __BORLANDC__ >= 0x540 /* C++ Builder 4.0 */# define __STL_CLASS_PARTIAL_SPECIALIZATION# define __STL_FUNCTION_TMPL_PARTIAL_ORDER# define __STL_EXPLICIT_FUNCTION_TMPL_ARGS# define __STL_MEMBER_TEMPLATES# define __STL_TEMPLATE_FRIENDS# else# define __STL_NEED_TYPENAME# define __STL_LIMITED_DEFAULT_TEMPLATES# define __SGI_STL_NO_ARROW_OPERATOR# define __STL_NON_TYPE_TMPL_PARAM_BUG# endif# ifdef _CPPUNWIND# define __STL_USE_EXCEPTIONS# endif# ifdef __MT__# define __STL_WIN32THREADS# endif# endif# if defined(__STL_NO_BOOL) && !defined(__STL_DONT_USE_BOOL_TYPEDEF) typedef int bool;# define true 1# define false 0# endif# ifdef __STL_NEED_TYPENAME# define typename# endif# ifdef __STL_LIMITED_DEFAULT_TEMPLATES# define __STL_DEPENDENT_DEFAULT_TMPL(_Tp)# else# define __STL_DEPENDENT_DEFAULT_TMPL(_Tp) = _Tp# endif# ifdef __STL_MEMBER_TEMPLATE_KEYWORD# define __STL_TEMPLATE template# else# define __STL_TEMPLATE# 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# if defined(__STL_CLASS_PARTIAL_SPECIALIZATION) \ || defined (__STL_PARTIAL_SPECIALIZATION_SYNTAX)# define __STL_TEMPLATE_NULL template<># else# define __STL_TEMPLATE_NULL# endif// Use standard-conforming allocators if we have the necessary language// features. __STL_USE_SGI_ALLOCATORS is a hook so that users can // disable new-style allocators, and continue to use the same kind of// allocators as before, without having to edit library headers.# if defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && \ defined(__STL_MEMBER_TEMPLATES) && \ defined(__STL_MEMBER_TEMPLATE_CLASSES) && \ !defined(__STL_NO_BOOL) && \ !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) && \ !defined(__STL_LIMITED_DEFAULT_TEMPLATES) && \ !defined(__STL_USE_SGI_ALLOCATORS) # define __STL_USE_STD_ALLOCATORS# endif# ifndef __STL_DEFAULT_ALLOCATOR# ifdef __STL_USE_STD_ALLOCATORS# define __STL_DEFAULT_ALLOCATOR(T) allocator< T ># else# define __STL_DEFAULT_ALLOCATOR(T) alloc# endif# endif// __STL_NO_NAMESPACES is a hook so that users can disable namespaces// without having to edit library headers. __STL_NO_RELOPS_NAMESPACE is// a hook so that users can disable the std::rel_ops namespace, keeping // the relational operator template in namespace std, without having to // edit library headers.# if defined(__STL_HAS_NAMESPACES) && !defined(__STL_NO_NAMESPACES)# define __STL_USE_NAMESPACES# define __STD std# define __STL_BEGIN_NAMESPACE namespace std {# define __STL_END_NAMESPACE }# if defined(__STL_FUNCTION_TMPL_PARTIAL_ORDER) && \ !defined(__STL_NO_RELOPS_NAMESPACE)# define __STL_USE_NAMESPACE_FOR_RELOPS# define __STL_BEGIN_RELOPS_NAMESPACE namespace std { namespace rel_ops {# define __STL_END_RELOPS_NAMESPACE } }# define __STD_RELOPS std::rel_ops# else /* Use std::rel_ops namespace */# define __STL_USE_NAMESPACE_FOR_RELOPS# define __STL_BEGIN_RELOPS_NAMESPACE namespace std {# define __STL_END_RELOPS_NAMESPACE }# define __STD_RELOPS std# endif /* Use std::rel_ops namespace */# 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 # undef __STL_USE_NAMESPACES# endif// Some versions of the EDG front end sometimes require an explicit// namespace spec where they shouldn't. This macro facilitates that.// If the bug becomes irrelevant, then all uses of __STD_QUALIFIER// should be removed. The 7.3 beta SGI compiler has this bug, but the// MR version is not expected to have it.# if defined(__STL_USE_NAMESPACES) && !defined(__STD_QUALIFIER)# define __STD_QUALIFIER std::# else# define __STD_QUALIFIER# endif# ifdef __STL_USE_EXCEPTIONS# define __STL_TRY try# define __STL_CATCH_ALL catch(...)# define __STL_THROW(x) throw x# 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_THROW(x) # define __STL_RETHROW # define __STL_NOTHROW # define __STL_UNWIND(action) # endif#ifdef __STL_ASSERTIONS#ifndef UNDER_CE
# include <stdio.h># define __stl_assert(expr) \ if (!(expr)) { fprintf(stderr, "%s:%d STL assertion failure: %s\n", \ __FILE__, __LINE__, # expr); abort(); }
#else //UNDER_CE
#include <wce_defs.h>
# define __stl_assert(expr) assert(expr);
#endif //UNDER_CE#else# define __stl_assert(expr)#endif#if defined(__STL_WIN32THREADS) || defined(__STL_SGI_THREADS) \ || defined(__STL_PTHREADS) || defined(__STL_UITHREADS)# define __STL_THREADS# define __STL_VOLATILE volatile#else# define __STL_VOLATILE#endif#if defined(__STL_CLASS_PARTIAL_SPECIALIZATION) \ && defined(__STL_MEMBER_TEMPLATES) \ && !defined(_STL_NO_CONCEPT_CHECKS)# define __STL_USE_CONCEPT_CHECKS#endif#endif /* __STL_CONFIG_H */// Local Variables:// mode:C++// End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -