В пространстве имен ‘names’: :: std :: vs std ::

Я просматривал некоторые сообщения здесь на Stackoverflow, и я заметил, что большинство людей используют std:: но некоторые люди используют ::std::

Я думаю, что прочитал что-то о глобальный охват или что-то подобное в пространствах имен в качестве причины для использования ::std:: (но я не могу найти его сейчас, потому что это было в комментарии к не связанному вопросу)

Есть ли причина предпочитать один путь другому?

3

Решение

Плохо писать такой код, но вы мог:

namespace foo {
namespace std {
int bar;
}
std::string s;
}

В этом случае std::string относится к ::foo::std пространство имен, а не ::std Пространство имен. Итак, используя ::std::string просто быть немного более однозначно осторожным.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]