Делайте это только для устранения неоднозначности.
У меня есть фрагмент кода, где это необходимо, поскольку я нахожусь в пространстве имен X
, в котором есть функция для стандартного отклонения - std
. Всякий раз, когда я хочу получить доступ к пространству имен std
, мне нужно использовать ::std
, потому что в противном случае компилятор будет думать, что я имею в виду указанную функцию.
Конкретный пример:
namespace X {
double std(::std::vector<double> const& values) { … }
void foo(::std::vector<double> const& values) {
::std::cout << std(values) << ::std::endl;
}
}