ReactOS 0.4.16-dev-297-gc569aee
_mwerks.h
Go to the documentation of this file.
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