stl_msvc.h

00001 // STLport configuration file
00002 // It is internal STLport header - DO NOT include it directly
00003 // Microsoft Visual C++ 4.0, 4.1, 4.2, 5.0, ICL
00004 
00005 
00006 // Common features for VC++ 4.0 and higher
00007 # ifdef _M_IA64
00008 #  define _STLP_NATIVE_HEADER(x) <../crt/##x>
00009 #  define _STLP_NATIVE_C_HEADER(x) <../crt/##x>
00010 #  define _STLP_NATIVE_CPP_C_HEADER(x) <../crt/##x>
00011 #  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../crt/##x>
00012 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../crt/##header>
00013 #  define _STLP_GLOBAL_NEW_HANDLER
00014 # else
00015 #  define _STLP_NATIVE_HEADER(x) <../include/##x>
00016 #  define _STLP_NATIVE_C_HEADER(x) <../include/##x>
00017 #  define _STLP_NATIVE_CPP_C_HEADER(x) <../include/##x>
00018 #  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../include/##x>
00019 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
00020 # endif
00021 
00022 # define _STLP_CALL __cdecl
00023 
00024 # ifndef _STLP_LONG_LONG
00025 #  define _STLP_LONG_LONG  __int64
00026 # endif
00027 
00028 // these switches depend on compiler flags
00029 # ifndef _CPPUNWIND
00030 #  define _STLP_HAS_NO_EXCEPTIONS 1
00031 # endif
00032 
00033 # define _STLP_VENDOR_UNEXPECTED_STD
00034 
00035 # if defined ( _MT ) && !defined (_STLP_NO_THREADS)  && !defined (_REENTRANT)
00036 #   define _REENTRANT 1
00037 # endif
00038 
00039 # define _STLP_WCHAR_T_IS_USHORT      1
00040 # define _STLP_MINIMUM_IMPORT_STD
00041 
00042 # ifdef _STLP_MSVC
00043 
00044 # define _STLP_MSVC50_COMPATIBILITY   1
00045 
00046 // # define _STLP_STATIC_CONST_INIT_BUG   1
00047 # define _STLP_DEFAULT_CONSTRUCTOR_BUG 1
00048 
00049 #  define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
00050 
00051 // # ifndef __BUILDING_STLPORT
00052 // #  define _STLP_USE_TEMPLATE_EXPORT 1
00053 // # endif
00054 
00055 #  define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
00056 #  define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
00057 // fails to properly resolve call to sin() from within sin()
00058 #  define _STLP_SAME_FUNCTION_NAME_RESOLUTION_BUG
00059 
00060 #  if (_STLP_MSVC > 1100)
00061      typedef char __stl_char;
00062 #   define _STLP_DEFAULTCHAR __stl_char
00063 #  endif /* (_STLP_MSVC < 1100 ) */
00064 
00065 #  define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1 
00066 //  using ::func_name results in ambiguity
00067 
00068 # if (_STLP_MSVC <= 1300) 
00069 // boris : not defining this macro for SP5 causes other problems
00070 // #  if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 )
00071 #   define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
00072 //#  endif
00073 #  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
00074 #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
00075 #  define _STLP_NO_FRIEND_TEMPLATES
00076 #  define _STLP_STATIC_CONST_INIT_BUG   1
00077 //  these work, as long they are inline
00078 #   define _STLP_INLINE_MEMBER_TEMPLATES 1
00079 // VC++ cannot handle default allocator argument in template constructors
00080 #   define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
00081 // there is no partial spec, and MSVC breaks on simulating it for iterator_traits queries
00082 #   define _STLP_USE_OLD_HP_ITERATOR_QUERIES
00083 # endif
00084 
00085 // #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
00086 #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
00087 #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
00088 
00089 #  define _STLP_NO_QUALIFIED_FRIENDS    1
00090 #  define _STLP_DONT_USE_BOOL_TYPEDEF 1
00091 
00092 # endif /* _STLP_MSVC */
00093 
00094 
00095 # if (_MSC_VER <= 1300) 
00096 #  define _STLP_VENDOR_GLOBAL_CSTD
00097 // They included the necessary coding,
00098 // but the beta still has an issue with template classes
00099 // ok:    class a { static const int v = 2; };
00100 // error: template &lt;class _Tp> class a { static const int v = 2; };
00101 # endif /* (_MSC_VER <= 1300) */
00102 
00103 # if (_MSC_VER <= 1200)  // including MSVC 6.0
00104 #  define _STLP_GLOBAL_NEW_HANDLER
00105 # endif /* (_MSC_VER <= 1200) */
00106 
00107 # if ( _MSC_VER<=1010 )
00108 // "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so :
00109 // #    define _STLP_USE_ABBREVS           1
00110 #  define _STLP_NO_BAD_ALLOC
00111 #  define _STLP_HAS_NO_NEW_C_HEADERS 1
00112 #  define _STLP_NO_NEW_NEW_HEADER 1
00113 # elif (_MSC_VER < 1100)
00114 // VC++ 4.2 and higher
00115 #  define _STLP_YVALS_H 1
00116 #  define _STLP_HAS_NO_NEW_IOSTREAMS 1
00117 # endif /* 1010 */
00118 
00119 # if defined (_STLP_MSVC) && ( _STLP_MSVC < 1200 ) /* VC++ 6.0 */
00120 // #  define _STLP_NO_MEMBER_TEMPLATES 1
00121 // #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
00122 #  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 
00123 #  define _STLP_THROW_RETURN_BUG 1
00124 # endif
00125 
00126 # if defined (_STLP_MSVC) && ( _STLP_MSVC < 1100 )
00127 #  ifndef _STLP_NO_OWN_IOSTREAMS
00128 #   define _STLP_NO_OWN_IOSTREAMS
00129 #   undef  _STLP_OWN_IOSTREAMS
00130 #  endif
00131 // #  define _STLP_NESTED_TYPE_PARAM_BUG 1
00132 // Debug mode does not work for 4.2
00133 #  ifdef _STLP_DEBUG
00134 #   pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...")
00135 #    undef _STLP_DEBUG
00136 #  endif
00137 #  define _STLP_NO_BOOL            1
00138 #  define _STLP_NEED_TYPENAME      1
00139 #  define _STLP_NEED_EXPLICIT      1
00140 #   define _STLP_NEED_MUTABLE       1
00141 #   define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
00142 #   define _STLP_LIMITED_DEFAULT_TEMPLATES 1
00143 
00144 // up to 4.2, library is in global namespace
00145 #   define _STLP_VENDOR_GLOBAL_STD
00146 #   define _STLP_NONTEMPL_BASE_MATCH_BUG 1
00147 #   define _STLP_BROKEN_USING_DIRECTIVE  1
00148 #   define _STLP_NO_ARROW_OPERATOR
00149 #   define _STLP_NO_SIGNED_BUILTINS 1
00150 #   define _STLP_NO_EXCEPTION_SPEC 1
00151 #   undef  _STLP_DEFAULT_TYPE_PARAM
00152 #   undef  _STLP_HAS_NO_NAMESPACES
00153 #   undef  _STLP_NO_AT_MEMBER_FUNCTION
00154 #   undef  _STLP_NO_MEMBER_TEMPLATES
00155 #   undef  _STLP_NO_MEMBER_TEMPLATE_CLASSES
00156 #   define  _STLP_HAS_NO_NAMESPACES 1
00157 #   define  _STLP_NO_AT_MEMBER_FUNCTION 1
00158 #  define  _STLP_NO_MEMBER_TEMPLATES
00159 #  define  _STLP_NO_MEMBER_TEMPLATE_CLASSES
00160 # endif /* 1100 */
00161 
00162 // If we are under Windows CE, include appropriate config
00163 
00164 # ifdef UNDER_CE
00165 #   include <config/stl_wince.h>
00166 # endif
00167 
00168 # ifdef __ICL
00169 #  define _STLP_LIB_BASENAME "stlport_icl"
00170 # else
00171 # if (_MSC_VER >= 1300) 
00172 #   define _STLP_LIB_BASENAME "stlport_vc7"
00173 # elif (_MSC_VER >= 1200)
00174 //#   ifdef _UNICODE
00175 //#    define _STLP_LIB_BASENAME "stlport_vc6_unicode"
00176 //#   else
00177 #    define _STLP_LIB_BASENAME "stlport_vc6"
00178 //#   endif
00179 #  elif (_MSC_VER >= 1100)
00180 //#   ifdef _UNICODE
00181 //#    define _STLP_LIB_BASENAME "stlport_vc5_unicode"
00182 //#   else
00183 #    define _STLP_LIB_BASENAME "stlport_vc5"
00184 //#   endif
00185 #  endif /* (_MSC_VER >= 1200) */
00186 # endif /* __ICL */
00187 
00188 
00189 #    if (defined (__ICL) && (__ICL < 450)) || (_MSC_VER < 1200)
00190 //    only static STLport lib now works for ICL and VC 5.0
00191 #     undef  _STLP_USE_STATIC_LIB
00192 #     define _STLP_USE_STATIC_LIB
00193 //    disable hook which makes template symbols to be searched for in the library
00194 #     undef _STLP_NO_CUSTOM_IO
00195 #    endif
00196 
00197 #   include <config/vc_select_lib.h>
00198 
00199 
00200 
00201 

Generated on Mon Jun 5 10:20:45 2006 for Intelligence.kdevelop by  doxygen 1.4.6