I don't personally agree with avoiding using namespaces in .cpp files I see no problem with that
Here's the problem with just inserting using namespace into source files: What can you tell me about this line of code:
sort(ptr, term);
Not a lot, unfortunately. You can probably infer that ptr is likely the start of the range we want to sort, but term.... could be anything. It could be the end of the range we want to sort, it could be a function pointer that is sorting the contents of ptr by "term." Without context it is hard to determine what this piece of code is actually doing. We know it's sorting (presumably) because of the name. But we know very little about the sort function (what kind of a sort is it?), how it does its comparisons (is term a function pointer? The terminal to stop sorting when found? The end pointer of the range? A pointer to the last element to be sorted?), what kind of a comparison function does it use if term is some sort of a terminal?
On the other hand, if you see:
std::sort(ptr, term);
you immediately know several things...
1. You know that ptr and term are iterators of a random access type (most likely pointers) to the first element of the range, and one past the end of the range you want sorted.
2. You know the sorting performance characteristics of std::sort (N log2N)
3. You know that by default it will use std::less as its comparison predicate, and that said comparison predicate uses the < operator for comparison.
All of that extra clarity for 5 extra characters. I'll take that over using namespace std; or similar in a source file at any time.