2016-05-20 13 views
1

我正在閱讀Ubuntu 14.04 x86中的C++ STL的源文件。在std::list::_M_insert哪一個對象_M_hook,我只是找不到_M_hook的定義。我試圖用grep整個/ usr/include和g++ -E來處理包含<list>的源文件,但沒有什麼意思。C++ - 其中是std :: list標頭中_List_node_base的成員函數的實現

由於struct _List_node_base(定義在/usr/include/c++/4.8/bits/stl_list.h:77)不是模板類,所以也許這個實現已經嵌入到一些二進制文件中,如lib文件。事實上,不僅_M_hook,而且其他成員像_M_reverse,_M_transfer,我也無法挖掘出他們的C++源代碼。

不知道我是否遺漏了包含實現的東西。還是他們真的預編譯成二進制文件?

回答

2

你是對的;該方法確實被編譯到庫中。你可以在git repo here中看到實現。

相關問題