00001 /* 00002 * Copyright (c) 1999 00003 * Boris Fomitchev 00004 * 00005 * This material is provided "as is", with absolutely no warranty expressed 00006 * or implied. Any use is at your own risk. 00007 * 00008 * Permission to use or copy this software for any purpose is hereby granted 00009 * without fee, provided the above notices are retained on all copies. 00010 * Permission to modify the code and to distribute modified code is granted, 00011 * provided the above notices are retained, and a notice that the code was 00012 * modified is included with the above copyright notice. 00013 * 00014 */ 00015 00016 /* 00017 * Purpose of this file : 00018 * 00019 * To hold user-definable portion of STLport settings which may be overridden 00020 * on per-project basis. 00021 * Please note that if you use STLport iostreams (compiled library) then you have 00022 * to use consistent settings when you compile STLport library and your project. 00023 * Those settings are defined in _site_config.h and have to be the same for a given 00024 * STLport installation. 00025 * 00026 */ 00027 00028 00029 //========================================================== 00030 // User-settable macros that control compilation: 00031 // Features selection 00032 //========================================================== 00033 00034 /* _STLP_NO_OWN_IOSTREAMS: 00035 * __STL_NO_SGI_IOSTREAMS (in older versions) 00036 * This is major configuration switch. 00037 * Turn it on to disable use of SGI iostreams and use wrappers 00038 * around your compiler's iostreams, like before. 00039 * Keep it off if you want to use SGI iostreams 00040 * (Note that in this case you have to compile library in ../src 00041 * and supply resulting library at link time). 00042 * 00043 */ 00044 00045 // # define _STLP_NO_OWN_IOSTREAMS 1 00046 00047 00048 /* 00049 * This macro only works in non-SGI iostreams mode. 00050 * 00051 * Uncomment to suppress using new-style streams even if they are 00052 * available. 00053 * Beware - _STLP_USE_OWN_NAMESPACE depends on this macro, too. 00054 * Do that only if you are absolutely sure backwards-compatible 00055 * <iostream.h> is not actually a wrapper with <iostream> 00056 * Hint : In VC++ 6.x, they are not. 00057 */ 00058 00059 // #define _STLP_NO_NEW_IOSTREAMS 1 00060 00061 /* 00062 * Use this switch for embedded systems where no iostreams are available 00063 * at all. STLport own iostreams will also get disabled automatically then. 00064 */ 00065 // # define _STLP_NO_IOSTREAMS 1 00066 00067 /* 00068 * Set _STLP_DEBUG to turn the "Debug Mode" on. 00069 * That gets you checked iterators/ranges in the manner 00070 * of "Safe STL". Very useful for debugging. Thread-safe. 00071 * Please do not forget to link proper STLport library flavor 00072 * (e.g libstlport_gcc_stldebug.a) when you set this flag in STLport iostreams mode. 00073 */ 00074 // #define _STLP_DEBUG 1 00075 00076 00077 /* 00078 * 00079 * _STLP_NO_CUSTOM_IO : define this if you do not instantiate basic_xxx iostream classes with custom types (which is most likely the case). 00080 * Custom means types other than char, wchar and char_traits<>, 00081 * like basic_ostream<my_char_type, my_traits<my_char_type> > 00082 * When this option is on, most non-inline template functions definitions for iostreams are not seen by the client. 00083 * Default is off, just not to break compilation for those who do use those types. 00084 * which saves a lot of compile time for most compilers, also object and executable size for some. 00085 * That also guarantees that you still use optimized standard i/o when you compile your program without optimization. 00086 * Option does not affect STLport library build; you may use the same binary library with and without this option, 00087 * on per-project basis. 00088 * 00089 */ 00090 // #define _STLP_NO_CUSTOM_IO 00091 00092 00093 /* 00094 * _STLP_NO_RELOPS_NAMESPACE: if defined, don't put the relational 00095 * operator templates (>, <=. >=, !=) in namespace std::rel_ops, even 00096 * if the compiler supports namespaces. 00097 * Note : if the compiler do not support namespaces, those operators are not be provided by default, 00098 * to simulate hiding them into rel_ops. This was proved to resolve many compiler bugs with ambiguity. 00099 */ 00100 00101 // #define _STLP_NO_RELOPS_NAMESPACE 1 00102 00103 00104 /* 00105 * If _STLP_USE_OWN_NAMESPACE is in effect, STLport will try to rename std:: for the user 00106 * to _STL::. If you don't want this feature, or if it does not quite work for your 00107 * setup (like you are using third-party library that has to use vendor's STL), 00108 * please define the following switch : 00109 */ 00110 // # define _STLP_DONT_REDEFINE_STD 1 00111 00112 00113 /* 00114 * _STLP_WHOLE_NATIVE_STD : only meaningful in _STLP_USE_OWN_NAMESPACE mode. 00115 * Normally, STLport only imports necessary components from native std:: namespace - 00116 * those not yet provided by STLport (<iostream>, <complex>, etc.) 00117 * and their dependencies (<string>, <stdexcept>). 00118 * You might want everything from std:: being available in std:: namespace when you 00119 * include corresponding STLport header (like STLport <map> provides std::map as well, etc.), 00120 * if you are going to use both stlport:: and std:: components in your code. 00121 * Otherwise this option is not recommended as it increases the size of your object files 00122 * and slows down compilation. 00123 */ 00124 // # define _STLP_WHOLE_NATIVE_STD 00125 00126 00127 /* 00128 * Use this option to catch uninitialized members in your classes. 00129 * When it is set, construct() and destroy() fill the class storage 00130 * with _STLP_SHRED_BYTE (see below). 00131 * Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically. 00132 */ 00133 00134 // # define _STLP_DEBUG_UNINITIALIZED 1 00135 00136 /* 00137 * Uncomment and provide a definition for the byte with which raw memory 00138 * will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED is defined. 00139 * Choose a value which is likely to cause a noticeable problem if dereferenced 00140 * or otherwise abused. A good value may already be defined for your platform; see 00141 * stl_config.h 00142 */ 00143 // #define _STLP_SHRED_BYTE 0xA3 00144 00145 /* 00146 * This option is for gcc users only and only affects systems where native linker 00147 * does not let gcc to implement automatic instantiation of static template data members/ 00148 * It is being put in this file as there is no way to check if we are using GNU ld automatically, 00149 * so it becomes user's responsibility. 00150 * 00151 */ 00152 00153 // #define _STLP_GCC_USES_GNU_LD 00154 00155 00156 //========================================================== 00157 // Compatibility section 00158 //========================================================== 00159 00160 /* 00161 * Define this macro to disable anachronistic constructs (like the ones used in HP STL and 00162 * not included in final standard, etc. 00163 */ 00164 // define _STLP_NO_ANACHRONISMS 1 00165 00166 /* 00167 * Define this macro to disable STLport extensions (for example, to make sure your code will 00168 * compile with some other implementation ) 00169 */ 00170 // define _STLP_NO_EXTENSIONS 1 00171 00172 00173 /* 00174 * You should define this macro if compiling with MFC - STLport <stl/_config.h> 00175 * then include <afx.h> instead of <windows.h> to get synchronisation primitives 00176 * 00177 */ 00178 00179 // # define _STLP_USE_MFC 1 00180 00181 00182 // boris : this setting is here as we cannot detect precense of new Platform SDK automatically 00183 // If you are using new PSDK with VC++ 6.0 or lower, please define this to get correct prototypes for InterlockedXXX functions 00184 // # define _STLP_NEW_PLATFORM_SDK 1 00185 00186 /* 00187 * Use minimum set of default arguments on template classes that have more 00188 * than one - for example map<>, set<>. 00189 * This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on. 00190 * If _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is set, you'll be able to compile 00191 * set<T> with those compilers, but you'll have to use __set__<T, less<T>> 00192 * 00193 * Affects : map<>, multimap<>, set<>, multiset<>, hash_*<>, 00194 * queue<>, priority_queue<>, stack<>, istream_iterator<> 00195 */ 00196 00197 // # define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS 1 00198 00199 //========================================================== 00200 00201 // Local Variables: 00202 // mode:C++ 00203 // End: