为什么 24 字节的 std::string 无法用寄存器传递?起底 C++ ABI 的底层真相
libstdc++(GCC)和 libc++(Clang)的 std::string 都做了 Small String Optimization,但内存布局截然不同:libstdc++ 用 32 字节换来实现简单——指针 + size + union{capacity, 16 字节 buffer},SSO 上限 15 个字符;libc++ 用 24 字节的极限压缩——把 is_long 标志位和…
2026/7/7 20:05:43