Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygen_reactos.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (c) 2010 00003 * Jérôme Gardou 00004 * 00005 * 00006 * This material is provided "as is", with absolutely no warranty expressed 00007 * or implied. Any use is at your own risk. 00008 * 00009 * This file is in public domain. 00010 */ 00011 00012 /* 00013 * Purpose of this file : 00014 * 00015 * A list of COMPILER-SPECIFIC portion of STLport settings. 00016 * This file is provided to help in manual configuration 00017 * of STLport. This file is being included by stlcomp.h 00018 * when STLport is unable to identify your compiler. 00019 * Please remove the error diagnostic below before adjusting 00020 * macros. 00021 * 00022 */ 00023 #ifndef _STLP_REACTOS_H 00024 #define _STLP_REACTOS_H 00025 00026 #if !defined (_STLP_COMPILER) 00027 # ifdef _MSC_VER 00028 # define _STLP_COMPILER "Microsoft Visual Studio C++" 00029 # define _STLP_MSVC _MSC_VER 00030 # define _STLP_MSVC_LIB _MSC_VER 00031 # elif defined __MINGW32__ 00032 # define _STLP_COMPILER "gcc" 00033 # else 00034 # error "Unrecognized compiler for reactos!" 00035 # endif 00036 #endif 00037 00038 // We are WIN32 00039 #define _STLP_WIN32 00040 00041 // We declspec 00042 #define _STLP_IMPORT_DECLSPEC __declspec(dllimport) 00043 #define _STLP_EXPORT_DECLSPEC __declspec(dllexport) 00044 00045 //========================================================== 00046 00047 // the values choosen here as defaults try to give 00048 // maximum functionality on the most conservative settings 00049 00050 // Mostly correct guess, change it for Alpha (and other environments 00051 // that has 64-bit "long") 00052 # define _STLP_UINT32_T unsigned __int32 00053 00054 // Disables wchar_t functionality 00055 // # define _STLP_NO_WCHAR_T 1 00056 00057 // Define if wchar_t is not an intrinsic type, and is actually a typedef to unsigned short. 00058 // # define _STLP_WCHAR_T_IS_USHORT 1 00059 00060 // Uncomment if long long is available 00061 # define _STLP_LONG_LONG __int64 00062 // Uncomment if long double is not available 00063 // # define _STLP_NO_LONG_DOUBLE 1 00064 00065 // Uncomment this if your compiler does not support "typename" keyword 00066 // # define _STLP_NEED_TYPENAME 1 00067 00068 // Uncomment this if your compiler does not support "mutable" keyword 00069 // # define _STLP_NEED_MUTABLE 1 00070 00071 // Uncomment this if your compiler does not support "explicit" keyword 00072 // # define _STLP_NEED_EXPLICIT 1 00073 00074 // Uncomment if new-style-casts like const_cast<> are not available 00075 // # define _STLP_NO_NEW_STYLE_CASTS 1 00076 00077 // Uncomment this if your compiler does not have "bool" type 00078 // # define _STLP_NO_BOOL 1 00079 00080 // Uncomment this if your compiler does not have "bool" type, but has "bool" keyword reserved 00081 // # define _STLP_DONT_USE_BOOL_TYPEDEF 1 00082 00083 // Uncomment this if your compiler does not have "bool" type, but defines "bool" in <yvals.h> 00084 // # define _STLP_YVALS_H 1 00085 00086 // Uncomment this if your compiler has limited or no default template arguments for classes 00087 // # define _STLP_LIMITED_DEFAULT_TEMPLATES 1 00088 00089 // Uncomment this if your compiler support only complete (not dependent on other parameters) 00090 // types as default parameters for class templates 00091 // # define _STLP_DEFAULT_TYPE_PARAM 1 00092 00093 // Uncomment this if your compiler do not support default parameters in template class methods 00094 // # define _STLP_DONT_SUP_DFLT_PARAM 1 00095 00096 // Uncomment this if your compiler has problem with not-type 00097 // default template parameters 00098 // # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 00099 00100 // Define if compiler has 00101 // trouble with functions getting non-type-parameterized classes as parameters 00102 // # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 00103 00104 // Uncomment this if your compiler does not support namespaces 00105 // # define _STLP_HAS_NO_NAMESPACES 1 00106 00107 // Uncomment if "using" keyword does not work with template types 00108 // # define _STLP_BROKEN_USING_DIRECTIVE 1 00109 00110 // Uncomment this if your compiler does not support exceptions 00111 // # define _STLP_HAS_NO_EXCEPTIONS 1 00112 00113 // Uncomment this when you are able to detect that the user do not 00114 // want to use the exceptions feature. 00115 // # define _STLP_DONT_USE_EXCEPTIONS 1 00116 00117 // Uncomment this if your compiler does not support exception specifications 00118 // # define _STLP_NO_EXCEPTION_SPEC 00119 00120 // Define this if your compiler requires return statement after throw() 00121 // # define _STLP_THROW_RETURN_BUG 1 00122 00123 // Define this if your compiler do not support return of void 00124 // # define _STLP_DONT_RETURN_VOID 1 00125 00126 // Header <new> that comes with the compiler 00127 // does not define bad_alloc exception 00128 // # define _STLP_NO_BAD_ALLOC 1 00129 00130 // Define this if your compiler do not throw bad_alloc from the new operator 00131 // # define _STLP_NEW_DONT_THROW_BAD_ALLOC 1 00132 00133 // Define this if your compiler has no rtti support or if it has been disabled 00134 // # define _STLP_NO_RTTI 1 00135 00136 // Define this if there is no native type_info definition 00137 # define _STLP_NO_TYPEINFO 1 00138 00139 // Uncomment if member template methods are not available 00140 // # define _STLP_NO_MEMBER_TEMPLATES 1 00141 00142 // Uncomment if member template classes are not available 00143 // # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 00144 00145 // Uncomment if your compiler do not support the std::allocator rebind technique 00146 // This is a special case of bad member template classes support, it is automatically 00147 // defined if _STLP_NO_MEMBER_TEMPLATE_CLASSES is defined. 00148 // # define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1 00149 00150 // Uncomment if no "template" keyword should be used with member template classes 00151 // # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 00152 00153 // Compiler does not accept friend declaration qualified with namespace name. 00154 // # define _STLP_NO_QUALIFIED_FRIENDS 1 00155 00156 // Uncomment if partial specialization is not available 00157 // # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 00158 00159 // Define if class being partially specialized require full name (template parameters) 00160 // of itself for method declarations 00161 // # define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS 00162 00163 // Compiler has problem with qualified specializations (cont int, volatile int...) 00164 // # define _STLP_QUALIFIED_SPECIALIZATION_BUG 00165 00166 // Compiler has problems specializing members of partially 00167 // specialized class 00168 // # define _STLP_MEMBER_SPECIALIZATION_BUG 00169 00170 // Uncomment if partial order of template functions is not available 00171 // # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 00172 00173 // Uncomment if specialization of methods is not allowed 00174 // # define _STLP_NO_METHOD_SPECIALIZATION 1 00175 00176 // Uncomment if full specialization does not use partial spec. syntax : template <> struct .... 00177 // # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 00178 00179 // Uncomment if compiler does not support explicit template arguments for functions 00180 // # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 00181 00182 // Uncomment this if your compiler can't inline while(), for() 00183 // # define _STLP_LOOP_INLINE_PROBLEMS 1 00184 00185 // Define if the compiler fails to match a template function argument of base 00186 // # define _STLP_BASE_MATCH_BUG 1 00187 00188 // Define if the compiler fails to match a template function argument of base 00189 // (non-template) 00190 //# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 00191 00192 // Define if the compiler rejects outline method definition 00193 // explicitly taking nested types/typedefs 00194 // # define _STLP_NESTED_TYPE_PARAM_BUG 1 00195 00196 // Compiler requires typename keyword on outline method definition 00197 // explicitly taking nested types/typedefs 00198 // #define _STLP_TYPENAME_ON_RETURN_TYPE 00199 00200 // Define if the baseclass typedefs not visible from outside 00201 // # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 00202 00203 // if your compiler have serious problems with typedefs, try this one 00204 // # define _STLP_BASE_TYPEDEF_BUG 1 00205 00206 // Uncomment if getting errors compiling mem_fun* adaptors 00207 // # define _STLP_MEMBER_POINTER_PARAM_BUG 1 00208 00209 // Uncomment if the compiler can't handle a constant-initializer in the 00210 // declaration of a static const data member of integer type. 00211 // (See section 9.4.2, paragraph 4, of the C++ standard.) 00212 // # define _STLP_STATIC_CONST_INIT_BUG 00213 00214 // Uncomment to indicate that the compiler do not like static constant 00215 // definition. 00216 // Meaningfull only if _STLP_STATIC_CONST_INIT_BUG is not defined. 00217 // # define _STLP_NO_STATIC_CONST_DEFINITION 00218 00219 // Define if default constructor for builtin integer type fails to initialize it to 0 00220 // In expression like new(&char) char(): 00221 //# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 00222 // In default function parameter like _M_method(_Tp __x = _Tp()) 00223 //# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 00224 00225 // Defined if constructor 00226 // required to explicitly call member's default constructors for const objects 00227 // # define _STLP_CONST_CONSTRUCTOR_BUG 1 00228 00229 // Defined if the compiler has trouble calling POD-types constructors/destructors 00230 // # define _STLP_TRIVIAL_CONSTRUCTOR_BUG 1 00231 // # define _STLP_TRIVIAL_DESTRUCTOR_BUG 1 00232 00233 // Define if having problems specializing maps/sets with 00234 // key type being const 00235 // # define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG 00236 00237 // Uncomment this to disable -> operators on all iterators 00238 // # define _STLP_NO_ARROW_OPERATOR 1 00239 00240 // Uncomment this to disble at() member functions for containers 00241 // # define _STLP_NO_AT_MEMBER_FUNCTION 1 00242 00243 // Define this if compiler lacks <exception> header 00244 // # define _STLP_NO_EXCEPTION_HEADER 1 00245 00246 // Uncomment this if your C library has lrand48() function 00247 // # define _STLP_RAND48 1 00248 00249 // Uncomment if native new-style C library headers lile <cstddef>, etc are not available. 00250 // # define _STLP_HAS_NO_NEW_C_HEADERS 1 00251 00252 // uncomment if new-style headers <new> is available 00253 // # define _STLP_HAS_NEW_NEW_HEADER 1 00254 00255 // uncomment this if <iostream> and other STD headers put their stuff in ::namespace, 00256 // not std:: 00257 // # define _STLP_VENDOR_GLOBAL_STD 00258 00259 // uncomment this if <cstdio> and the like put stuff in ::namespace, 00260 // not std:: 00261 // # define _STLP_VENDOR_GLOBAL_CSTD 00262 00263 // uncomment this if your compiler consider as ambiguous a function imported within 00264 // the stlport namespace and called without scope (:: or std::) 00265 // # define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1 00266 00267 // uncomment this if your compiler define all the C math functions C++ additional 00268 // overloads in ::namespace and not only in std::. 00269 // # define _STLP_HAS_GLOBAL_C_MATH_FUNCTIONS 1 00270 00271 #define MKSTRING_(a) #a 00272 #define MKSTRING(a) MKSTRING_(a) 00273 #define _STLP_NATIVE_C_HEADER(header) MKSTRING(NATIVE_C_INCLUDE/header) 00274 #define _STLP_NATIVE_CPP_C_HEADER(header) MKSTRING(NATIVE_CPP_INCLUDE/header) 00275 #define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) MKSTRING(NATIVE_CPP_INCLUDE/header) 00276 00277 00278 // This macro constructs header path from directory and name. 00279 // You may change it if your compiler does not understand "/". 00280 00281 // This macro constructs native include header path from include path and name. 00282 // You may have do define it if experimenting problems with preprocessor 00283 // # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header) 00284 00285 // Same for C headers 00286 // #define _STLP_NATIVE_C_HEADER(header) 00287 00288 //========================================================== 00289 00290 // We have no llabs, lldiv, etc. 00291 #define _STLP_NO_VENDOR_STDLIB_L 00292 00293 // new_handler is in global namespace 00294 # define _STLP_GLOBAL_NEW_HANDLER 00295 00296 // terminate function is in global namespace 00297 #define _STLP_VENDOR_TERMINATE_STD 00298 00299 // We don't want stlport to use its own namespace 00300 #define _STLP_NO_OWN_NAMESPACE 00301 00302 // Calling convention 00303 #define _STLP_CALL __cdecl 00304 00305 #ifdef _M_AMD64 00306 #ifdef __cplusplus 00307 extern "C" { 00308 #endif 00309 void * _InterlockedExchangePointer(void * volatile * Target, void * Value); 00310 _STLP_IMPORT_DECLSPEC void* InterlockedFlushSList(void*); 00311 _STLP_IMPORT_DECLSPEC void* InterlockedPopEntrySList(void*); 00312 _STLP_IMPORT_DECLSPEC void* InterlockedPushEntrySList(void*, void*); 00313 #ifdef __cplusplus 00314 } 00315 #endif 00316 00317 #ifdef _BUILD_STLPORT 00318 #define InterlockedPopEntrySList(list) reinterpret_cast<_STLP_atomic_freelist::item*>(InterlockedPopEntrySList(list)) 00319 #define InterlockedFlushSList(list) reinterpret_cast<_STLP_atomic_freelist::item*>(InterlockedFlushSList(list)) 00320 #endif 00321 00322 #undef __cdecl__ 00323 #define __cdecl__ 00324 #endif /* _M_AMD64 */ 00325 00326 // Include stlport windows specifics 00327 #include "_windows.h" 00328 00329 #endif Generated on Sat May 26 2012 04:28:24 for ReactOS by
1.7.6.1
|