From: Jonathan Wakely Date: Tue, 4 Jun 2024 14:06:44 +0000 (+0100) Subject: libstdc++: Only define std::span::at for C++26 [PR115335] X-Git-Tag: basepoints/gcc-16~8538 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2197814011eec75022aa8550f10621409b69d4a1;p=thirdparty%2Fgcc.git 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. --- diff --git a/libstdc++-v3/include/std/span b/libstdc++-v3/include/std/span index 43e9cf82a54..00fc5279152 100644 --- a/libstdc++-v3/include/std/span +++ b/libstdc++-v3/include/std/span @@ -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