libstdc++: Make COW string use allocator_traits for nested types
authorJonathan Wakely <jwakely@redhat.com>
Thu, 30 Jul 2020 19:58:09 +0000 (20:58 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 30 Jul 2020 19:58:09 +0000 (20:58 +0100)
commit684d6ee140af6585c18c8790f8f5bddfcc6bd153
tree5ad38b724f2a24627474544eed30a5f536313637
parente513e9aa53121e628e0403438a5bb3861a50c198
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.
libstdc++-v3/include/bits/basic_string.h