]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Optimize operator+(string/char*, char*/string) equally
authorWill Hawkins <whh8b@obs.cr>
Wed, 24 Aug 2022 06:16:48 +0000 (02:16 -0400)
committerJonathan Wakely <jwakely@redhat.com>
Wed, 24 Aug 2022 14:22:44 +0000 (15:22 +0100)
commit0b7c9254998b3fb2c39f6b86b5b196f415530205
tree3c5842373e17a003ff7159b0ba506af72f971152
parent02de9d26b1820e4af35ebdd271c3a788e3c99035
libstdc++: Optimize operator+(string/char*, char*/string) equally

Until now operator+(char*, const string&) and operator+(const string&,
char*) had different performance characteristics. The former required a
single memory allocation and the latter required two. This patch makes
the performance equal.

libstdc++-v3/ChangeLog:

* include/bits/basic_string.h (operator+(const string&, const char*)):
Remove naive implementation.
* include/bits/basic_string.tcc (operator+(const string&, const char*)):
Add single-allocation implementation.

Signed-off-by: Will Hawkins <whh8b@obs.cr>
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/basic_string.tcc