libcxx中class vector类的具体定义与实现位置在哪里?
libcxx vector类定义位置说明
你查看的libcxx/include/vector是libcxx对外提供的公共头文件,本身不存放vector的完整类定义,真实定义拆分在libcxx的内部私有头文件中:
- 前置声明位于
__fwd/vector.h,这个头会在公共vector头的最开头被引入 - 完整的类核心定义在
libcxx/include/__vector/vector.h中,包含类的成员变量定义、普通成员函数的实现逻辑 - 模板成员函数、底层内存管理、迭代器相关的实现,拆分在
__vector目录下的vector_base.h、iterator.h等细分头文件中 - 公共头文件
vector的末尾会引入所有这些内部实现头,对外暴露完整可用的std::vector类型。
注:14及更早版本的libcxx没有做实现细节的目录拆分,
vector类的完整定义直接写在公共vector头文件的宏 guard 内部的代码区,你可以通过搜索template <class _Tp, class _Allocator>关键字快速定位到定义位置。
内容的提问来源于stack exchange,提问作者ChrisZZ
相关产品推荐
相关产品推荐

