我在Ubuntu 14.04 x86中仔细阅读C ++ STL的源文件。在对象的std::list::_M_insert
哪个调用_M_hook
处_List_node_base
,我只是找不到_M_hook
的定义。我尝试grep
使用整个/ usr / include并g++ -E
处理包含的源文件,<list>
但没有任何兴趣。
可能实现已嵌入到某个二进制文件struct _List_node_base
(如lib文件)中,因为(在/usr/include/c++/4.8/bits/stl_list.h:77定义)不是模板类。其实不仅是_M_hook
还包括其他成员一样_M_reverse
,_M_transfer
我不能挖掘出自己的C ++源代码要么。
想知道我是否错过了包含实现的内容。还是真的将它们预编译为二进制文件?
你是对的; 该方法确实已编译到库中。您可以在git repo中查看实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句