diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-10-01 20:37:02 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-10-01 20:37:02 +0100 |
commit | acf3a21cbc26b39b73c0006300f35ff017ddd6cb (patch) | |
tree | deb9da5edff5a2769cc22233ebf2d99cc8307232 /gcc | |
parent | ff7793bea465019683b3a07d7ffceb6eae22def5 (diff) | |
download | gcc-acf3a21cbc26b39b73c0006300f35ff017ddd6cb.zip gcc-acf3a21cbc26b39b73c0006300f35ff017ddd6cb.tar.gz gcc-acf3a21cbc26b39b73c0006300f35ff017ddd6cb.tar.bz2 |
libstdc++: Reduce header dependencies for C++20 std::erase [PR92546]
This reduces the preprocessed size of <deque>, <string> and <vector> by
not including <bits/stl_algo.h> for std::remove and std::remove_if.
Also unwrap iterators using __niter_base, to avoid redundant debug mode
checks.
PR libstdc++/92546
* include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
unwrap debug iterators.
* include/bits/refwrap.h: Do not error if included in C++03.
* include/bits/stl_algo.h (__remove_if): Move to ...
* include/bits/stl_algobase.h (__remove_if): ... here.
* include/std/deque (erase, erase_if): Use __remove_if instead of
remove and remove_if.
* include/std/string (erase, erase_if): Likewise.
* include/std/vector (erase, erase_if): Likewise.
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions