home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stlpt453.zip / STLport-4.5.3 / stlport / config / stl_msvc.h < prev    next >
C/C++ Source or Header  |  2002-01-10  |  6KB  |  204 lines

  1. // STLport configuration file
  2. // It is internal STLport header - DO NOT include it directly
  3. // Microsoft Visual C++ 4.0, 4.1, 4.2, 5.0, ICL
  4.  
  5.  
  6. // Common features for VC++ 4.0 and higher
  7. # ifdef _M_IA64
  8. #  define _STLP_NATIVE_HEADER(x) <../crt/##x>
  9. #  define _STLP_NATIVE_C_HEADER(x) <../crt/##x>
  10. #  define _STLP_NATIVE_CPP_C_HEADER(x) <../crt/##x>
  11. #  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../crt/##x>
  12. #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../crt/##header>
  13. #  define _STLP_GLOBAL_NEW_HANDLER
  14. # else
  15. #  define _STLP_NATIVE_HEADER(x) <../include/##x>
  16. #  define _STLP_NATIVE_C_HEADER(x) <../include/##x>
  17. #  define _STLP_NATIVE_CPP_C_HEADER(x) <../include/##x>
  18. #  define _STLP_NATIVE_OLD_STREAMS_HEADER(x) <../include/##x>
  19. #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
  20. # endif
  21.  
  22. # define _STLP_CALL __cdecl
  23.  
  24. # ifndef _STLP_LONG_LONG
  25. #  define _STLP_LONG_LONG  __int64
  26. # endif
  27.  
  28. // these switches depend on compiler flags
  29. # ifndef _CPPUNWIND
  30. #  define _STLP_HAS_NO_EXCEPTIONS 1
  31. # endif
  32.  
  33. # define _STLP_VENDOR_UNEXPECTED_STD
  34.  
  35. # if defined ( _MT ) && !defined (_STLP_NO_THREADS)  && !defined (_REENTRANT)
  36. #   define _REENTRANT 1
  37. # endif
  38.  
  39. # define _STLP_WCHAR_T_IS_USHORT      1
  40. # define _STLP_MINIMUM_IMPORT_STD
  41.  
  42. # ifdef _STLP_MSVC
  43.  
  44. # ifndef _STLP_MSVC50_COMPATIBILITY
  45. #  define _STLP_MSVC50_COMPATIBILITY   1
  46. # endif
  47.  
  48. // # define _STLP_STATIC_CONST_INIT_BUG   1
  49. # define _STLP_DEFAULT_CONSTRUCTOR_BUG 1
  50.  
  51. #  define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
  52.  
  53. // # ifndef __BUILDING_STLPORT
  54. // #  define _STLP_USE_TEMPLATE_EXPORT 1
  55. // # endif
  56.  
  57. #  define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
  58. #  define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
  59. // fails to properly resolve call to sin() from within sin()
  60. #  define _STLP_SAME_FUNCTION_NAME_RESOLUTION_BUG
  61.  
  62. #  if (_STLP_MSVC > 1100)
  63.      typedef char __stl_char;
  64. #   define _STLP_DEFAULTCHAR __stl_char
  65. #  endif /* (_STLP_MSVC < 1100 ) */
  66.  
  67. #  define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1 
  68. //  using ::func_name results in ambiguity
  69.  
  70. # if (_STLP_MSVC <= 1300) 
  71. // boris : not defining this macro for SP5 causes other problems
  72. // #  if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 )
  73. #   define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
  74. //#  endif
  75. #  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
  76. #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
  77. #  define _STLP_NO_FRIEND_TEMPLATES
  78. #  define _STLP_STATIC_CONST_INIT_BUG   1
  79. //  these work, as long they are inline
  80. #   define _STLP_INLINE_MEMBER_TEMPLATES 1
  81. // VC++ cannot handle default allocator argument in template constructors
  82. #   define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
  83. // there is no partial spec, and MSVC breaks on simulating it for iterator_traits queries
  84. #   define _STLP_USE_OLD_HP_ITERATOR_QUERIES
  85. # endif
  86.  
  87. // #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
  88. #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
  89. #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
  90.  
  91. #  define _STLP_NO_QUALIFIED_FRIENDS    1
  92. #  define _STLP_DONT_USE_BOOL_TYPEDEF 1
  93.  
  94. # endif /* _STLP_MSVC */
  95.  
  96.  
  97. # if (_MSC_VER <= 1300) 
  98. #  define _STLP_VENDOR_GLOBAL_CSTD
  99. // They included the necessary coding,
  100. // but the beta still has an issue with template classes
  101. // ok:    class a { static const int v = 2; };
  102. // error: template <class _Tp> class a { static const int v = 2; };
  103. # endif /* (_MSC_VER <= 1300) */
  104.  
  105. # if (_MSC_VER <= 1200)  // including MSVC 6.0
  106. #  define _STLP_GLOBAL_NEW_HANDLER
  107. # endif /* (_MSC_VER <= 1200) */
  108.  
  109. # if ( _MSC_VER<=1010 )
  110. // "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so :
  111. // #    define _STLP_USE_ABBREVS           1
  112. #  define _STLP_NO_BAD_ALLOC
  113. #  define _STLP_HAS_NO_NEW_C_HEADERS 1
  114. #  define _STLP_NO_NEW_NEW_HEADER 1
  115. # elif (_MSC_VER < 1100)
  116. // VC++ 4.2 and higher
  117. #  define _STLP_YVALS_H 1
  118. #  define _STLP_HAS_NO_NEW_IOSTREAMS 1
  119. # endif /* 1010 */
  120.  
  121. # if defined (_STLP_MSVC) && ( _STLP_MSVC < 1200 ) /* VC++ 6.0 */
  122. // #  define _STLP_NO_MEMBER_TEMPLATES 1
  123. // #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
  124. #  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 
  125. #  define _STLP_THROW_RETURN_BUG 1
  126. # endif
  127.  
  128. # if defined (_STLP_MSVC) && ( _STLP_MSVC < 1100 )
  129. #  ifndef _STLP_NO_OWN_IOSTREAMS
  130. #   define _STLP_NO_OWN_IOSTREAMS
  131. #   undef  _STLP_OWN_IOSTREAMS
  132. #  endif
  133. // #  define _STLP_NESTED_TYPE_PARAM_BUG 1
  134. // Debug mode does not work for 4.2
  135. #  ifdef _STLP_DEBUG
  136. #   pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...")
  137. #    undef _STLP_DEBUG
  138. #  endif
  139. #  define _STLP_NO_BOOL            1
  140. #  define _STLP_NEED_TYPENAME      1
  141. #  define _STLP_NEED_EXPLICIT      1
  142. #   define _STLP_NEED_MUTABLE       1
  143. #   define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
  144. #   define _STLP_LIMITED_DEFAULT_TEMPLATES 1
  145.  
  146. // up to 4.2, library is in global namespace
  147. #   define _STLP_VENDOR_GLOBAL_STD
  148. #   define _STLP_NONTEMPL_BASE_MATCH_BUG 1
  149. #   define _STLP_BROKEN_USING_DIRECTIVE  1
  150. #   define _STLP_NO_ARROW_OPERATOR
  151. #   define _STLP_NO_SIGNED_BUILTINS 1
  152. #   define _STLP_NO_EXCEPTION_SPEC 1
  153. #   undef  _STLP_DEFAULT_TYPE_PARAM
  154. #   undef  _STLP_HAS_NO_NAMESPACES
  155. #   undef  _STLP_NO_AT_MEMBER_FUNCTION
  156. #   undef  _STLP_NO_MEMBER_TEMPLATES
  157. #   undef  _STLP_NO_MEMBER_TEMPLATE_CLASSES
  158. #   define  _STLP_HAS_NO_NAMESPACES 1
  159. #   define  _STLP_NO_AT_MEMBER_FUNCTION 1
  160. #  define  _STLP_NO_MEMBER_TEMPLATES
  161. #  define  _STLP_NO_MEMBER_TEMPLATE_CLASSES
  162. # endif /* 1100 */
  163.  
  164. // If we are under Windows CE, include appropriate config
  165.  
  166. # ifdef UNDER_CE
  167. #   include <config/stl_wince.h>
  168. # endif
  169.  
  170. # ifdef __ICL
  171. #  define _STLP_LIB_BASENAME "stlport_icl"
  172. # else
  173. # if (_MSC_VER >= 1300) 
  174. #   define _STLP_LIB_BASENAME "stlport_vc7"
  175. # elif (_MSC_VER >= 1200)
  176. //#   ifdef _UNICODE
  177. //#    define _STLP_LIB_BASENAME "stlport_vc6_unicode"
  178. //#   else
  179. #    define _STLP_LIB_BASENAME "stlport_vc6"
  180. //#   endif
  181. #  elif (_MSC_VER >= 1100)
  182. //#   ifdef _UNICODE
  183. //#    define _STLP_LIB_BASENAME "stlport_vc5_unicode"
  184. //#   else
  185. #    define _STLP_LIB_BASENAME "stlport_vc5"
  186. //#   endif
  187. #  endif /* (_MSC_VER >= 1200) */
  188. # endif /* __ICL */
  189.  
  190.  
  191. #    if (defined (__ICL) && (__ICL < 450)) || (_MSC_VER < 1200)
  192. //    only static STLport lib now works for ICL and VC 5.0
  193. #     undef  _STLP_USE_STATIC_LIB
  194. #     define _STLP_USE_STATIC_LIB
  195. //    disable hook which makes template symbols to be searched for in the library
  196. #     undef _STLP_NO_CUSTOM_IO
  197. #    endif
  198.  
  199. #   include <config/vc_select_lib.h>
  200.  
  201.  
  202.  
  203.  
  204.