Fix silent failure of MSVC 14.0

This commit is contained in:
Matt Borland
2023-04-28 16:29:12 +02:00
parent ae56c77d22
commit be0f290b0f

View File

@@ -484,8 +484,12 @@ using signed_decimal_fp = decimal_fp<UInt, true, false>;
// Computed cache entries.
////////////////////////////////////////////////////////////////////////////////////////
#if !(defined(_MSC_VER) && _MSC_VER == 1900)
template <bool b>
struct cache_holder_ieee754_binary32_impl
#else
struct cache_holder_ieee754_binary32
#endif
{
using cache_entry_type = std::uint64_t;
static constexpr int cache_bits = 64;
@@ -514,7 +518,7 @@ struct cache_holder_ieee754_binary32_impl
0xb35dbf821ae4f38c, 0xe0352f62a19e306f};
};
#if defined(BOOST_NO_CXX17_INLINE_VARIABLES) && (!defined(_MSC_VER) || _MSC_VER != 1900)
#if defined(BOOST_NO_CXX17_INLINE_VARIABLES) && !(defined(_MSC_VER) && _MSC_VER == 1900)
template <bool b> constexpr int cache_holder_ieee754_binary32_impl<b>::cache_bits;
template <bool b> constexpr int cache_holder_ieee754_binary32_impl<b>::min_k;
@@ -523,10 +527,16 @@ template <bool b> constexpr typename cache_holder_ieee754_binary32_impl<b>::cach
#endif
#if !(defined(_MSC_VER) && _MSC_VER == 1900)
using cache_holder_ieee754_binary32 = cache_holder_ieee754_binary32_impl<true>;
#endif
#if !(defined(_MSC_VER) && _MSC_VER == 1900)
template <bool b>
struct cache_holder_ieee754_binary64_impl
#else
struct cache_holder_ieee754_binary64
#endif
{
using cache_entry_type = uint128;
static constexpr int cache_bits = 128;
@@ -845,7 +855,7 @@ struct cache_holder_ieee754_binary64_impl
{0xf70867153aa2db38, 0xb8cbee4fc66d1ea8}};
};
#if defined(BOOST_NO_CXX17_INLINE_VARIABLES) && (!defined(_MSC_VER) || _MSC_VER != 1900)
#if defined(BOOST_NO_CXX17_INLINE_VARIABLES) && !(defined(_MSC_VER) && _MSC_VER == 1900)
template <bool b> constexpr int cache_holder_ieee754_binary64_impl<b>::cache_bits;
template <bool b> constexpr int cache_holder_ieee754_binary64_impl<b>::min_k;
@@ -854,7 +864,9 @@ template <bool b> constexpr typename cache_holder_ieee754_binary64_impl<b>::cach
#endif
#if !(defined(_MSC_VER) && _MSC_VER == 1900)
using cache_holder_ieee754_binary64 = cache_holder_ieee754_binary64_impl<true>;
#endif
////////////////////////////////////////////////////////////////////////////////////////
// Policies.