📄 _gcc.h
字号:
#if (__GNUC__ < 3)
# define _STLP_HAS_NO_NEW_C_HEADERS 1
# define _STLP_VENDOR_GLOBAL_CSTD 1
# define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
# ifndef __HONOR_STD
# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1
# endif
/* egcs fails to initialize builtin types in expr. like this : new(p) char(); */
# define _STLP_DEF_CONST_PLCT_NEW_BUG 1
#endif
/*
#define _STLP_VENDOR_GLOBAL_CSTD 1
*/
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
# define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
# define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
# define _STLP_DEF_CONST_DEF_PARAM_BUG 1
#else
# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
#endif
#if (__GNUC_MINOR__ < 9) && (__GNUC__ < 3) /* gcc 2.8 */
# define _STLP_NO_TEMPLATE_CONVERSIONS
# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
# define _STLP_NO_FRIEND_TEMPLATES 1
# define _STLP_HAS_NO_NAMESPACES 1
# define _STLP_NO_METHOD_SPECIALIZATION 1
# define _STLP_NO_MEMBER_TEMPLATES 1
# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
/* DJGPP doesn't seem to implement it in 2.8.x */
# ifdef DJGPP
# define _STLP_NO_STATIC_TEMPLATE_DATA 1
# endif
#endif
#if __GNUC__ <= 2 && __GNUC_MINOR__ <= 7 && !defined (__CYGWIN32__)
/* Will it work with 2.6 ? I doubt it. */
# if ( __GNUC_MINOR__ < 6 )
__GIVE_UP_WITH_STL(GCC_272);
# endif
# define _STLP_NO_RELOPS_NAMESPACE
# define _STLP_NON_TYPE_TMPL_PARAM_BUG
# define _STLP_LIMITED_DEFAULT_TEMPLATES 1
# define _STLP_DEFAULT_TYPE_PARAM 1
# define _STLP_NO_BAD_ALLOC
# define _STLP_NO_ARROW_OPERATOR 1
# ifndef _STLP_NO_STATIC_TEMPLATE_DATA
# define _STLP_NO_STATIC_TEMPLATE_DATA
# endif
# define _STLP_STATIC_CONST_INIT_BUG 1
# define _STLP_NO_METHOD_SPECIALIZATION 1
# if !defined (__CYGWIN32__)
# define _STLP_NESTED_TYPE_PARAM_BUG 1
# define _STLP_BASE_MATCH_BUG 1
/* unused operators are required (forward) */
# define _STLP_CONST_CONSTRUCTOR_BUG
# define _STLP_NO_DEFAULT_NON_TYPE_PARAM
# endif
# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
# define _STLP_NO_EXCEPTION_HEADER 1
#else /* ! <= 2.7.* */
#endif /* ! <= 2.7.* */
/* static template data members workaround strategy for gcc tries
* to use weak symbols.
* if you don't want to use that, #define _STLP_WEAK_ATTRIBUTE=0 ( you'll
* have to put "#define __PUT_STATIC_DATA_MEMBERS_HERE" line in one of your
* compilation unit ( or CFLAGS for it ) _before_ including any STL header ).
*/
#if defined (_STLP_NO_STATIC_TEMPLATE_DATA) && ! defined (_STLP_WEAK_ATTRIBUTE )
/* systems using GNU ld or format that supports weak symbols
may use "weak" attribute
Linux & Solaris ( x86 & SPARC ) are being auto-recognized here */
# if defined(_STLP_GNU_LD) || defined(__ELF__) || defined (__CYGWIN__) || \
(( defined (__SVR4) || defined ( __svr4__ )) && \
( defined (sun) || defined ( __sun__ )))
# define _STLP_WEAK_ATTRIBUTE 1
# endif
#endif /* _STLP_WEAK_ATTRIBUTE */
/* strict ANSI prohibits "long long" ( gcc) */
#if defined ( __STRICT_ANSI__ )
# undef _STLP_LONG_LONG
/*
# define _STLP_STRICT_ANSI 1
*/
#endif
/*
#if !defined (__STRICT_ANSI__) || defined (__BUILDING_STLPORT)
# define _STLP_USE_TEMPLATE_EXPORT
# define _STLP_EXPORT_TEMPLATE_KEYWORD extern
# define _STLP_IMPORT_TEMPLATE_KEYWORD extern
#endif
*/
#ifndef __EXCEPTIONS
# undef _STLP_DONT_USE_EXCEPTIONS
# define _STLP_DONT_USE_EXCEPTIONS 1
#endif
#if (__GNUC__ >= 3)
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
# if ( (__GNUC__ == 3 ) && ((__GNUC_MINOR__ == 0) || ((__GNUC_MINOR__ < 3) && defined(__APPLE_CC__))))
# define _STLP_NATIVE_INCLUDE_PATH ../g++-v3
# else
# if ( ((__GNUC__ == 4 ) || (__GNUC_MINOR__ >= 3)) && defined(__APPLE_CC__))
# define _STLP_NATIVE_INCLUDE_PATH ../c++
/*
* Before version 3.4.0 the 0 patch level was not part of the include path:
*/
# elif defined (__GNUC_PATCHLEVEL__) && ((__GNUC_PATCHLEVEL__ > 0) || \
(__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ > 3))
# define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__
# else
# define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__
# endif
# endif
# endif
/* Instantiation scheme that used (default) in gcc 3 made void of sense explicit
instantiation within library: nothing except increased library size. - ptr
*/
# define _STLP_NO_FORCE_INSTANTIATE
#elif (__GNUC_MINOR__ < 8)
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
# define _STLP_NATIVE_INCLUDE_PATH ../g++-include
# endif
/* tuning of static template data members workaround */
# if ( _STLP_STATIC_TEMPLATE_DATA < 1 )
# if ( _STLP_WEAK_ATTRIBUTE > 0 )
# define _STLP_WEAK __attribute__ (( weak ))
# else
# define _STLP_WEAK
# endif /* _STLP_WEAK_ATTRIBUTE */
# ifdef __PUT_STATIC_DATA_MEMBERS_HERE
# define __DECLARE_INSTANCE(type,item,init) type item _STLP_WEAK init
# else
# define __DECLARE_INSTANCE(type,item,init)
# endif /* __PUT_STATIC_DATA_MEMBERS_HERE */
# endif /* _STLP_STATIC_TEMPLATE_DATA */
#else
/* gcc-2.95.0 used to use "g++-3" directory which has been changed to "g++" in
* system-dependent "include" for 2.95.2 except for Cygwin and Mingw packages.
* I expect "g++-3" not being used in later releases.
* If your installation use "g++-3" include directory for any reason (pre-2.95.2 or Win binary kit),
* please change the macro below to point to your directory.
*/
# if !defined (_STLP_NATIVE_INCLUDE_PATH)
# if defined(__DJGPP)
# define _STLP_NATIVE_INCLUDE_PATH ../lang/cxx
# elif (__GNUC__ >= 3) || (__GNUC_MINOR__ >= 97)
# define _STLP_NATIVE_INCLUDE_PATH ../include/g++-v3
# elif ((__GNUC_MINOR__ >= 95 && __GNUC_MINOR__ < 97) && \
!( defined (__FreeBSD__) || defined (__NetBSD__) || defined(__sgi) || defined (__OS2__) ) )
# define _STLP_NATIVE_INCLUDE_PATH ../g++-3
# elif (__GNUC_MINOR__ > 8) && (__GNUC_MINOR__ < 95) && (__GNUC__ < 3) && !defined( __Lynx__ )
/* this really sucks, as GNUpro does not really identifies itself, so we have to guess
* depending on a platform
*/
# ifdef __hpux
# define _STLP_NATIVE_INCLUDE_PATH ../g++-3
# else
# define _STLP_NATIVE_INCLUDE_PATH ../g++-2
# endif
# else
# define _STLP_NATIVE_INCLUDE_PATH g++
# endif
# endif
/* <exception> et al */
# ifdef __FreeBSD__
# if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 95)
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include
# endif
# else
/* azov */
# ifndef __Lynx__
# if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)
/*
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../g++-v3
*/
# else
# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include
# endif
# endif
# endif
#endif /* GNUC_MINOR < 8 */
#if !defined (_STLP_NATIVE_C_INCLUDE_PATH)
# define _STLP_NATIVE_C_INCLUDE_PATH ../include
#endif
/* Tune settings for the case where static template data members are not
* instaniated by default
*/
#if defined ( _STLP_NO_STATIC_TEMPLATE_DATA )
# define _STLP_STATIC_TEMPLATE_DATA 0
# if !defined ( _STLP_WEAK_ATTRIBUTE )
# define _STLP_WEAK_ATTRIBUTE 0
# endif
# ifdef __PUT_STATIC_DATA_MEMBERS_HERE
# define __DECLARE_INSTANCE(type,item,init) type item init
# else
# define __DECLARE_INSTANCE(type,item,init)
# endif
#else
# define _STLP_STATIC_TEMPLATE_DATA 1
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -