Двойное двоеточие перед функцией в С++

1,00
р.
Операция двойного двоеточия называется операцией разрешения области видимости. Когда мы пишем ::func() (слева от оператора ничего нет), мы уточняем принадлежность к области видимости глобального пространства имён? Зачем?

Ответ
Допустим, Ваш код работает в пространстве имён ns1, внутри которого есть функция ns1::func(), но при этом Вам нужно вызвать функцию func(), определённую без пространства имён (в глобальном пространстве). Вот в таких случаях Вам и нужно использовать ::func(), ибо без этого уточнения компилятор вызовет ns1::func(), чего Вам не хотелось бы.