https://gcc.gnu.org/g:1003a428154cd2e556c1fba994d4f3ea2442fc95

commit r15-4516-g1003a428154cd2e556c1fba994d4f3ea2442fc95
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Fri Oct 18 11:55:08 2024 +0100

    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:
---
 libstdc++-v3/include/bits/stl_vector.h | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

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<typename _Up>
-       _Up*
-       _M_data_ptr(_Up* __ptr) _GLIBCXX_NOEXCEPT
-       { return __ptr; }
-
       template<typename _Ptr>
        value_type*
-       _M_data_ptr(_Ptr __ptr)
-       { return empty() ? (value_type*)0 : __ptr.operator->(); }
-
-      template<typename _Ptr>
-       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
     };

Reply via email to