abseil / abseil-cpp

Abseil Common Libraries (C++)
https://abseil.io
Apache License 2.0
14.91k stars 2.61k forks source link

libstdc++ support for STLStringResizeUninitialized #1136

Open wjywbs opened 2 years ago

wjywbs commented 2 years ago

abseil uses STLStringResizeUninitialized() in many string functions. However, STLStringResizeUninitialized() is only implemented on libc++ string that has __resize_default_init(). libstdc++ users will get the slower string->resize() speed. Can abseil support this for libstdc++?

https://github.com/abseil/abseil-cpp/blob/b1b63f7aa8467ff5c2fc81231f6ec69fe93ca3b0/absl/strings/internal/resize_uninitialized.h#L41

folly supports uninitialized resize on libc++, libstdc++ and msvc. https://github.com/facebook/folly/blob/main/folly/memory/UninitializedMemoryHacks.h

derekmauro commented 2 years ago

I'll take a look.