aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-07-30 20:58:09 +0100
committerGiuliano Belinassi <giuliano.belinassi@usp.br>2020-08-17 13:20:18 -0300
commit505297f57e1919a2a328a136f20181cc5b81a807 (patch)
tree88b62118050a2b527b9ed8c0c26886f54f794bc5
parentc4a68ac16456ac8b04e6d0e2d21d174486516a39 (diff)
downloadgcc-505297f57e1919a2a328a136f20181cc5b81a807.zip
gcc-505297f57e1919a2a328a136f20181cc5b81a807.tar.gz
gcc-505297f57e1919a2a328a136f20181cc5b81a807.tar.bz2
libstdc++: Make COW string use allocator_traits for nested types
When compiled as C++20 the COW std::string fails due to assuming that the allocator always defines size_type and difference_type. That has been incorrect since C++11, but we got away with it for specializations using std::allocator until those members were removed in C++20. libstdc++-v3/ChangeLog: * include/bits/basic_string.h (size_type, difference_type): Use allocator_traits to obtain the allocator's size_type and difference_type.
-rw-r--r--libstdc++-v3/include/bits/basic_string.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index bc0c256..52cecdd 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -3147,8 +3147,8 @@ _GLIBCXX_END_NAMESPACE_CXX11
typedef _Traits traits_type;
typedef typename _Traits::char_type value_type;
typedef _Alloc allocator_type;
- typedef typename _CharT_alloc_type::size_type size_type;
- typedef typename _CharT_alloc_type::difference_type difference_type;
+ typedef typename _CharT_alloc_traits::size_type size_type;
+ typedef typename _CharT_alloc_traits::difference_type difference_type;
#if __cplusplus < 201103L
typedef typename _CharT_alloc_type::reference reference;
typedef typename _CharT_alloc_type::const_reference const_reference;