patterncppCritical
What's the problem with "using namespace std;"?
Viewed 0 times
withproblemtheusingstdwhatnamespace
Problem
I have heard
Why is this? Does it risk declaring variables that share the same name as something in the
using namespace std; is wrong, and that I should use std::cout and std::cin directly instead.Why is this? Does it risk declaring variables that share the same name as something in the
std namespace? Are there performance implications?Solution
Consider two libraries called Foo and Bar:
Everything works fine, and you can call
If you had used
using namespace foo;
using namespace bar;Everything works fine, and you can call
Blah() from Foo and Quux() from Bar without problems. But one day you upgrade to a new version of Foo 2.0, which now offers a function called Quux(). Now you've got a conflict: Both Foo 2.0 and Bar import Quux() into your global namespace. This is going to take some effort to fix, especially if the function parameters happen to match.If you had used
foo::Blah() and bar::Quux(), then the introduction of foo::Quux() would have been a non-event.Code Snippets
using namespace foo;
using namespace bar;Context
Stack Overflow Q#1452721, score: 2935
Revisions (0)
No revisions yet.