(expecially when you try mising using <namespace> in the cpp with not using namespace in the header.
What problem are you having with this?
How do you solve it?
I don't spam my codebase with classes that all have the same name. A namespace should represent a logical grouping of functionality. Just because you can use a namespace to distinguish between things that have the same name, doesn't mean that's its primary utility.
If you're using namespaces to group functionality that belongs together, and you find yourself doing "messy" cross-namespace references, then the messiness is a good thing - it's a code smell that you might not otherwise get. "Messiness" can sometimes be a sign that the way you have organized your code base may need some rethinking.