BVB Source Codes

mars Show visualc.hpp Source code

Return Download mars: download visualc.hpp Source code - Download mars Source code - Type:.hpp
  1. //  (C) Copyright John Maddock 2001 - 2003.
  2. //  (C) Copyright Darin Adler 2001 - 2002.
  3. //  (C) Copyright Peter Dimov 2001.
  4. //  (C) Copyright Aleksey Gurtovoy 2002.
  5. //  (C) Copyright David Abrahams 2002 - 2003.
  6. //  (C) Copyright Beman Dawes 2002 - 2003.
  7. //  Use, modification and distribution are subject to the
  8. //  Boost Software License, Version 1.0. (See accompanying file
  9. //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  10.  
  11. //  See http://www.boost.org for most recent version.
  12. //
  13. //  Microsoft Visual C++ compiler setup:
  14. //
  15. //  We need to be careful with the checks in this file, as contrary
  16. //  to popular belief there are versions with _MSC_VER with the final
  17. //  digit non-zero (mainly the MIPS cross compiler).
  18. //
  19. //  So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
  20. //  No other comparisons (==, >, or <=) are safe.
  21. //
  22.  
  23. #define BOOST_MSVC _MSC_VER
  24.  
  25. //
  26. // Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
  27. //
  28. #if _MSC_FULL_VER > 100000000
  29. #  define BOOST_MSVC_FULL_VER _MSC_FULL_VER
  30. #else
  31. #  define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
  32. #endif
  33.  
  34. // Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
  35. #pragma warning( disable : 4503 ) // warning: decorated name length exceeded
  36.  
  37. #define BOOST_HAS_PRAGMA_ONCE
  38.  
  39. //
  40. // versions check:
  41. // we don't support Visual C++ prior to version 7.1:
  42. #if _MSC_VER < 1310
  43. #  error "Compiler not supported or configured - please reconfigure"
  44. #endif
  45.  
  46. #if _MSC_FULL_VER < 180020827
  47. #  define BOOST_NO_FENV_H
  48. #endif
  49.  
  50. #if _MSC_VER < 1400
  51. // although a conforming signature for swprint exists in VC7.1
  52. // it appears not to actually work:
  53. #  define BOOST_NO_SWPRINTF
  54. // Our extern template tests also fail for this compiler:
  55. #  define BOOST_NO_CXX11_EXTERN_TEMPLATE
  56. // Variadic macros do not exist for VC7.1 and lower
  57. #  define BOOST_NO_CXX11_VARIADIC_MACROS
  58. #  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  59. #endif
  60.  
  61. #if _MSC_VER < 1500  // 140X == VC++ 8.0
  62. #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
  63. #endif
  64.  
  65. #if _MSC_VER < 1600  // 150X == VC++ 9.0
  66.    // A bug in VC9:
  67. #  define BOOST_NO_ADL_BARRIER
  68. #endif
  69.  
  70.  
  71. #ifndef _NATIVE_WCHAR_T_DEFINED
  72. #  define BOOST_NO_INTRINSIC_WCHAR_T
  73. #endif
  74.  
  75. //
  76. // check for exception handling support:
  77. #if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
  78. #  define BOOST_NO_EXCEPTIONS
  79. #endif
  80.  
  81. //
  82. // __int64 support:
  83. //
  84. #define BOOST_HAS_MS_INT64
  85. #if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
  86. #   define BOOST_HAS_LONG_LONG
  87. #else
  88. #   define BOOST_NO_LONG_LONG
  89. #endif
  90. #if (_MSC_VER >= 1400) && !defined(_DEBUG)
  91. #   define BOOST_HAS_NRVO
  92. #endif
  93. #if _MSC_VER >= 1600  // 160X == VC++ 10.0
  94. #  define BOOST_HAS_PRAGMA_DETECT_MISMATCH
  95. #endif
  96. //
  97. // disable Win32 API's if compiler extensions are
  98. // turned off:
  99. //
  100. #if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
  101. #  define BOOST_DISABLE_WIN32
  102. #endif
  103. #if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
  104. #  define BOOST_NO_RTTI
  105. #endif
  106.  
  107. //
  108. // TR1 features:
  109. //
  110. #if _MSC_VER >= 1700
  111. // # define BOOST_HAS_TR1_HASH                  // don't know if this is true yet.
  112. // # define BOOST_HAS_TR1_TYPE_TRAITS   // don't know if this is true yet.
  113. # define BOOST_HAS_TR1_UNORDERED_MAP
  114. # define BOOST_HAS_TR1_UNORDERED_SET
  115. #endif
  116.  
  117. //
  118. // C++0x features
  119. //
  120. //   See above for BOOST_NO_LONG_LONG
  121.  
  122. // C++ features supported by VC++ 10 (aka 2010)
  123. //
  124. #if _MSC_VER < 1600
  125. #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
  126. #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  127. #  define BOOST_NO_CXX11_LAMBDAS
  128. #  define BOOST_NO_CXX11_RVALUE_REFERENCES
  129. #  define BOOST_NO_CXX11_STATIC_ASSERT
  130. #  define BOOST_NO_CXX11_NULLPTR
  131. #  define BOOST_NO_CXX11_DECLTYPE
  132. #endif // _MSC_VER < 1600
  133.  
  134. #if _MSC_VER >= 1600
  135. #  define BOOST_HAS_STDINT_H
  136. #endif
  137.  
  138. // C++11 features supported by VC++ 11 (aka 2012)
  139. //
  140. #if _MSC_VER < 1700
  141. #  define BOOST_NO_CXX11_FINAL
  142. #  define BOOST_NO_CXX11_RANGE_BASED_FOR
  143. #  define BOOST_NO_CXX11_SCOPED_ENUMS
  144. #endif // _MSC_VER < 1700
  145.  
  146. // C++11 features supported by VC++ 12 (aka 2013).
  147. //
  148. #if _MSC_FULL_VER < 180020827
  149. #  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  150. #  define BOOST_NO_CXX11_DELETED_FUNCTIONS
  151. #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  152. #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  153. #  define BOOST_NO_CXX11_RAW_LITERALS
  154. #  define BOOST_NO_CXX11_TEMPLATE_ALIASES
  155. #  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  156. #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
  157. #  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  158. #  define BOOST_NO_CXX11_DECLTYPE_N3276
  159. #endif
  160.  
  161. // C++11 features supported by VC++ 14 (aka 2015)
  162. //
  163. #if (_MSC_FULL_VER < 190023026)
  164. #  define BOOST_NO_CXX11_NOEXCEPT
  165. #  define BOOST_NO_CXX11_REF_QUALIFIERS
  166. #  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
  167. #  define BOOST_NO_CXX11_ALIGNAS
  168. #  define BOOST_NO_CXX11_INLINE_NAMESPACES
  169. #  define BOOST_NO_CXX11_CHAR16_T
  170. #  define BOOST_NO_CXX11_CHAR32_T
  171. #  define BOOST_NO_CXX11_UNICODE_LITERALS
  172. #  define BOOST_NO_CXX14_DECLTYPE_AUTO
  173. #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
  174. #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
  175. #  define BOOST_NO_CXX14_BINARY_LITERALS
  176. #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
  177. #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
  178. #endif
  179.  
  180. // MSVC including version 14 has not yet completely
  181. // implemented value-initialization, as is reported:
  182. // "VC++ does not value-initialize members of derived classes without
  183. // user-declared constructor", reported in 2009 by Sylvester Hesp:
  184. // https://connect.microsoft.com/VisualStudio/feedback/details/484295
  185. // "Presence of copy constructor breaks member class initialization",
  186. // reported in 2009 by Alex Vakulenko:
  187. // https://connect.microsoft.com/VisualStudio/feedback/details/499606
  188. // "Value-initialization in new-expression", reported in 2005 by
  189. // Pavel Kuznetsov (MetaCommunications Engineering):
  190. // https://connect.microsoft.com/VisualStudio/feedback/details/100744
  191. // Reported again by John Maddock in 2015 for VC14:
  192. // https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
  193. // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
  194. // (Niels Dekker, LKEB, May 2010)
  195. #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
  196. // C++11 features not supported by any versions
  197. #define BOOST_NO_SFINAE_EXPR
  198. #define BOOST_NO_TWO_PHASE_NAME_LOOKUP
  199. //
  200. // This is somewhat supported in VC14, but we may need to wait for
  201. // a service release before enabling:
  202. //
  203. #define BOOST_NO_CXX11_CONSTEXPR
  204.  
  205. // C++ 14:
  206. #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
  207. #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
  208. #endif
  209. #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
  210. #  define BOOST_NO_CXX14_CONSTEXPR
  211. #endif
  212. #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
  213. #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
  214. #endif
  215.  
  216. //
  217. // prefix and suffix headers:
  218. //
  219. #ifndef BOOST_ABI_PREFIX
  220. #  define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
  221. #endif
  222. #ifndef BOOST_ABI_SUFFIX
  223. #  define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
  224. #endif
  225.  
  226. #ifndef BOOST_COMPILER
  227. // TODO:
  228. // these things are mostly bogus. 1200 means version 12.0 of the compiler. The
  229. // artificial versions assigned to them only refer to the versions of some IDE
  230. // these compilers have been shipped with, and even that is not all of it. Some
  231. // were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
  232. // IOW, you can't use these 'versions' in any sensible way. Sorry.
  233. # if defined(UNDER_CE)
  234. #   if _MSC_VER < 1400
  235.       // Note: I'm not aware of any CE compiler with version 13xx
  236. #      if defined(BOOST_ASSERT_CONFIG)
  237. #         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
  238. #      else
  239. #         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
  240. #      endif
  241. #   elif _MSC_VER < 1500
  242. #     define BOOST_COMPILER_VERSION evc8
  243. #   elif _MSC_VER < 1600
  244. #     define BOOST_COMPILER_VERSION evc9
  245. #   elif _MSC_VER < 1700
  246. #     define BOOST_COMPILER_VERSION evc10
  247. #   elif _MSC_VER < 1800
  248. #     define BOOST_COMPILER_VERSION evc11
  249. #   elif _MSC_VER < 1900
  250. #     define BOOST_COMPILER_VERSION evc12
  251. #   elif _MSC_VER < 2000  
  252. #     define BOOST_COMPILER_VERSION evc14
  253. #   else
  254. #      if defined(BOOST_ASSERT_CONFIG)
  255. #         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
  256. #      else
  257. #         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
  258. #      endif
  259. #   endif
  260. # else
  261. #   if _MSC_VER < 1310
  262.       // Note: Versions up to 7.0 aren't supported.
  263. #     define BOOST_COMPILER_VERSION 5.0
  264. #   elif _MSC_VER < 1300
  265. #     define BOOST_COMPILER_VERSION 6.0
  266. #   elif _MSC_VER < 1310
  267. #     define BOOST_COMPILER_VERSION 7.0
  268. #   elif _MSC_VER < 1400
  269. #     define BOOST_COMPILER_VERSION 7.1
  270. #   elif _MSC_VER < 1500
  271. #     define BOOST_COMPILER_VERSION 8.0
  272. #   elif _MSC_VER < 1600
  273. #     define BOOST_COMPILER_VERSION 9.0
  274. #   elif _MSC_VER < 1700
  275. #     define BOOST_COMPILER_VERSION 10.0
  276. #   elif _MSC_VER < 1800
  277. #     define BOOST_COMPILER_VERSION 11.0
  278. #   elif _MSC_VER < 1900
  279. #     define BOOST_COMPILER_VERSION 12.0
  280. #   elif _MSC_VER < 2000
  281. #     define BOOST_COMPILER_VERSION 14.0
  282. #   else
  283. #     define BOOST_COMPILER_VERSION _MSC_VER
  284. #   endif
  285. # endif
  286.  
  287. #  define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
  288. #endif
  289.  
  290. //
  291. // last known and checked version is 19.00.23026 (VC++ 2015 RTM):
  292. #if (_MSC_VER > 1900)
  293. #  if defined(BOOST_ASSERT_CONFIG)
  294. #     error "Unknown compiler version - please run the configure tests and report the results"
  295. #  else
  296. #     pragma message("Unknown compiler version - please run the configure tests and report the results")
  297. #  endif
  298. #endif
  299.  
downloadvisualc.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top