Skip to content

libc++ (LLVM) 源码级深度剖析

源码路径:references/impl/llvm-project/libcxx/include/

LLVM 的 C++ 标准库实现,以最紧凑的内存布局和最新 C++ 标准支持著称。核心设计理念:极简内存布局 + trivially relocatable memcpy

目录

章节内容
vector 与 string三指针 vector、24 字节 SSO string(22 字节内联)、split_buffer、memcpy relocate
function 与 shared_ptr24 字节 SBO function(虚函数表)、make_shared 单次分配
map/set 与 variant红黑树 __tree、哨兵节点 __end_node_、variant visit 函数指针表
Ranges 与 unique_ptr管道运算符 CRTP、filter_view 缓存、compressed_pair unique_ptr

三实现综合对比

组件libc++ (LLVM)libstdc++ (GCC)MSVC STL
sizeof(string)243232
string SSO221515
vector 增长~2×1.5×
vector relocatememcpymove+destroymove+destroy
unique_ptr8B8B8B
trivial_abi支持不支持不支持
function SBO24B (虚函数)24B (函数指针)不同
unordered_map链式节点式 _Hashtable链式

选 libc++:macOS/iOS/Android、最紧凑内存布局、trivially relocatable memcpy、最新 C++ 标准。

基于 MIT 许可发布