std-namespace
-
Warum liegen manche Std-Funktionen wie getline() (auch) im globalen (statt im std-) namespace?
-
Weil du die alten C-Header einbindest (zB stdlib.h) bei denen es keine Namespaces gab anstatt wie empfohlen die Wrapper-Header (cstdlib). Bei letzterem liegt alles im Namespace std.
-
Nein.
#include <iostream> #include <string> int main() { std::string input; getline(std::cin, input); std::cout << "You entered \"" << input << "\"." << std::endl; return 0; }Geht bei mir (g++). Und ich glaube nicht, dass es am Compiler liegt, weil ich in einem Beispiel der boost-Doku auch auf die Verwendung ohne std:: gestoßen bin.
-
Das geht wegen ADL.
http://en.wikipedia.org/wiki/Argument_dependent_name_lookup