BVB Source Codes

mars Show xlcpp.hpp Source code

Return Download mars: download xlcpp.hpp Source code - Download mars Source code - Type:.hpp
  1. // (C) Copyright Douglas Gregor 2010
  2. //
  3. //  Use, modification and distribution are subject to the
  4. //  Boost Software License, Version 1.0. (See accompanying file
  5. //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6.  
  7. //  See http://www.boost.org for most recent version.
  8.  
  9. //  compiler setup for IBM XL C/C++ for Linux (Little Endian) based on clang.
  10.  
  11. #define BOOST_HAS_PRAGMA_ONCE
  12.  
  13. // Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
  14. #if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
  15. #   define BOOST_HAS_PRAGMA_DETECT_MISMATCH
  16. #endif
  17.  
  18. // When compiling with clang before __has_extension was defined,
  19. // even if one writes 'defined(__has_extension) && __has_extension(xxx)',
  20. // clang reports a compiler error. So the only workaround found is:
  21.  
  22. #ifndef __has_extension
  23. #define __has_extension __has_feature
  24. #endif
  25.  
  26. #if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
  27. #  define BOOST_NO_EXCEPTIONS
  28. #endif
  29.  
  30. #if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
  31. #  define BOOST_NO_RTTI
  32. #endif
  33.  
  34. #if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
  35. #  define BOOST_NO_TYPEID
  36. #endif
  37.  
  38. #if defined(__int64) && !defined(__GNUC__)
  39. #  define BOOST_HAS_MS_INT64
  40. #endif
  41.  
  42. #define BOOST_HAS_NRVO
  43.  
  44. // Branch prediction hints
  45. #if defined(__has_builtin)
  46. #if __has_builtin(__builtin_expect)
  47. #define BOOST_LIKELY(x) __builtin_expect(x, 1)
  48. #define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
  49. #endif
  50. #endif
  51.  
  52. // Clang supports "long long" in all compilation modes.
  53. #define BOOST_HAS_LONG_LONG
  54.  
  55. //
  56. // Dynamic shared object (DSO) and dynamic-link library (DLL) support
  57. //
  58. #if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
  59. #  define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
  60. #  define BOOST_SYMBOL_IMPORT
  61. #  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
  62. #endif
  63.  
  64. //
  65. // The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
  66. // between switch labels.
  67. //
  68. #if __cplusplus >= 201103L && defined(__has_warning)
  69. #  if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
  70. #    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  71. #  endif
  72. #endif
  73.  
  74. #if !__has_feature(cxx_auto_type)
  75. #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
  76. #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
  77. #endif
  78.  
  79. //
  80. // Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
  81. //
  82. #if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
  83. #  define BOOST_NO_CXX11_CHAR16_T
  84. #  define BOOST_NO_CXX11_CHAR32_T
  85. #endif
  86.  
  87. #if !__has_feature(cxx_constexpr)
  88. #  define BOOST_NO_CXX11_CONSTEXPR
  89. #endif
  90.  
  91. #if !__has_feature(cxx_decltype)
  92. #  define BOOST_NO_CXX11_DECLTYPE
  93. #endif
  94.  
  95. #if !__has_feature(cxx_decltype_incomplete_return_types)
  96. #  define BOOST_NO_CXX11_DECLTYPE_N3276
  97. #endif
  98.  
  99. #if !__has_feature(cxx_defaulted_functions)
  100. #  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
  101. #endif
  102.  
  103. #if !__has_feature(cxx_deleted_functions)
  104. #  define BOOST_NO_CXX11_DELETED_FUNCTIONS
  105. #endif
  106.  
  107. #if !__has_feature(cxx_explicit_conversions)
  108. #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
  109. #endif
  110.  
  111. #if !__has_feature(cxx_default_function_template_args)
  112. #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
  113. #endif
  114.  
  115. #if !__has_feature(cxx_generalized_initializers)
  116. #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
  117. #endif
  118.  
  119. #if !__has_feature(cxx_lambdas)
  120. #  define BOOST_NO_CXX11_LAMBDAS
  121. #endif
  122.  
  123. #if !__has_feature(cxx_local_type_template_args)
  124. #  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
  125. #endif
  126.  
  127. #if !__has_feature(cxx_noexcept)
  128. #  define BOOST_NO_CXX11_NOEXCEPT
  129. #endif
  130.  
  131. #if !__has_feature(cxx_nullptr)
  132. #  define BOOST_NO_CXX11_NULLPTR
  133. #endif
  134.  
  135. #if !__has_feature(cxx_range_for)
  136. #  define BOOST_NO_CXX11_RANGE_BASED_FOR
  137. #endif
  138.  
  139. #if !__has_feature(cxx_raw_string_literals)
  140. #  define BOOST_NO_CXX11_RAW_LITERALS
  141. #endif
  142.  
  143. #if !__has_feature(cxx_reference_qualified_functions)
  144. #  define BOOST_NO_CXX11_REF_QUALIFIERS
  145. #endif
  146.  
  147. #if !__has_feature(cxx_generalized_initializers)
  148. #  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  149. #endif
  150.  
  151. #if !__has_feature(cxx_rvalue_references)
  152. #  define BOOST_NO_CXX11_RVALUE_REFERENCES
  153. #endif
  154.  
  155. #if !__has_feature(cxx_strong_enums)
  156. #  define BOOST_NO_CXX11_SCOPED_ENUMS
  157. #endif
  158.  
  159. #if !__has_feature(cxx_static_assert)
  160. #  define BOOST_NO_CXX11_STATIC_ASSERT
  161. #endif
  162.  
  163. #if !__has_feature(cxx_alias_templates)
  164. #  define BOOST_NO_CXX11_TEMPLATE_ALIASES
  165. #endif
  166.  
  167. #if !__has_feature(cxx_unicode_literals)
  168. #  define BOOST_NO_CXX11_UNICODE_LITERALS
  169. #endif
  170.  
  171. #if !__has_feature(cxx_variadic_templates)
  172. #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
  173. #endif
  174.  
  175. #if !__has_feature(cxx_user_literals)
  176. #  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
  177. #endif
  178.  
  179. #if !__has_feature(cxx_alignas)
  180. #  define BOOST_NO_CXX11_ALIGNAS
  181. #endif
  182.  
  183. #if !__has_feature(cxx_trailing_return)
  184. #  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
  185. #endif
  186.  
  187. #if !__has_feature(cxx_inline_namespaces)
  188. #  define BOOST_NO_CXX11_INLINE_NAMESPACES
  189. #endif
  190.  
  191. #if !__has_feature(cxx_override_control)
  192. #  define BOOST_NO_CXX11_FINAL
  193. #endif
  194.  
  195. #if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
  196. #  define BOOST_NO_CXX14_BINARY_LITERALS
  197. #endif
  198.  
  199. #if !__has_feature(__cxx_decltype_auto__)
  200. #  define BOOST_NO_CXX14_DECLTYPE_AUTO
  201. #endif
  202.  
  203. #if !__has_feature(__cxx_aggregate_nsdmi__)
  204. #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
  205. #endif
  206.  
  207. #if !__has_feature(__cxx_init_captures__)
  208. #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
  209. #endif
  210.  
  211. #if !__has_feature(__cxx_generic_lambdas__)
  212. #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
  213. #endif
  214.  
  215. // clang < 3.5 has a defect with dependent type, like following.
  216. //
  217. //  template <class T>
  218. //  constexpr typename enable_if<pred<T> >::type foo(T &)
  219. //  { } // error: no return statement in constexpr function
  220. //
  221. // This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
  222. // Therefore we don't care such case.
  223. //
  224. // Note that we can't check Clang version directly as the numbering system changes depending who's
  225. // creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
  226. // so instead verify that we have a feature that was introduced at the same time as working C++14
  227. // constexpr (generic lambda's in this case):
  228. //
  229. #if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
  230. #  define BOOST_NO_CXX14_CONSTEXPR
  231. #endif
  232.  
  233. #if !__has_feature(__cxx_return_type_deduction__)
  234. #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
  235. #endif
  236.  
  237. #if !__has_feature(__cxx_variable_templates__)
  238. #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
  239. #endif
  240.  
  241. #if __cplusplus < 201400
  242. // All versions with __cplusplus above this value seem to support this:
  243. #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
  244. #endif
  245.  
  246.  
  247. // Unused attribute:
  248. #if defined(__GNUC__) && (__GNUC__ >= 4)
  249. #  define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
  250. #endif
  251.  
  252. #ifndef BOOST_COMPILER
  253. #  define BOOST_COMPILER "Clang version " __clang_version__
  254. #endif
  255.  
  256. // Macro used to identify the Clang compiler.
  257. #define BOOST_CLANG 1
  258.  
  259.  
downloadxlcpp.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