我想查看命名空间std,但是,我无法在我的计算机上找到定义它的文件。我试着谷歌搜索,但是,我没有多少运气。
答案 0 :(得分:4)
在大多数Unix系统上,C ++标头通常存储在/usr/include/c++/<version>/
中,其中<version>
是GCC / libstdc ++版本(即4.9
或4.9.2
),否则libc ++版本即v1
。
在该目录中是所有(或大多数?)标准强制标头,这些标头大多只是普通的C ++代码。对于libstdc ++,请特别注意大多数旧标题只包含bits/
中的内容。很少有C ++ 11特定的标题可以做到这一点。
答案 1 :(得分:2)
可以找到namespace std
中包含的所有内容的列表here。
如果您使用的是Visual Studio,可以在本地找到它:
~\Microsoft Visual Studio\VC\crt\src
还有一个在线代表here.
注意:编辑src文件需要您自担风险,我建议您不要编辑它们。
答案 2 :(得分:1)
std
命名空间中实现的许多内容都是模板化的,这意味着它们的整个实现将在头文件中。例如,std::vector
应位于vector
头文件中。只需查看编译器的选项,找出这些头文件的位置。
可能有一些非模板化的父类和独立功能,它们不在标题中。再看一下编译器文档,看看源文件是否包含在某个地方以及它们的位置。