我新工作場所的代碼在開始時使用看似冗餘的作用域分辨率來訪問命名空間。例如,::std::vector<int>
而不是std::vector<int>
。 [1]我從來沒有見過以前用這種方式完成名稱空間訪問。使用:: namespace :: something命名空間:: something有什麼好處?
我能想到的一個有點設計的場景是某些命名空間ns
聲明瞭嵌套命名空間std
,它也有一個vector
(在此示例中)。然後左邊的「附加」::
確保全球使用std::vector
,而不是本地使用。然而,這不可能是我們的代碼經過一個相當複雜的審查過程的原因,因此任何人都不可能引入一個新的名稱空間std
。
有沒有其他的情況下,這可能會有所作爲?
[1]我問了幾個資深開發商在隊這個給我解釋,但他們只有爲何正在使用這種「慣例」一個模糊的概念。編寫代碼的最早的開發人員幾年前離開了團隊,在他們離開之前沒有人問過他們。
我想你回答你的問題,我沒有看到有任何其他的原因 – Garf365
@ Garf365是的,那是我能想到的一種情況,只是想檢查這裏的專家是否知道其他事情。有時候這些問題會導致學到一些完全意想不到的事:-) –