admin管理员组

文章数量:1794759

哪里下载C++ STL的源码

哪里下载C++ STL的源码

今天突然想看下vector的erase实现,但是找了好久都没找到一个明确的下载方式。侯捷的个人网站也无法访问,只能在搜索引擎里各种查找。最终找到了下载方法,竟然如此简单,分享出来节约大家的时间。

下载gcc的源码:github/gcc-mirror/gcc,STL的实现就在libstdc++-v3目录里。

这里还要注意一点,如果有的函数你在工程里找不到实现,比如_M_erase,可能是没有把实现该函数的文件加到工程里,因为实现该函数的文件扩展名既不是 也不是.cpp,而是.tcc ,比如vector调用的_M_erase是在vector.tcc里实现的:

template<typename _Alloc> typename vector<bool, _Alloc>::iterator vector<bool, _Alloc>:: _M_erase(iterator __position) { if (__position + 1 != end()) std::copy(__position + 1, end(), __position); --this->_M_impl._M_finish; return __position; }

接下来就可以阅读STL的源码了。

本文标签: 源码STL