Building clean with MSVC12.

This commit is contained in:
Neil MacIntosh
2016-07-29 11:16:06 -07:00
parent a0cf1ecc49
commit 8e31f53f8a
5 changed files with 34 additions and 28 deletions
+1 -22
View File
@@ -24,6 +24,7 @@
#include "span.h"
#include <cstring>
#include <string>
#include <cstdint>
#ifdef _MSC_VER
@@ -313,7 +314,6 @@ public:
template <class Container,
class = std::enable_if_t<
!details::is_basic_string_span<Container>::value &&
!details::is_span<Container>::value &&
std::is_convertible<typename Container::pointer, pointer>::value &&
std::is_convertible<typename Container::pointer,
decltype(std::declval<Container>().data())>::value>>
@@ -324,7 +324,6 @@ public:
template <class Container,
class = std::enable_if_t<
!details::is_basic_string_span<Container>::value &&
!details::is_span<Container>::value &&
std::is_convertible<typename Container::pointer, pointer>::value &&
std::is_convertible<typename Container::pointer,
decltype(std::declval<Container>().data())>::value>>
@@ -332,26 +331,6 @@ public:
{
}
#ifndef GSL_MSVC_HAS_SFINAE_SUBSTITUTION_ICE
// from span
template <typename OtherValueType, std::ptrdiff_t OtherExtent,
typename Dummy = std::enable_if_t<
std::is_convertible<span<OtherValueType, OtherExtent>, impl_type>::value>>
constexpr basic_string_span(const span<OtherValueType, OtherExtent>& other) : span_(other)
{
}
#else
// from span
constexpr basic_string_span(span<element_type, Extent> other) : span_(other) {}
template <typename = std::enable_if_t<
!std::is_same<std::remove_const_t<element_type>, value_type>::value>>
constexpr basic_string_span(const span<std::remove_const_t<element_type>, Extent>& other)
: span_(other)
{
}
#endif
// from string_span
template <
class OtherValueType, std::ptrdiff_t OtherExtent,