jaka jest różnica między ::std::string
i std::string
Pierwsza z nich jest globalna? Ale globalne dla czego? Czy przestrzeń nazw nie jest globalna? Dzięki za pomoc.Jaka jest różnica między :: std :: string i std :: string?
7
A
Odpowiedz
14
::std::string
oznacza string
w przestrzeni nazw std
w globalnej przestrzeni nazw. Wiodący ::
wymusza wyszukiwanie w globalnym obszarze nazw. Dlatego ::std::string
zawsze oznacza typ string
ze standardowej biblioteki C++.
std::string
oznacza string
w przestrzeni nazw std
, gdzie std
będzie wyglądał w bieżącym zakresie. Dlatego też, jeśli istnieje klasa, przestrzeń nazw lub wyliczenie o nazwie std
, wyszukiwanie nazwy może znaleźć 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
}
}
}
Nie jest konieczne stosowanie wiodącą ::
tak długo jak ty i twoi współpracownicy nie zgadzają się wymienić niczego std
. To po prostu dobry styl.
Powiązane problemy
- 1. Różnica między std: string i std :: string
- 2. Jaka jest różnica między std :: string i std :: basic_string? I dlaczego oba są potrzebne?
- 3. Jaka jest różnica między std :: to_string, boost :: to_string i boost :: lexical_cast <std::string>?
- 4. Konwersja std :: __ cxx11 :: string na std :: string
- 5. Jaka jest różnica między std :: condition_variable i std :: condition_variable_any?
- 6. Jaka jest różnica między std :: cout i std :: wcout?
- 7. Różnica między String [] a i String ... a
- 8. Jaka jest praktyczna różnica między std :: nth_element a std :: sort?
- 9. Czy wyrażenie "std :: string + char" tworzy kolejny ciąg std :: string?
- 10. std :: string na LPCTSTR
- 11. operator std :: string() const?
- 12. Uzyskiwanie podciągu `std :: string` między dwoma iteratorami
- 13. std :: wektor <std::string> crash
- 14. Różnica między std :: uninitialized_copy & std :: copy?
- 15. std :: move między std :: string i std :: vector <unsigned char>
- 16. Jaka jest różnica między "as string" i "stringvalue" w swift?
- 17. jaka jest różnica między używaniem ATOMIC_FLAG_INIT i std :: atomic_flag :: wyraźny
- 18. std :: string s() dziwne zachowanie
- 19. std :: string część do całkowitej
- 20. Adres każdego znaku std :: string
- 21. Uzyskaj ostatni element std :: string
- 22. std :: string :: c_str() i uzupełnienia tymczasowe
- 23. Konwersja uint64_t na std :: string
- 24. konwersja int na std :: string
- 25. std :: string :: zastąpienie standardowej implementacji?
- 26. usuń spacje w std :: string
- 27. Jaka jest różnica między std :: tie a std :: make_tuple z argumentami std :: ref?
- 28. Wysyłanie i odbieranie std :: string over socket
- 29. Dlaczego std :: string :: append() jest mniej wydajny niż std :: string :: operator +()?
- 30. Jak przekonwertować std :: string do v8 Local <string>