【发布时间】:2016-05-11 01:30:44
【问题描述】:
我的新工作场所的代码在开始时使用看似多余的范围解析来访问命名空间。例如,::std::vector<int> 而不是 std::vector<int>。[1] 我以前从未见过以这种方式完成命名空间访问。
我能想到的一个有点做作的场景是,某个命名空间ns 声明了一个嵌套命名空间std,它也有一个vector(在此示例中)。然后左侧的“附加”:: 确保使用的是全局std::vector,而不是本地的。但是,这不太可能是原因,因为我们的代码经过了相当复杂的审查过程,几乎不可能让任何人引入新的 std 命名空间。
是否还有其他可能产生影响的场景?
[1] 我请了团队中的几位高级开发人员向我解释这一点,但他们只是模糊地知道为什么要使用这个“约定”。最早写代码的开发者几年前就离开了团队,在他们离开之前没有人问过他们。
【问题讨论】:
-
我想你回答了你的问题,我看不出有任何其他理由这样做
-
@Garf365 是的,这是我能想到的一种情况,只是想看看这里的专家是否知道其他任何事情。有时这样的问题会导致学习一些完全出乎意料的东西。 :-)
标签: c++ namespaces