aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-10-01 20:37:02 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-10-01 20:37:02 +0100
commitacf3a21cbc26b39b73c0006300f35ff017ddd6cb (patch)
treedeb9da5edff5a2769cc22233ebf2d99cc8307232 /gcc
parentff7793bea465019683b3a07d7ffceb6eae22def5 (diff)
downloadgcc-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