В чем разница между ::std::string
и std::string
Бывший глобальный? Но глобальный для чего? Не является ли пространство имен std глобальным? Спасибо, что помогли мне.В чем разница между :: std :: string и std :: string?
7
A
ответ
14
::std::string
string
в пространстве имен std
в глобальном пространстве имён. Ведущий ::
заставляет поиск искать в глобальном пространстве имен. Поэтому ::std::string
всегда означает тип string
из стандартной библиотеки C++.
std::string
означает в пространстве имен std
, где std
будут рассмотрены в текущей области string
. Поэтому, если есть класс, пространство имен или перечисление с именем std
, поиск имени может найти, что std
.
#include <string>
namespace foo {
namespace std {
class string { ... };
namespace bar {
std::string s; // means foo::std::string
::std::string s; // means string from standard library
}
}
}
Не нужно использовать ведущую ::
до тех пор, как вы и ваши сотрудники соглашаются ничего std
не назовешь. Это просто хороший стиль.
Смежные вопросы
- 1. В чем разница между «std :: string const & s» и «const std :: string & s»?
- 2. В чем разница между std :: string :: c_str и std :: string :: data?
- 3. В чем разница между std :: string (*) [96] [60] и std :: string * [96] [60]?
- 4. В чем разница между std :: string и std :: basic_string? И зачем нужны оба?
- 5. Почему std :: string :: append() менее мощный, чем std :: string :: operator +()?
- 6. В чем разница между [String] и [(String)]?
- 7. В чем разница между std :: atoi() и std :: stoi?
- 8. В чем разница между std :: to_string, boost :: to_string и boost :: lexical_cast <std::string>?
- 9. Преобразование std :: __ cxx11 :: string to std :: string
- 10. std :: string :: assign vs std :: string :: operator =
- 11. Разница между std :: string :: resize и std :: string :: erase при сокращении строки
- 12. std :: string vs string
- 13. Поиск std :: string между лимитом
- 14. std :: string и stdarg.h
- 15. std :: преобразование u32string в/из std :: string и std :: u16string
- 16. Std :: string to std :: array?
- 17. В чем разница между std :: invoke и std :: function?
- 18. В чем разница между std :: partial_sum и std :: inclusive_scan?
- 19. В чем разница между std :: set и std :: map
- 20. В чем разница между std :: cout и std :: wcout?
- 21. В чем разница между std :: function и std :: mem_fn
- 22. В чем разница между std :: condition_variable и std :: condition_variable_any?
- 23. В чем разница между std :: valarray и std :: array
- 24. В чем разница между std :: set и std :: vector?
- 25. В чем разница между std :: strtol и std :: stoi?
- 26. В чем разница между std :: shared_ptr и std :: experimental :: atomic_shared_ptr?
- 27. std :: string, std :: wstring и UTF8
- 28. Разница между std :: regex_match и std :: regex_search?
- 29. C++ using std :: sscanf и std :: string
- 30. forward декларация std :: string и std :: wstring