命名空间std在哪里定义?

时间:2014-04-22 20:31:42

标签: c++ std

我想查看命名空间std,但是,我无法在我的计算机上找到定义它的文件。我试着谷歌搜索,但是,我没有多少运气。

3 个答案:

答案 0 :(得分:4)

在大多数Unix系统上,C ++标头通常存储在/usr/include/c++/<version>/中,其中<version>是GCC / libstdc ++版本(即4.94.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头文件中。只需查看编译器的选项,找出这些头文件的位置。

可能有一些非模板化的父类和独立功能,它们不在标题中。再看一下编译器文档,看看源文件是否包含在某个地方以及它们的位置。