Я просматривал некоторые сообщения здесь на Stackoverflow, и я заметил, что большинство людей используют std::
но некоторые люди используют ::std::
Я думаю, что прочитал что-то о глобальный охват или что-то подобное в пространствах имен в качестве причины для использования ::std::
(но я не могу найти его сейчас, потому что это было в комментарии к не связанному вопросу)
Есть ли причина предпочитать один путь другому?
Плохо писать такой код, но вы мог:
namespace foo {
namespace std {
int bar;
}
std::string s;
}
В этом случае std::string
относится к ::foo::std
пространство имен, а не ::std
Пространство имен. Итак, используя ::std::string
просто быть немного более однозначно осторожным.
Других решений пока нет …