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

_msvc.h
Go to the documentation of this file.
00001 /* STLport configuration file
00002  * It is internal STLport header - DO NOT include it directly
00003  * Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0, ICL
00004  */
00005 
00006 #if !defined (_STLP_COMPILER)
00007 #  define _STLP_COMPILER "Microsoft Visual Studio C++"
00008 #endif
00009 
00010 #if !defined (__ICL) && !defined (_STLP_MSVC)
00011 #  define _STLP_MSVC _MSC_VER
00012 #endif
00013 
00014 #if !defined (_STLP_MSVC_LIB)
00015 #  define _STLP_MSVC_LIB _MSC_VER
00016 #endif
00017 
00018 #if defined (__BUILDING_STLPORT) && defined (_MANAGED)
00019 /* Building a managed version of STLport is not supported because we haven't
00020  * found a good reason to support it. However, building a managed translation
00021  * unit using STLport _is_ supported.
00022  */
00023 #  error Sorry but building a managed version of STLport is not supported.
00024 #endif
00025 
00026 #if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
00027 /* This is a specific section for compilers coming with platform SDKs. Native
00028  * library coming with it is different from the one coming with commercial
00029  * MSVC compilers so there is some specific settings.
00030  */
00031 #  define _STLP_NATIVE_INCLUDE_PATH ../crt
00032 #  define _STLP_VENDOR_GLOBAL_CSTD
00033 #  define _STLP_VENDOR_TERMINATE_STD
00034 #  define _STLP_GLOBAL_NEW_HANDLER
00035 #  if (_STLP_MSVC_LIB <= 1400)
00036 /* We hope this bug will be fixed in future versions. */
00037 #    define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
00038 #  endif
00039 #endif
00040 
00041 #define _STLP_CALL __cdecl
00042 
00043 #ifndef _STLP_LONG_LONG
00044 #  define _STLP_LONG_LONG __int64
00045 #endif
00046 
00047 #define _STLP_PRAGMA_ONCE
00048 
00049 /* These switches depend on compiler flags. We are hoping here that compilers
00050  * simulating MSVC behavior use identical macros to report compilation context.
00051  * Otherwise those macros will have to be undef in specific compiler configuration
00052  * files.
00053  */
00054 #ifndef _CPPUNWIND
00055 #  define _STLP_DONT_USE_EXCEPTIONS 1
00056 #endif
00057 
00058 #ifndef _CPPRTTI
00059 #  define _STLP_NO_RTTI 1
00060 #endif
00061 
00062 #if defined (_MT) && !defined (_STLP_NO_THREADS)
00063 #  define _STLP_THREADS 1
00064 #endif
00065 
00066 #if !defined (_NATIVE_WCHAR_T_DEFINED)
00067 #  define _STLP_WCHAR_T_IS_USHORT 1
00068 #endif
00069 
00070 #define _STLP_NO_VENDOR_STDLIB_L 1
00071 
00072 #if defined (_STLP_MSVC)
00073 
00074 #  if (_STLP_MSVC < 1200)
00075 #    error Microsoft Visual C++ compilers before version 6 (SP5) are not supported.
00076 #  endif
00077 
00078 #  define _STLP_NORETURN_FUNCTION __declspec(noreturn)
00079 
00080 /* Full compiler version comes from boost library intrinsics.hpp header. */
00081 #  if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215)
00082 #    define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
00083 #    define _STLP_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
00084 #    define _STLP_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
00085 #    define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
00086 #    define _STLP_IS_POD(T) __is_pod(T)
00087 #    define _STLP_HAS_TYPE_TRAITS_INTRINSICS
00088 #  endif
00089 
00090 #  ifndef _STLP_MSVC50_COMPATIBILITY
00091 #    define _STLP_MSVC50_COMPATIBILITY   1
00092 #  endif
00093 
00094 #  define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1
00095 #  define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1
00096 #  define _STLP_NO_STATIC_CONST_DEFINITION 1
00097 
00098 /* # ifndef __BUILDING_STLPORT
00099  * #  define _STLP_USE_TEMPLATE_EXPORT 1
00100  * # endif
00101  */
00102 
00105 #  if defined (UNDER_CE)
00106 /* eVCx:
00107 uncaught_exception is declared in the SDKs delivered with eVC4 (eVC3 is
00108 unknown) and they all reside in namespace 'std' there. However, they are not
00109 part of any lib so linking fails. When using VC8 to crosscompile for CE 5 on
00110 an ARMV4I, the uncaught_exception test fails, the function returns the wrong
00111 value. */
00112 /* All eVCs up to at least VC8/CE5 have a broken new operator that
00113    returns null instead of throwing bad_alloc. */
00114 #    define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
00115 #  else
00116 /* VCx:
00117 These are present at least since VC6, but the uncaught_exception() of VC6 is
00118 broken, it returns the wrong value in the unittests. 7.1 and later seem to
00119 work, 7.0 is still unknown (we assume it works until negative report). */
00120 #    if (_STLP_MSVC >= 1300)// VC7 and later
00121 #      undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
00122 #    endif
00123 #    if (_STLP_MSVC < 1300)
00124 #      define _STLP_NOTHROW
00125 #    endif
00126 #  endif
00127 
00128 #  if (_STLP_MSVC <= 1300)
00129 #    define _STLP_STATIC_CONST_INIT_BUG   1
00130 #    define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
00131 #    define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
00132 /* There is no partial spec, and MSVC breaks on simulating it for iterator_traits queries */
00133 #    define _STLP_USE_OLD_HP_ITERATOR_QUERIES
00134 #    define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
00135 #    define _STLP_NO_METHOD_SPECIALIZATION 1
00136 #    define _STLP_DEF_CONST_PLCT_NEW_BUG 1
00137 #    define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1
00138 /* VC++ cannot handle default allocator argument in template constructors */
00139 #    define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
00140 #    define _STLP_NO_QUALIFIED_FRIENDS    1
00141 #  endif
00142 
00143 #  if (_STLP_MSVC < 1300) /* including MSVC 6.0 */
00144 #    define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
00145 #    define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1
00146 #  endif
00147 
00148 #  define _STLP_HAS_NATIVE_FLOAT_ABS 1
00149 
00150 // TODO: some eVC4 compilers report _MSC_VER 1201 or 1202, which category do they belong to?
00151 #  if (_STLP_MSVC > 1200) && (_STLP_MSVC < 1310)
00152 #    define _STLP_NO_MOVE_SEMANTIC
00153 #  endif
00154 
00155 #  if (_STLP_MSVC < 1300)
00156 /* TODO: remove this if it is handled and documented elsewhere
00157  * dums: VC6 do not handle correctly member templates of class that are explicitely
00158  * instanciated to be exported. There is a workaround, seperate the non template methods
00159  * from the template ones within 2 different classes and only export the non template one.
00160  * It is implemented for basic_string and locale at the writing of this note.
00161  * However this problem hos not  been considered as important enough to remove template member
00162  * methods for other classes. Moreover Boost (www.boost.org) required it to be granted.
00163  * The workaround is activated thanks to the _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro defined
00164  * later in this config file.
00165  */
00166 /*
00167 #    if defined (_DLL)
00168 #      define _STLP_NO_MEMBER_TEMPLATES 1
00169 #    endif
00170 */
00171 
00172 /* Boris : not defining this macro for SP5 causes other problems */
00173 /*#    if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 ) */
00174 #    define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
00175 /*#    endif */
00176 #    define _STLP_DONT_USE_BOOL_TYPEDEF 1
00177 #    define _STLP_DONT_RETURN_VOID 1
00178 #  endif
00179 
00180 #  if (_STLP_MSVC < 1300) /* MSVC 6.0 and earlier */
00181 #    define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
00182 /* defined for DEBUG and NDEBUG too, to allow user mix own debug build with STLP release library */
00183 #    define _STLP_USE_ABBREVS
00184 #  endif
00185 
00186 #endif /* _STLP_MSVC */
00187 
00188 /* The desktop variants starting with VC8 have a set of more secure replacements
00189  * for the error-prone string handling functions of the C standard lib. */
00190 /* When user do not consider 'unsafe' string functions as deprecated using _CRT_SECURE_NO_DEPRECATE
00191  * macro we use 'unsafe' functions for performance reasons. */
00192 #if (_STLP_MSVC_LIB >= 1400) && !defined (_STLP_USING_PLATFORM_SDK_COMPILER) && !defined (UNDER_CE) && \
00193     !defined (_CRT_SECURE_NO_DEPRECATE)
00194 #  define _STLP_USE_SAFE_STRING_FUNCTIONS 1
00195 #endif
00196 
00197 #if (_STLP_MSVC_LIB <= 1310)
00198 #  define _STLP_VENDOR_GLOBAL_CSTD
00199 #endif
00200 
00201 #if (_STLP_MSVC_LIB >= 1300) && !defined(UNDER_CE)
00202 /* Starting with MSVC 7.0 and compilers simulating it,
00203  * we assume that the new SDK is granted:
00204  */
00205 #  define _STLP_NEW_PLATFORM_SDK 1
00206 #endif
00207 
00208 #if (_STLP_MSVC_LIB < 1300) /* including MSVC 6.0 */
00209 #  define _STLP_GLOBAL_NEW_HANDLER 1
00210 #  define _STLP_VENDOR_UNEXPECTED_STD
00211 #  define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
00212 #endif
00213 
00214 #define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
00215 #define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
00216 #define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
00217 #define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
00218 
00219 #if defined (__DLL) || defined (_DLL) || defined (_RTLDLL) || defined (_AFXDLL)
00220 #  define _STLP_RUNTIME_DLL
00221 #endif
00222 #if defined (__BUILDING_STLPORT) && \
00223    (defined (_STLP_USE_DYNAMIC_LIB) || \
00224     defined (_STLP_RUNTIME_DLL) && !defined (_STLP_USE_STATIC_LIB))
00225 #  define _STLP_DLL
00226 #endif
00227 #include <stl/config/_detect_dll_or_lib.h>
00228 #undef _STLP_RUNTIME_DLL
00229 #undef _STLP_DLL
00230 
00231 #if defined (_STLP_USE_DYNAMIC_LIB)
00232 #  undef  _STLP_USE_DECLSPEC
00233 #  define _STLP_USE_DECLSPEC 1
00234 #  if defined (_STLP_MSVC) && (_STLP_MSVC < 1300)
00235 #    define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 1
00236 #  endif
00237 #endif
00238 
00239 #if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD)
00240 #  if !defined (_MSC_EXTENSIONS) || defined (_STLP_MSVC) && (_STLP_MSVC >= 1300)
00241 #    define _STLP_IMPORT_TEMPLATE_KEYWORD
00242 #  else
00243 #    define _STLP_IMPORT_TEMPLATE_KEYWORD extern
00244 #  endif
00245 #endif
00246 #define _STLP_EXPORT_TEMPLATE_KEYWORD
00247 
00248 #include <stl/config/_auto_link.h>
00249 
00250 #if defined (_STLP_USING_PLATFORM_SDK_COMPILER)
00251 /* The Windows 64 bits SDK required for the moment link to bufferoverflowU.lib for
00252  * additional buffer overrun checks. Rather than require the STLport build system and
00253  * users to explicitely link with it we use the MSVC auto link feature.
00254  */
00255 #  if !defined (_STLP_DONT_USE_AUTO_LINK) || defined (__BUILDING_STLPORT)
00256 #    pragma comment (lib, "bufferoverflowU.lib")
00257 #    if defined (_STLP_VERBOSE)
00258 #      pragma message ("STLport: Auto linking to bufferoverflowU.lib")
00259 #    endif
00260 #  endif
00261 #endif
00262 
00263 #if defined (_STLP_MSVC)
00264 #  include <stl/config/_feedback.h>
00265 #endif

Generated on Sun May 27 2012 04:29:47 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.