diff options
author | Louis Dionne <ldionne.2@gmail.com> | 2022-03-14 11:36:21 -0400 |
---|---|---|
committer | Louis Dionne <ldionne.2@gmail.com> | 2022-03-14 13:53:30 -0400 |
commit | 849e749d7f82cba44bccf6261239139bc9019754 (patch) | |
tree | e8f3df04b1b9d96c7a165f6f1aaa9e0d9caab024 | |
parent | 294eca35a00f89dff474044ebd478a7f83ccc310 (diff) | |
download | llvm-849e749d7f82cba44bccf6261239139bc9019754.zip llvm-849e749d7f82cba44bccf6261239139bc9019754.tar.gz llvm-849e749d7f82cba44bccf6261239139bc9019754.tar.bz2 |
[libc++][NFC] Remove several redundant #if _LIBCPP_STD_VER > 17 in <span>
It turns out that the whole header is only enabled in C++20 and above,
so these checks were redundant (and always true).
Differential Revision: https://reviews.llvm.org/D121604
-rw-r--r-- | libcxx/include/span | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/libcxx/include/span b/libcxx/include/span index 2796796..bc72384 100644 --- a/libcxx/include/span +++ b/libcxx/include/span @@ -158,7 +158,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD inline constexpr size_t dynamic_extent = numeric_limits<size_t>::max(); template <typename _Tp, size_t _Extent = dynamic_extent> class span; - template <class _Tp> struct __is_std_array : false_type {}; @@ -171,7 +170,7 @@ struct __is_std_span : false_type {}; template <class _Tp, size_t _Sz> struct __is_std_span<span<_Tp, _Sz>> : true_type {}; -#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) template <class _Range, class _ElementType> concept __span_compatible_range = ranges::contiguous_range<_Range> && @@ -181,7 +180,7 @@ concept __span_compatible_range = !__is_std_array<remove_cvref_t<_Range>>::value && !is_array_v<remove_cvref_t<_Range>> && is_convertible_v<remove_reference_t<ranges::range_reference_t<_Range>>(*)[], _ElementType(*)[]>; -#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) template <typename _Tp, size_t _Extent> class _LIBCPP_TEMPLATE_VIS span { @@ -211,7 +210,6 @@ public: constexpr span (const span&) noexcept = default; constexpr span& operator=(const span&) noexcept = default; -#if _LIBCPP_STD_VER > 17 template <class _It, enable_if_t<contiguous_iterator<_It> && is_convertible_v<remove_reference_t<iter_reference_t<_It>>(*)[], element_type (*)[]>, @@ -235,7 +233,6 @@ public: _LIBCPP_ASSERT(__last - __first == _Extent, "invalid range in span's constructor (iterator, sentinel): last - first != extent"); } -#endif // _LIBCPP_STD_VER > 17 _LIBCPP_INLINE_VISIBILITY constexpr span(type_identity_t<element_type> (&__arr)[_Extent]) noexcept : __data{__arr} {} @@ -249,13 +246,13 @@ public: _LIBCPP_INLINE_VISIBILITY constexpr span(const array<_OtherElementType, _Extent>& __arr) noexcept : __data{__arr.data()} {} -#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) template <__span_compatible_range<element_type> _Range> _LIBCPP_INLINE_VISIBILITY constexpr explicit span(_Range&& __r) : __data{ranges::data(__r)} { _LIBCPP_ASSERT(ranges::size(__r) == _Extent, "size mismatch in span's constructor (range)"); } -#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#endif template <class _OtherElementType> _LIBCPP_INLINE_VISIBILITY @@ -402,7 +399,6 @@ public: constexpr span (const span&) noexcept = default; constexpr span& operator=(const span&) noexcept = default; -#if _LIBCPP_STD_VER > 17 template <class _It, enable_if_t<contiguous_iterator<_It> && is_convertible_v<remove_reference_t<iter_reference_t<_It> > (*)[], element_type (*)[]>, @@ -419,7 +415,6 @@ public: _LIBCPP_INLINE_VISIBILITY constexpr span(_It __first, _End __last) : __data(_VSTD::to_address(__first)), __size(__last - __first) {} -#endif // _LIBCPP_STD_VER > 17 template <size_t _Sz> _LIBCPP_INLINE_VISIBILITY @@ -435,11 +430,11 @@ public: _LIBCPP_INLINE_VISIBILITY constexpr span(const array<_OtherElementType, _Sz>& __arr) noexcept : __data{__arr.data()}, __size{_Sz} {} -#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) template <__span_compatible_range<element_type> _Range> _LIBCPP_INLINE_VISIBILITY constexpr span(_Range&& __r) : __data(ranges::data(__r)), __size{ranges::size(__r)} {} -#endif // _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#endif template <class _OtherElementType, size_t _OtherExtent> _LIBCPP_INLINE_VISIBILITY @@ -544,13 +539,11 @@ private: size_type __size; }; -#if _LIBCPP_STD_VER > 17 template <class _Tp, size_t _Extent> inline constexpr bool ranges::enable_borrowed_range<span<_Tp, _Extent> > = true; template <class _ElementType, size_t _Extent> inline constexpr bool ranges::enable_view<span<_ElementType, _Extent>> = true; -#endif // _LIBCPP_STD_VER > 17 // as_bytes & as_writable_bytes template <class _Tp, size_t _Extent> @@ -579,7 +572,7 @@ template<class _Tp, size_t _Sz> template<class _Tp, size_t _Sz> span(const array<_Tp, _Sz>&) -> span<const _Tp, _Sz>; -#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) +#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) template<ranges::contiguous_range _Range> span(_Range&&) -> span<remove_reference_t<ranges::range_reference_t<_Range>>>; #endif |