]> git.buserror.net Git - polintos/scott/priv.git/blob - include/c++/stl/stl/config/_mwerks.h
minor doc updates
[polintos/scott/priv.git] / include / c++ / stl / 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_NO_FRIEND_TEMPLATES 1  // Bug mysteriously reintroduced in this version.
41 #   define _STLP_THROW_RETURN_BUG  1
42 #  endif
43
44 //  *** Version-specific settings ***
45
46 #  if __MWERKS__ >= 0x2405
47 #   define _STLP_HAS_NATIVE_FLOAT_ABS
48 #  endif
49
50 #  if __MWERKS__ < 0x2405
51 #   define _STLP_STATIC_CONST_INIT_BUG
52 #  endif
53
54 #  if __MWERKS__ <= 0x2303
55 #   define _STLP_NO_TEMPLATE_CONVERSIONS  1
56 #   define _STLP_NO_MEMBER_TEMPLATE_KEYWORD  1
57 #  endif
58
59 #  if __MWERKS__ < 0x2301
60 #   define _STLP_MEMBER_SPECIALIZATION_BUG  1
61 #  endif
62
63 #  if __MWERKS__ < 0x2300    // CW Pro5 features
64 #   define _STLP_INLINE_MEMBER_TEMPLATES 1
65 #   define _STLP_RELOPS_IN_STD_BUG   1
66 #   define _STLP_DEF_CONST_PLCT_NEW_BUG 1
67 #   define _STLP_DEF_CONST_DEF_PARAM_BUG 1
68 #   define _STLP_NO_TYPENAME_ON_RETURN_TYPE
69 #  endif
70
71 #  if __MWERKS__ < 0x2200    // CW Pro4 features
72 #   define _STLP_BROKEN_USING_DIRECTIVE  1
73 #   define _STLP_NO_MEMBER_TEMPLATES 1
74 #   define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
75 #   define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
76 #   define _STLP_NO_FRIEND_TEMPLATES 1
77 #   define _STLP_NO_QUALIFIED_FRIENDS 1
78 #   define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
79 #  endif
80
81 #  if __MWERKS__ < 0x2100      // CW Pro3 features
82 #   define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
83 #   define _STLP_HAS_NO_NAMESPACES 1
84 #   define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
85
86 #   define _STLP_NEED_TYPENAME        1
87 #   define _STLP_NO_ARROW_OPERATOR 1
88 #   define _STLP_TEMPLATE_PARAM_SUBTYPE_BUG  1
89 #   define _STLP_FORCED_INLINE_INSTANTIATION_BUG  1
90 #   define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG  1
91 #   define _STLP_INLINE_NAME_RESOLUTION_BUG  1
92 // *** Metrowerks Standard Library Bug ***
93 #   define _STLP_MSVC50_COMPATIBILITY 1
94 #  endif
95
96 #  if __MWERKS__ < 0x2000      // v. 2.0 features
97 #   define _STLP_NO_WCHAR_T 1
98 #   define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
99 #   define _STLP_NON_TYPE_TMPL_PARAM_BUG  1  // dwa 8/21/97 - this bug fixed for CWPro2
100 #  endif
101
102 #  if __MWERKS__ < 0x1900                 // dwa 8/19/97 - 1.9 Compiler feature defines
103 #   define _STLP_LIMITED_DEFAULT_TEMPLATES 1
104 #   define _STLP_BASE_TYPEDEF_BUG        1
105 #   define _STLP_BASE_MATCH_BUG   1
106 #   define _STLP_NONTEMPL_BASE_MATCH_BUG 1
107 #   define _STLP_DEFAULT_TYPE_PARAM  1      // More limited template parameters
108
109 #   if __MWERKS__ < 0x1800
110     __GIVE_UP_WITH_STL(CW_18)
111 #   endif
112
113 #  endif
114
115
116 // fixes to native inclusion wrappers.
117 # if __MWERKS__ >= 0x2300  // CWPro5 changes paths - dwa 2/28/99
118 #  define _STLP_NATIVE_INCLUDE_PATH  ../include
119 #  define _STLP_NATIVE_C_INCLUDE_PATH  ../include
120 #  define _STLP_NATIVE_HEADER(header)     <../include/##header>
121 #  define _STLP_NATIVE_CPP_C_HEADER(header)     <../include/##header>
122 #  define _STLP_NATIVE_C_HEADER(header)     <../include/##header>
123 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header>
124 # else
125
126 #  define _STLP_NATIVE_INCLUDE_PATH  Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include
127 #  define _STLP_NATIVE_C_INCLUDE_PATH  Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes
128 #  define _STLP_NATIVE_HEADER(header)     <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header>
129 #  define _STLP_NATIVE_CPP_C_HEADER(header)     <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header>
130 #  define _STLP_NATIVE_C_HEADER(header)     <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header>
131 #  define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header>
132
133 # endif
134
135 //Following block come from boost intrinsics.hpp file:
136 #if defined (__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
137     // Metrowerks compiler is acquiring intrinsic type traits support
138     // post version 8.  We hook into the published interface to pick up
139     // user defined specializations as well as compiler intrinsics as
140     // and when they become available:
141 #   include <msl_utility>
142 #   define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) Metrowerks::has_trivial_default_ctor<T>::value
143 #   define _STLP_HAS_TRIVIAL_COPY(T) Metrowerks::has_trivial_copy_ctor<T>::value
144 #   define _STLP_HAS_TRIVIAL_ASSIGN(T) Metrowerks::has_trivial_assignment<T>::value
145 #   define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) Metrowerks::has_trivial_dtor<T>::value
146 #   define _STLP_IS_POD(T) Metrowerks::is_POD<T>::value
147 #   define _STLP_HAS_TYPE_TRAITS_INTRINSICS
148 #endif
149
150 // fbp
151 # if !defined( __MSL_CPP__ ) || __MSL_CPP__ <= 0x4105
152 #   define _STLP_NO_NATIVE_WIDE_STREAMS 1
153 #  endif
154
155 # if defined(__MACH__)
156 #  define _STLP_MAC
157 #  define O_BINARY 0
158 # elif defined(macintosh)
159 #  define _NOTHREADS
160 # endif
161 # define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1