我在Ubuntu 14.04 x86中仔细阅读C ++ STL的源文件。在调用std::list::_M_insert
对象_M_hook
的{{1}}处,我找不到_List_node_base
的定义。我尝试_M_hook
整个/ usr / include和grep
来处理包含g++ -E
的源文件,但没有任何有趣的内容。
也许实现已嵌入到某些二进制文件中,如lib文件,因为<list>
(在/usr/include/c++/4.8/bits/stl_list.h:77中定义)不是模板类。事实上,不仅struct _List_node_base
而且其他成员如_M_hook
,_M_reverse
,我也无法挖掘出他们的C ++来源。
不知道我是否遗漏了包含实施内容的内容。或者它们是否真的预编译成二进制文件?