Update for clang on Windows:

Enables __int64 when available.
Enables stdint.h when available.
Enables log1p/expm1 when available.
Enables char16_t and char32_t when available.
This commit is contained in:
jzmaddock
2016-03-26 19:09:44 +00:00
parent 733e24c081
commit f84f27c366

View File

@ -39,10 +39,15 @@
# define BOOST_NO_TYPEID
#endif
#if defined(__int64) && !defined(__GNUC__)
#if !__is_identifier(__int64) && !defined(__GNUC__)
# define BOOST_HAS_MS_INT64
#endif
#if __has_include(<stdint.h>)
# define BOOST_HAS_STDINT_H
#endif
#define BOOST_HAS_NRVO
// Branch prediction hints
@ -107,11 +112,16 @@
//
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
//
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
# define BOOST_NO_CXX11_CHAR16_T
# define BOOST_NO_CXX11_CHAR32_T
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1800) && !defined(__GNUC__)
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#endif
#if !__has_feature(cxx_constexpr)
# define BOOST_NO_CXX11_CONSTEXPR
#endif