00001 /* 00002 * Copyright (c) 1997 00003 * Moscow Center for SPARC Technology 00004 * 00005 * Copyright (c) 1999 00006 * Boris Fomitchev 00007 * 00008 * This material is provided "as is", with absolutely no warranty expressed 00009 * or implied. Any use is at your own risk. 00010 * 00011 * Permission to use or copy this software for any purpose is hereby granted 00012 * without fee, provided the above notices are retained on all copies. 00013 * Permission to modify the code and to distribute modified code is granted, 00014 * provided the above notices are retained, and a notice that the code was 00015 * modified is included with the above copyright notice. 00016 * 00017 */ 00018 00019 /* 00020 * Purpose of this file : 00021 * 00022 * A list of COMPILER-SPECIFIC portion of STLport settings. 00023 * This file is provided to help in manulal configuration 00024 * of STLport. This file is being included by stlcomp.h 00025 * when STLport is unable to identify your compiler. 00026 * Please remove the error diagnostic below before adjusting 00027 * macros. 00028 * 00029 */ 00030 # ifndef _STLP_EPOC_H 00031 # define _STLP_EPOC_H 00032 00033 // NON-STANDARD!!!! 00034 00035 #if defined(__WINS__) 00036 # pragma warning ( disable : 4018 4097 4100 4127 4244 4284 4511 4512 4514 4786 4800 ) //4355 4284 4231 4511 4512 4097 4786 4800 4018 4146 4244 4514 4127 4100 4663) 00037 # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 00038 #endif 00039 00040 # define _STLP_NO_IOSTREAMS 1 00041 # undef _STLP_OWN_IOSTREAMS 00042 # define _STLP_NO_NATIVE_MBSTATE_T 1 00043 # define _NOTHREADS 1 00044 # define _STLP_NO_TYPEINFO 1 00045 00046 #ifndef __PLACEMENT_NEW_INLINE 00047 #ifndef __E32STD_H__ 00048 // WARNING: CHANGE MANUALLY BECAUSE IT DIDN'T COMPILE - MAY HAVE SIDE EFFECTS 00049 //inline void * operator new(unsigned int, void *_P) { return (_P); } 00050 #define __PLACEMENT_NEW_INLINE 00051 #endif // E32STD_H 00052 #endif 00053 00054 // ADDITIONS FOR IOSTREAM.DLL 00055 # define _STLP_USE_STDIO_IO 1 00056 00057 //========================================================== 00058 00059 // the values choosen here as defaults try to give 00060 // maximum functionality on the most conservative settings 00061 00062 // Mostly correct guess, change it for Alpha (and other environments 00063 // that has 64-bit "long") 00064 // # define _STLP_UINT32_T unsigned long 00065 00066 // Disables wchar_t functinality 00067 # define _STLP_NO_WCHAR_T 1 00068 00069 // Define if wchar_t is not a unique type, and is actually a typedef to unsigned short. 00070 // # define _STLP_WCHAR_T_IS_USHORT 1 00071 00072 // Uncomment if long long is available 00073 // # define _STLP_LONG_LONG long long 00074 00075 // Uncomment if long double is not available 00076 // # define _STLP_NO_LONG_DOUBLE 1 00077 00078 // Uncomment this if your compiler does not support "typename" keyword 00079 // # define _STLP_NEED_TYPENAME 1 00080 00081 // Uncomment this if your compiler does not support "mutable" keyword 00082 // # define _STLP_NEED_MUTABLE 1 00083 00084 // Uncomment this if your compiler does not support "explicit" keyword 00085 // # define _STLP_NEED_EXPLICIT 1 00086 00087 // Uncomment if new-style-casts like const_cast<> are not available 00088 // # define _STLP_NO_NEW_STYLE_CASTS 1 00089 00090 // Uncomment this if your compiler does not have "bool" type 00091 // # define _STLP_NO_BOOL 1 00092 00093 // Uncomment this if your compiler does not have "bool" type, but has "bool" keyword reserved 00094 // # define _STLP_DONT_USE_BOOL_TYPEDEF 1 00095 00096 // Uncomment this if your compiler does not have "bool" type, but defines "bool" in <yvals.h> 00097 // # define _STLP_YVALS_H 1 00098 00099 // Uncomment this if your compiler has limited or no default template arguments for classes 00100 // # define _STLP_LIMITED_DEFAULT_TEMPLATES 1 00101 00102 // Uncomment this if your compiler support only complete (not dependent on other parameters) 00103 // types as default parameters for class templates 00104 // # define _STLP_DEFAULT_TYPE_PARAM 1 00105 00106 // Uncomment this if your compiler has problem with not-type 00107 // default template parameters 00108 // # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 00109 00110 // Define if compiler has 00111 // trouble with functions getting non-type-parameterized classes as parameters 00112 // # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 00113 00114 // Uncomment this if your compiler lacks static data members. 00115 // Uncomment next line if your compiler supports __attribute__((weak)) 00116 // # define _STLP_NO_STATIC_TEMPLATE_DATA 1 00117 // # define _STLP_WEAK_ATTRIBUTE 1 00118 00119 // Uncomment this if your compiler does not support namespaces 00120 # define _STLP_HAS_NO_NAMESPACES 1 00121 00122 // Uncomment if "using" keyword does not work with template types 00123 // # define _STLP_BROKEN_USING_DIRECTIVE 1 00124 00125 // Uncomment this if your compiler does not support exceptions 00126 # define _STLP_HAS_NO_EXCEPTIONS 1 00127 00128 // Uncomment this if your compiler does not support exception specifications 00129 // # define _STLP_NO_EXCEPTION_SPEC 00130 00131 // Define this if your compiler requires return statement after throw() 00132 // # define _STLP_THROW_RETURN_BUG 1 00133 00134 // Header <new> that comes with the compiler 00135 // does not define bad_alloc exception 00136 #if defined(__WINS__) 00137 // Possibly required ??? 00138 //# define _STLP_NO_BAD_ALLOC 1 00139 #endif 00140 00141 // Uncomment if member template methods are not available 00142 // # define _STLP_NO_MEMBER_TEMPLATES 1 00143 00144 // Uncomment if member template classes are not available 00145 #if defined(__WINS__) 00146 # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 00147 #endif 00148 00149 // Uncomment if no "template" keyword should be used with member template classes 00150 // # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 00151 00152 // Uncomment if friend member templates are not available 00153 #if defined(__WINS__) 00154 // Possibly required ??? 00155 //# define _STLP_NO_FRIEND_TEMPLATES 1 00156 #endif 00157 00158 // Compiler does not accept friend declaration qualified with namespace name. 00159 // # define _STLP_NO_QUALIFIED_FRIENDS 1 00160 00161 // Uncomment if partial specialization is not available 00162 #if defined(__WINS__) 00163 # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 00164 #endif 00165 00166 // Define if class being partially specialized require full name (template parameters) 00167 // of itself for method declarations 00168 // # define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS 00169 00170 // Compiler has problems specializing members of partially 00171 // specialized class 00172 // # define _STLP_MEMBER_SPECIALIZATION_BUG 00173 00174 // Uncomment if partial order of template functions is not available 00175 // # define _STLP_NO_FUNC_PARTIAL_ORDERING 1 00176 00177 // Uncomment if specialization of methods is not allowed 00178 // # define _STLP_NO_METHOD_SPECIALIZATION 1 00179 00180 // Uncomment if full specialization does not use partial spec. syntax : template <> struct .... 00181 // # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 00182 00183 // Uncomment if compiler does not support explicit template arguments for functions 00184 // # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 00185 00186 // Uncomment if "__typetraits is being instaniated automatically by the compiler (SGI only ?) 00187 // # define _STLP_AUTOMATIC_TYPE_TRAITS 1 00188 00189 // Uncomment this if your compiler can't inline while(), for() 00190 // # define _STLP_LOOP_INLINE_PROBLEMS 1 00191 00192 // Define if the compiler fails to match a template function argument of base 00193 // # define _STLP_BASE_MATCH_BUG 1 00194 00195 // Define if the compiler fails to match a template function argument of base 00196 // (non-template) 00197 //# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 00198 00199 // Define if the compiler rejects outline method definition 00200 // explicitly taking nested types/typedefs 00201 // # define _STLP_NESTED_TYPE_PARAM_BUG 1 00202 00203 // Compiler requires typename keyword on outline method definition 00204 // explicitly taking nested types/typedefs 00205 // #define _STLP_TYPENAME_ON_RETURN_TYPE 00206 00207 // Define if the baseclass typedefs not visible from outside 00208 // # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 00209 00210 // if your compiler have serious problems with typedefs, try this one 00211 // # define _STLP_BASE_TYPEDEF_BUG 1 00212 00213 // Uncomment if getting errors compiling mem_fun* adaptors 00214 // # define _STLP_MEMBER_POINTER_PARAM_BUG 1 00215 00216 // # define _STLP_UNINITIALIZABLE_PRIVATE 1 00217 00218 // Defined if the compiler 00219 // has trouble instantiating static array members with dimension defined as enum 00220 // # define _STLP_STATIC_ARRAY_BUG 00221 00222 // * _STLP_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a 00223 // constant-initializer in the declaration of a static const data member 00224 // of integer type. (See section 9.4.2, paragraph 4, of the C++ standard.) 00225 #if defined(__WINS__) 00226 # define _STLP_STATIC_CONST_INIT_BUG 00227 #endif 00228 00229 // Define if default constructor for builtin integer type fails to initialize it to 0 00230 // # define _STLP_DEFAULT_CONSTRUCTOR_BUG 1 00231 00232 // Defined if constructor 00233 // required to explicitly call member's default constructors for const objects 00234 // # define _STLP_CONST_CONSTRUCTOR_BUG 1 00235 00236 // Defined if the compiler has trouble calling POD-types constructors/destructors 00237 // # define _STLP_TRIVIAL_CONSTRUCTOR_BUG 1 00238 // # define _STLP_TRIVIAL_DESTRUCTOR_BUG 1 00239 00240 // Define if having problems specializing maps/sets with 00241 // key type being const 00242 // # define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG 00243 00244 // Uncomment this to disable -> operators on all iterators 00245 // # define _STLP_NO_ARROW_OPERATOR 1 00246 00247 // Uncomment this to disble at() member functions for containers 00248 // # define _STLP_NO_AT_MEMBER_FUNCTION 1 00249 00250 // Uncomment if native new-style iostreams are not available 00251 // #define _STLP_HAS_NO_NEW_IOSTREAMS 1 00252 00253 // Define this if compiler lacks <exception> header 00254 # define _STLP_NO_EXCEPTION_HEADER 1 00255 00256 // Uncomment this if your C library has lrand48() function 00257 // # define _STLP_RAND48 1 00258 00259 // Uncomment if native new-style C library headers lile <cstddef>, etc are not available. 00260 # define _STLP_HAS_NO_NEW_C_HEADERS 1 00261 00262 // uncomment if new-style headers <new> is available 00263 // # define _STLP_HAS_NEW_NEW_HEADER 1 00264 00265 // uncomment this if <iostream> and other STD headers put their stuff in ::namespace, 00266 // not std:: 00267 // # define _STLP_VENDOR_GLOBAL_STD 00268 00269 // uncomment this if <cstdio> and the like put stuff in ::namespace, 00270 // not std:: 00271 // # define _STLP_VENDOR_GLOBAL_CSTD 00272 00273 // Edit relative path below (or put full path) to get native 00274 // compiler headers included. Default is "../include". 00275 // C headers may reside in different directory, so separate macro is provided. 00276 // Hint : never install STLport in the directory that ends with "include" 00277 # define _STLP_NATIVE_INCLUDE_PATH ../libc 00278 // # define _STLP_NATIVE_C_INCLUDE_PATH ../include 00279 // # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include 00280 00281 // This macro constructs header path from directory and name. 00282 // You may change it if your compiler does not understand "/". 00283 // # define _STLP_MAKE_HEADER(path, header) <path/header> 00284 00285 // This macro constructs native include header path from include path and name. 00286 // You may have do define it if experirncing problems with preprocessor 00287 // # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header) 00288 00289 // Same for C headers 00290 // _STLP_NATIVE_C_HEADER(header) 00291 00292 //========================================================== 00293 # endif