mirror of
https://github.com/microsoft/GSL.git
synced 2024-11-03 17:56:43 -05:00
Fixed compile issues for MSVC 2013.
This commit is contained in:
parent
41517ff316
commit
e9a9602b4f
@ -43,6 +43,10 @@
|
|||||||
// VS 2013 workarounds
|
// VS 2013 workarounds
|
||||||
#if _MSC_VER <= 1800
|
#if _MSC_VER <= 1800
|
||||||
|
|
||||||
|
#pragma push_macro("GSL_MSVC_HAS_VARIADIC_CTOR_BUG")
|
||||||
|
#define GSL_MSVC_HAS_VARIADIC_CTOR_BUG
|
||||||
|
|
||||||
|
|
||||||
// noexcept is not understood
|
// noexcept is not understood
|
||||||
#ifndef GSL_THROWS_FOR_TESTING
|
#ifndef GSL_THROWS_FOR_TESTING
|
||||||
#define noexcept /* nothing */
|
#define noexcept /* nothing */
|
||||||
@ -106,9 +110,19 @@ public:
|
|||||||
std::copy(values, values + Rank, elems);
|
std::copy(values, values + Rank, elems);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Ts, bool Enabled1 = (sizeof...(Ts) == Rank), bool Enabled2 = details::are_integral<Ts...>::value, typename Dummy = std::enable_if_t<Enabled1 && Enabled2, bool>>
|
#ifdef GSL_MSVC_HAS_VARIADIC_CTOR_BUG
|
||||||
|
template<typename T, typename... Ts,
|
||||||
|
typename = std::enable_if_t<((sizeof...(Ts) + 1) == Rank) &&
|
||||||
|
std::is_integral<T>::value &&
|
||||||
|
details::are_integral<Ts...>::value>>
|
||||||
|
constexpr index(T t, Ts... ds) : index({ static_cast<value_type>(t), static_cast<value_type>(ds)... })
|
||||||
|
{}
|
||||||
|
#else
|
||||||
|
template<typename... Ts,
|
||||||
|
typename = std::enable_if_t<(sizeof...(Ts) == Rank) && details::are_integral<Ts...>::value>>
|
||||||
constexpr index(Ts... ds) noexcept : elems{ static_cast<value_type>(ds)... }
|
constexpr index(Ts... ds) noexcept : elems{ static_cast<value_type>(ds)... }
|
||||||
{}
|
{}
|
||||||
|
#endif
|
||||||
|
|
||||||
constexpr index(const index& other) noexcept = default;
|
constexpr index(const index& other) noexcept = default;
|
||||||
|
|
||||||
@ -1957,6 +1971,10 @@ general_array_view_iterator<ArrayView> operator+(typename general_array_view_ite
|
|||||||
#pragma undef noexcept
|
#pragma undef noexcept
|
||||||
#endif // GSL_THROWS_FOR_TESTING
|
#endif // GSL_THROWS_FOR_TESTING
|
||||||
|
|
||||||
|
#undef GSL_MSVC_HAS_VARIADIC_CTOR_BUG
|
||||||
|
#pragma pop_macro("GSL_MSVC_HAS_VARIADIC_CTOR_BUG")
|
||||||
|
|
||||||
|
|
||||||
#endif // _MSC_VER <= 1800
|
#endif // _MSC_VER <= 1800
|
||||||
|
|
||||||
#endif // _MSC_VER
|
#endif // _MSC_VER
|
||||||
|
Loading…
Reference in New Issue
Block a user