C++ 什么';使用std::cout和使用std::cout有什么区别?

C++ 什么';使用std::cout和使用std::cout有什么区别?,c++,namespaces,C++,Namespaces,我们已经知道,:是全局名称空间。我们已经知道使用名称空间有一些缺点 因此,我们决定使用::std::cout键入更少的内容,并在文件中键入内容,但我们也可以使用std::cout键入。所以有什么区别吗?有些人写::std::cout是为了绝对确保他们从标准库中获得cout,因为前导的:将类型根在全局命名空间中 否则,可以想象查找可以找到一些::哈哈::trolling::std::cout名称。然而,我认为这是不可能的 我有时确实会用简短的函数模板编写::std,这些模板被设计成高度可重用的,只

我们已经知道,
是全局名称空间。我们已经知道使用名称空间有一些缺点


因此,我们决定使用::std::cout键入更少的内容,并在文件
中键入内容
,但我们也可以使用std::cout键入
。所以有什么区别吗?

有些人写
::std::cout
是为了绝对确保他们从标准库中获得
cout
,因为前导的
将类型根在全局命名空间中

否则,可以想象查找可以找到一些
::哈哈::trolling::std::cout
名称。然而,我认为这是不可能的


我有时确实会用简短的函数模板编写
::std
,这些模板被设计成高度可重用的,只是为了最大限度地提高可移植性,但这是相当少见的。我见过一个如此之多的投稿人,他虔诚地坚持它,但仅此而已。

一些人编写
::std::cout
,以绝对确保他们从标准库中获得
cout
,因为领先的
将类型植根于全局名称空间

否则,可以想象查找可以找到一些
::哈哈::trolling::std::cout
名称。然而,我认为这是不可能的


我有时确实会用简短的函数模板编写
::std
,这些模板被设计成高度可重用的,只是为了最大限度地提高可移植性,但这是相当少见的。我见过一个如此之多的投稿人,他虔诚地坚持它,但仅此而已。

不在全局范围内。
名称空间不{namespace trythis{namespace athome{namespace std{int cout;}使用std::cout;}}
如果不使用任何名为
std
的内部名称空间,那么这只是风格问题,但我只认识一个人,他实际上写了
::std::cout
。我会说这是非常罕见的。@LightnessRacesinOrbit:至于我自己,我不100%确定是否有任何ADL问题值得一提,这使得“这只是一个风格问题”部分不正确,因此我将我的输入限制在一个评论上。@Christian:我建议,如果你不确定你在说什么,不要说;)错误地将其从回答部分移动到评论部分(实际上是为了请求澄清)并不能解决提供潜在虚假信息的问题。。。此外,如果你把它作为一个答案发布,结果证明它是错误的,那么我们就可以为你投反对票了……不在全局范围内。
名称空间不{namespace trythis{namespace athome{namespace std{int cout;}使用std::cout;}}
如果你不使用任何名为
std
的内部名称空间,那只是风格的问题,但我只知道有一个人写了
::std::cout
。我会说这是非常罕见的。@LightnessRacesinOrbit:至于我自己,我不100%确定是否有任何ADL问题值得一提,这使得“这只是一个风格问题”部分不正确,因此我将我的输入限制在一个评论上。@Christian:我建议,如果你不确定你在说什么,不要说;)错误地将其从回答部分移动到评论部分(实际上是为了请求澄清)并不能解决提供潜在虚假信息的问题。。。此外,如果你把它作为一个答案,它原来是错误的,那么我们就可以投票给你……我模糊地记得Stefan Ram在COMP.L.C.+使用了这种风格。@克里斯蒂安哈克尔:我记不起来是谁在这里:(我模糊地记得Stefan Ram在C.P.L.C.+中使用了这种风格。”克里斯蒂安哈克尔:我记不起来这是谁了: