From: Jonathan Wakely Date: Fri, 18 Oct 2024 10:55:08 +0000 (+0100) Subject: libstdc++: Simplify C++98 std::vector::_M_data_ptr overload set X-Git-Tag: basepoints/gcc-16~5037 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1003a428154cd2e556c1fba994d4f3ea2442fc95;p=thirdparty%2Fgcc.git libstdc++: Simplify C++98 std::vector::_M_data_ptr overload set We don't need separate overloads for returning a const or non-const pointer. We can make the member function const and return a non-const pointer, and let vector::data() const convert it to const as needed. libstdc++-v3/ChangeLog: * include/bits/stl_vector.h (vector::_M_data_ptr): Remove non-const overloads. Always return non-const pointer. --- diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index e284536ad31e..8982ca2b9eee 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -2034,20 +2034,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER _M_data_ptr(_Ptr __ptr) const { return empty() ? nullptr : std::__to_address(__ptr); } #else - template - _Up* - _M_data_ptr(_Up* __ptr) _GLIBCXX_NOEXCEPT - { return __ptr; } - template value_type* - _M_data_ptr(_Ptr __ptr) - { return empty() ? (value_type*)0 : __ptr.operator->(); } - - template - const value_type* _M_data_ptr(_Ptr __ptr) const - { return empty() ? (const value_type*)0 : __ptr.operator->(); } + { return empty() ? (value_type*)0 : __ptr.operator->(); } #endif };