ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.