diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-07-30 20:58:09 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-07-30 20:58:09 +0100 |
commit | 684d6ee140af6585c18c8790f8f5bddfcc6bd153 (patch) | |
tree | 5ad38b724f2a24627474544eed30a5f536313637 | |
parent | e513e9aa53121e628e0403438a5bb3861a50c198 (diff) | |
download | gcc-684d6ee140af6585c18c8790f8f5bddfcc6bd153.zip gcc-684d6ee140af6585c18c8790f8f5bddfcc6bd153.tar.gz gcc-684d6ee140af6585c18c8790f8f5bddfcc6bd153.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.h | 4 |
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; |