Это не имеет значения, по крайней мере, большую часть времени.
В формате ::identifier1::identifier2
предшествующее двоеточие говорит, что нужно искать глобальную область для identifier1
, а затем искать identifier2
в этой области.
В формате identifier1::identifier2
вместо этого мы рассмотрим текущую область действия для identifier1
. Если мы не найдем его, то будет произведен поиск родительской области и так далее, пока мы его не найдем. Затем мы ищем identifier2
в той области, которую только что нашли.
В случае, если вы уже находитесь в глобальном масштабе, это не имеет значения. Но эта история меняется, когда вы работаете в пространстве имен или классах, в которые вложены другие пространства имен или классы.