libstdc++: Only define std::span::at for C++26 [PR115335]

In r14-5689-g1fa85dcf656e2f I added std::span::at and made the correct
changes to the __cpp_lib_span macro (with tests for the correct value in
C++20/23/26). But I didn't make the declaration of std::span::at
actually depend on the macro, so it was defined for C++20 and C++23, not
only for C++26. This fixes that oversight.

libstdc++-v3/ChangeLog:

	PR libstdc++/115335
	* include/std/span (span::at): Guard with feature test macro.

(cherry picked from commit 2197814011eec75022aa8550f10621409b69d4a1)
This commit is contained in:
Jonathan Wakely 2024-06-04 15:06:44 +01:00
parent a88e13bd7e
commit c6e6258ea4
No known key found for this signature in database

View file

@ -287,6 +287,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return *(this->_M_ptr + __idx);
}
#if __cpp_lib_span >= 202311L // >= C++26
[[nodiscard]]
constexpr reference
at(size_type __idx) const
@ -296,6 +297,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
"of size %zu"), __idx, this->size());
return *(this->_M_ptr + __idx);
}
#endif
[[nodiscard]]
constexpr pointer