有人知道我在哪里可以找到std::名称空间的列表吗??(对于C++98)
Does anyone know where I can find a list of the std:: namespace?? (for C++ 98)
在包含using指令后,我想知道哪些单词不应该用作变量。我似乎找不到命名空间的列表:(非常感谢帮助:)
std
命名空间中所有名称的最明确列表是C++标准。当前版本超过1300页,可能在std
中包含数千个唯一标识符。除此之外,一些编译器可能还会在std
中包含一些特定于平台的标识符,而这些标识符在很大程度上是未记录的——因此,您必须检查有问题的编译器的源代码(如果可能的话),并在每次制作补丁时重新检查。
看起来很吓人?很好,希望我能引起你的注意。
不要在代码中执行using namespace std
特别是不要在头文件中使用use namespace std
。将您的标识符放入其自己的命名空间中。现在,您不必关心谁的命名空间中有什么。你想怎么称呼就怎么称呼。
我完全赞成懒惰,但要聪明。如果你想从std
中提取特定的名称,这样你就不必一遍又一遍地键入std::
,只需输入以下内容:
using std::string;
没有你不需要的东西。但是只能在CPP文件中执行此操作,而不能在标头中执行。
更好的想法是:不要在代码中使用using namespace std;
。我从来没有听说过一种方法可以列出std::命名空间中的所有内容。
除了John Dibling的回答提供的信息外,我想指出的是,即使在编写using namespace std;
时,也不一定要避免std命名空间中的名称。您可以通过限定名称来解决存在using
指令时的歧义。您甚至可以使用顶级::
限定"全局"命名空间中的名称。
#include <iostream>
using namespace std;
int cout;
int main() {
::cout = 10;
}
我想指出这一点的原因是,我知道许多C++程序员,即使在使用它几年后,也不知道如何在全局名称空间中限定名称。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Pybind11:将元组列表从Python传递到C++
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 从类型列表中递归删除重复项会导致编译器堆空间错误 (VS2017)
- 将节点添加到链接列表中,而无需明确分配内存空间(无需使用新)
- 我如何使我的循环转到char*阵列的尽头,并将每个城市都放在链接的列表中(城市被划分为白色的空间)
- C++:在函数参数列表中使用或不使用命名空间
- 将空间添加到链接列表中
- 从双链接列表中删除节点并释放其空间
- 命名空间 std 中所有符号的列表
- 正在为结构内部的列表分配空间
- 有人知道我在哪里可以找到std::名称空间的列表吗??(对于C++98)
- 仅为初始化器列表使用命名空间
- 在运行时获取名称空间中的函数列表
- 为什么这个列表实现比 stl 列表占用更多的空间