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_MYCOMP_H 00031 # define _STLP_MYCOMP_H 00032 00033 # error "Your compiler version is not recognized by STLport. Please edit <config/stl_mycomp.h>" 00034 00035 //========================================================== 00036 00037 // the values choosen here as defaults try to give 00038 // maximum functionality on the most conservative settings 00039 00040 // Mostly correct guess, change it for Alpha (and other environments 00041 // that has 64-bit "long") 00042 // # define _STLP_UINT32_T unsigned long 00043 00044 // Disables wchar_t functinality 00045 // # define _STLP_NO_WCHAR_T 1 00046 00047 // Define if wchar_t is not a unique type, and is actually a typedef to unsigned short. 00048 // # define _STLP_WCHAR_T_IS_USHORT 1 00049 00050 // Uncomment if long long is available 00051 // # define _STLP_LONG_LONG long long 00052 00053 // Uncomment if long double is not available 00054 // # define _STLP_NO_LONG_DOUBLE 1 00055 00056 // Uncomment this if your compiler does not support "typename" keyword 00057 // # define _STLP_NEED_TYPENAME 1 00058 00059 // Uncomment this if your compiler does not support "mutable" keyword 00060 // # define _STLP_NEED_MUTABLE 1 00061 00062 // Uncomment this if your compiler does not support "explicit" keyword 00063 // # define _STLP_NEED_EXPLICIT 1 00064 00065 // Uncomment if new-style-casts like const_cast<> are not available 00066 // # define _STLP_NO_NEW_STYLE_CASTS 1 00067 00068 // Uncomment this if your compiler does not have "bool" type 00069 // # define _STLP_NO_BOOL 1 00070 00071 // Uncomment this if your compiler does not have "bool" type, but has "bool" keyword reserved 00072 // # define _STLP_DONT_USE_BOOL_TYPEDEF 1 00073 00074 // Uncomment this if your compiler does not have "bool" type, but defines "bool" in <yvals.h> 00075 // # define _STLP_YVALS_H 1 00076 00077 // Uncomment this if your compiler has limited or no default template arguments for classes 00078 // # define _STLP_LIMITED_DEFAULT_TEMPLATES 1 00079 00080 // Uncomment this if your compiler support only complete (not dependent on other parameters) 00081 // types as default parameters for class templates 00082 // # define _STLP_DEFAULT_TYPE_PARAM 1 00083 00084 // Uncomment this if your compiler has problem with not-type 00085 // default template parameters 00086 // # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 00087 00088 // Define if compiler has 00089 // trouble with functions getting non-type-parameterized classes as parameters 00090 // # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 00091 00092 // Uncomment this if your compiler lacks static data members. 00093 // Uncomment next line if your compiler supports __attribute__((weak)) 00094 // # define _STLP_NO_STATIC_TEMPLATE_DATA 1 00095 // # define _STLP_WEAK_ATTRIBUTE 1 00096 00097 // Uncomment this if your compiler does not support namespaces 00098 // # define _STLP_HAS_NO_NAMESPACES 1 00099 00100 // Uncomment if "using" keyword does not work with template types 00101 // # define _STLP_BROKEN_USING_DIRECTIVE 1 00102 00103 // Uncomment this if your compiler does not support exceptions 00104 // # define _STLP_HAS_NO_EXCEPTIONS 1 00105 00106 // Uncomment this if your compiler does not support exception specifications 00107 // # define _STLP_NO_EXCEPTION_SPEC 00108 00109 // Define this if your compiler requires return statement after throw() 00110 // # define _STLP_THROW_RETURN_BUG 1 00111 00112 // Header <new> that comes with the compiler 00113 // does not define bad_alloc exception 00114 // # define _STLP_NO_BAD_ALLOC 1 00115 00116 // Uncomment if member template methods are not available 00117 // # define _STLP_NO_MEMBER_TEMPLATES 1 00118 00119 // Uncomment if member template classes are not available 00120 // # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 00121 00122 // Uncomment if no "template" keyword should be used with member template classes 00123 // # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 00124 00125 // Uncomment if friend member templates are not available 00126 // # define _STLP_NO_FRIEND_TEMPLATES 1 00127 00128 // Compiler does not accept friend declaration qualified with namespace name. 00129 // # define _STLP_NO_QUALIFIED_FRIENDS 1 00130 00131 // Uncomment if partial specialization is not available 00132 // # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 00133 00134 // Define if class being partially specialized require full name (template parameters) 00135 // of itself for method declarations 00136 // # define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS 00137 00138 // Compiler has problems specializing members of partially 00139 // specialized class 00140 // # define _STLP_MEMBER_SPECIALIZATION_BUG 00141 00142 // Uncomment if partial order of template functions is not available 00143 // # define _STLP_NO_FUNC_PARTIAL_ORDERING 1 00144 00145 // Uncomment if specialization of methods is not allowed 00146 // # define _STLP_NO_METHOD_SPECIALIZATION 1 00147 00148 // Uncomment if full specialization does not use partial spec. syntax : template <> struct .... 00149 // # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 00150 00151 // Uncomment if compiler does not support explicit template arguments for functions 00152 // # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 00153 00154 // Uncomment if "__typetraits is being instaniated automatically by the compiler (SGI only ?) 00155 // # define _STLP_AUTOMATIC_TYPE_TRAITS 1 00156 00157 // Uncomment this if your compiler can't inline while(), for() 00158 // # define _STLP_LOOP_INLINE_PROBLEMS 1 00159 00160 // Define if the compiler fails to match a template function argument of base 00161 // # define _STLP_BASE_MATCH_BUG 1 00162 00163 // Define if the compiler fails to match a template function argument of base 00164 // (non-template) 00165 //# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 00166 00167 // Define if the compiler rejects outline method definition 00168 // explicitly taking nested types/typedefs 00169 // # define _STLP_NESTED_TYPE_PARAM_BUG 1 00170 00171 // Compiler requires typename keyword on outline method definition 00172 // explicitly taking nested types/typedefs 00173 // #define _STLP_TYPENAME_ON_RETURN_TYPE 00174 00175 // Define if the baseclass typedefs not visible from outside 00176 // # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 00177 00178 // if your compiler have serious problems with typedefs, try this one 00179 // # define _STLP_BASE_TYPEDEF_BUG 1 00180 00181 // Uncomment if getting errors compiling mem_fun* adaptors 00182 // # define _STLP_MEMBER_POINTER_PARAM_BUG 1 00183 00184 // # define _STLP_UNINITIALIZABLE_PRIVATE 1 00185 00186 // Defined if the compiler 00187 // has trouble instantiating static array members with dimension defined as enum 00188 // # define _STLP_STATIC_ARRAY_BUG 00189 00190 // * _STLP_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a 00191 // constant-initializer in the declaration of a static const data member 00192 // of integer type. (See section 9.4.2, paragraph 4, of the C++ standard.) 00193 // # define _STLP_STATIC_CONST_INIT_BUG 00194 00195 // Define if default constructor for builtin integer type fails to initialize it to 0 00196 // # define _STLP_DEFAULT_CONSTRUCTOR_BUG 1 00197 00198 // Defined if constructor 00199 // required to explicitly call member's default constructors for const objects 00200 // # define _STLP_CONST_CONSTRUCTOR_BUG 1 00201 00202 // Defined if the compiler has trouble calling POD-types constructors/destructors 00203 // # define _STLP_TRIVIAL_CONSTRUCTOR_BUG 1 00204 // # define _STLP_TRIVIAL_DESTRUCTOR_BUG 1 00205 00206 // Define if having problems specializing maps/sets with 00207 // key type being const 00208 // # define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG 00209 00210 // Uncomment this to disable -> operators on all iterators 00211 // # define _STLP_NO_ARROW_OPERATOR 1 00212 00213 // Uncomment this to disble at() member functions for containers 00214 // # define _STLP_NO_AT_MEMBER_FUNCTION 1 00215 00216 // Uncomment if native new-style iostreams are not available 00217 // #define _STLP_HAS_NO_NEW_IOSTREAMS 1 00218 00219 // Define this if compiler lacks <exception> header 00220 // # define _STLP_NO_EXCEPTION_HEADER 1 00221 00222 // Uncomment this if your C library has lrand48() function 00223 // # define _STLP_RAND48 1 00224 00225 // Uncomment if native new-style C library headers lile <cstddef>, etc are not available. 00226 // # define _STLP_HAS_NO_NEW_C_HEADERS 1 00227 00228 // uncomment if new-style headers <new> is available 00229 // # define _STLP_HAS_NEW_NEW_HEADER 1 00230 00231 // uncomment this if <iostream> and other STD headers put their stuff in ::namespace, 00232 // not std:: 00233 // # define _STLP_VENDOR_GLOBAL_STD 00234 00235 // uncomment this if <cstdio> and the like put stuff in ::namespace, 00236 // not std:: 00237 // # define _STLP_VENDOR_GLOBAL_CSTD 00238 00239 // Edit relative path below (or put full path) to get native 00240 // compiler headers included. Default is "../include". 00241 // C headers may reside in different directory, so separate macro is provided. 00242 // Hint : never install STLport in the directory that ends with "include" 00243 // # define _STLP_NATIVE_INCLUDE_PATH ../include 00244 // # define _STLP_NATIVE_C_INCLUDE_PATH ../include 00245 // # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include 00246 00247 // This macro constructs header path from directory and name. 00248 // You may change it if your compiler does not understand "/". 00249 // # define _STLP_MAKE_HEADER(path, header) <path/header> 00250 00251 // This macro constructs native include header path from include path and name. 00252 // You may have do define it if experirncing problems with preprocessor 00253 // # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header) 00254 00255 // Same for C headers 00256 // _STLP_NATIVE_C_HEADER(header) 00257 00258 //========================================================== 00259 # endif