我们已经知道::
是全局命名空间。我们已经知道that使用命名空间有一些缺点。
因此我们决定输入less并键入文件using ::std::cout;
的开头,但我们也可以输入using std::cout;
。那有什么不同吗?
答案 0 :(得分:3)
有些人写::std::cout
是为了绝对确保他们从标准库中获取cout
,因为领先的::
根源在全局命名空间键入。
否则,可以想象查找可以找到一些::haha::trolling::std::cout
名称。但是,我会说这不太可能。
我有时会在短的函数模板中编写::std
,这些模板设计为高度可重用,只是为了获得最大的可移植性,但这种情况并不常见。我已经看到一个SO贡献者虔诚地坚持它,但那就是它。