[CLASSPNP] Fix MSVC build. Brought to you by Timo.
[reactos.git] / reactos / include / c++ / stlport / stl / config / _mwerks.h
1 // STLport configuration file
2 // It is internal STLport header - DO NOT include it directly
3
4 #define _STLP_COMPILER "Metrowerk Codewarrior"
5
6 // Bring in definition of __MSL__ and related items
7 #include <mslGlobals.h>
8 #include <ansi_parms.h>
9
10 //
11 // Compiler features
12 //
13
14
15 // *** CodeWarrior Compiler Common Features ***
16 # if __option(longlong)
17 # define _STLP_LONG_LONG long long
18 # endif
19
20 # define _STLP_USE_UNIX_EMULATION_IO 1
21
22 # define _STLP_USE_AUTO_PTR_CONVERSIONS 1
23
24 # ifdef __INTEL__
25 # define _STLP_LITTLE_ENDIAN
26 # else
27 # define _STLP_BIG_ENDIAN
28 # endif
29
30 #if defined(_MSL_NO_LOCALE)
31 #define _STLP_NO_IMPORT_LOCALE
32 #endif
33 #if !__option( wchar_type )
34 # define _STLP_WCHAR_T_IS_USHORT
35 #endif
36
37 # if __MWERKS__ < 0x3000
38 // *** CodeWarrior Compiler Common Bugs ***
39 # define __MSL_FIX_ITERATORS__(myType) // Some MSL headers rely on this
40 # define _STLP_THROW_RETURN_BUG 1
41 # endif
42
43 // *** Version-specific settings ***
44
45 # if __MWERKS__ >= 0x2405
46 # define _STLP_HAS_NATIVE_FLOAT_ABS
47 # endif
48
49 # if __MWERKS__ < 0x2405
50 # define _STLP_STATIC_CONST_INIT_BUG
51 # endif
52
53 # if __MWERKS__ <= 0x2303
54 # define _STLP_NO_TEMPLATE_CONVERSIONS 1
55 # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
56 # endif
57
58 # if __MWERKS__ < 0x2301
59 # define _STLP_MEMBER_SPECIALIZATION_BUG 1
60 # endif
61
62 # if __MWERKS__ < 0x2300 // CW Pro5 features
63 # define _STLP_INLINE_MEMBER_TEMPLATES 1
64 # define _STLP_RELOPS_IN_STD_BUG 1
65 # define _STLP_DEF_CONST_PLCT_NEW_BUG 1
66 # define _STLP_DEF_CONST_DEF_PARAM_BUG 1
67 # define _STLP_NO_TYPENAME_ON_RETURN_TYPE
68 # endif
69
70 # if __MWERKS__ < 0x2200 // CW Pro4 features
71 # define _STLP_BROKEN_USING_DIRECTIVE 1
72 # define _STLP_NO_MEMBER_TEMPLATES 1
73 # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
74 # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
75 # define _STLP_NO_QUALIFIED_FRIENDS 1
76 # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
77 # endif
78
79 # if __MWERKS__ < 0x2100 // CW Pro3 features
80 # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
81 # define _STLP_HAS_NO_NAMESPACES 1
82 # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
83
84 # define _STLP_NEED_TYPENAME 1
85 # define _STLP_NO_ARROW_OPERATOR 1
86 # define _STLP_TEMPLATE_PARAM_SUBTYPE_BUG 1
87 # define _STLP_FORCED_INLINE_INSTANTIATION_BUG 1
88 # define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG 1
89 # define _STLP_INLINE_NAME_RESOLUTION_BUG 1
90 // *** Metrowerks Standard Library Bug ***
91 # define _STLP_MSVC50_COMPATIBILITY 1
92 # endif
93
94 # if __MWERKS__ < 0x2000 // v. 2.0 features
95 # define _STLP_NO_WCHAR_T 1
96 # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
97 # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 // dwa 8/21/97 - this bug fixed for CWPro2
98 # endif
99
100 # if __MWERKS__ < 0x1900 // dwa 8/19/97 - 1.9 Compiler feature defines
101 # define _STLP_LIMITED_DEFAULT_TEMPLATES 1
102 # define _STLP_BASE_TYPEDEF_BUG 1
103 # define _STLP_BASE_MATCH_BUG 1
104 # define _STLP_NONTEMPL_BASE_MATCH_BUG 1
105 # define _STLP_DEFAULT_TYPE_PARAM 1 // More limited template parameters
106
107 # if __MWERKS__ < 0x1800
108 __GIVE_UP_WITH_STL(CW_18)
109 # endif
110
111 # endif
112
113
114 // fixes to native inclusion wrappers.
115 # if __MWERKS__ >= 0x2300 // CWPro5 changes paths - dwa 2/28/99
116 # define _STLP_NATIVE_INCLUDE_PATH ../include
117 # define _STLP_NATIVE_C_INCLUDE_PATH ../include
118 # define _STLP_NATIVE_HEADER(header) <../include/##header>
119 # define _STLP_NATIVE_CPP_C_HEADER(header) <../include/##header>
120 # define _STLP_NATIVE_C_HEADER(header) <../include/##header>
121 # define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
122 # else
123
124 # define _STLP_NATIVE_INCLUDE_PATH Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include
125 # define _STLP_NATIVE_C_INCLUDE_PATH Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes
126 # define _STLP_NATIVE_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header>
127 # define _STLP_NATIVE_CPP_C_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header>
128 # define _STLP_NATIVE_C_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header>
129 # define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header>
130
131 # endif
132
133 //Following block come from boost intrinsics.hpp file:
134 #if defined (__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
135 // Metrowerks compiler is acquiring intrinsic type traits support
136 // post version 8. We hook into the published interface to pick up
137 // user defined specializations as well as compiler intrinsics as
138 // and when they become available:
139 # include <msl_utility>
140 # define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) Metrowerks::has_trivial_default_ctor<T>::value
141 # define _STLP_HAS_TRIVIAL_COPY(T) Metrowerks::has_trivial_copy_ctor<T>::value
142 # define _STLP_HAS_TRIVIAL_ASSIGN(T) Metrowerks::has_trivial_assignment<T>::value
143 # define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) Metrowerks::has_trivial_dtor<T>::value
144 # define _STLP_IS_POD(T) Metrowerks::is_POD<T>::value
145 # define _STLP_HAS_TYPE_TRAITS_INTRINSICS
146 #endif
147
148 // fbp
149 # if !defined( __MSL_CPP__ ) || __MSL_CPP__ <= 0x4105
150 # define _STLP_NO_NATIVE_WIDE_STREAMS 1
151 # endif
152
153 # if defined(__MACH__)
154 # define _STLP_MAC
155 # define O_BINARY 0
156 # elif defined(macintosh)
157 # define _NOTHREADS
158 # endif
159 # define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1