| > Not really. If someone is using vector<type> or unordered_map it's unlikely its anything else There are far less distinctive names than those in namespace std. Have you seen remove(), erase(), move(), search(), apply(), hash, format(), etc.? Not to mention std::operator overloads like == and < that you suddenly drag into overload resolution needlessly, which can bring their own fun into the mix. > if you are using an IDE, you can check easily Lots of people don't. And even those who do, don't immediately have the symbol available to go to its definition. It's quite normal to have to wait O(minutes) for semantic analysis to become ready. > You are basically implying that anything short of full names are a problem which is just not true. No, very much not so. If you use it on something that's unlikely to collide (like std::cerr), `using std::foo;` is generally fine outside of headers. `using namespace std;` is the one that's problematic. |
If they did they wouldn't have these problems of wondering where functions are defined.
Who are these people not using an IDE when working professionally with a team of people? That's a much bigger red flag than putting using namespace std; inside a compilation unit.
If there is ambiguity, then you can just add a std:: in front of a function. This is all within a single compilation unit anyway.