KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I was looking over some (C++) code and found something like this: //Foo.cpp namespace { void SomeHelperFunctionA() {} void SomeHelperFunctionB() {} void SomeHelperFunctionC() {} //etc... class SomeClass //<--- { //Impl }; } SomeHelperFunction[A-Z] are functions that are only needed in that translation unit, so I understand why they're in an unnamed namespace . Similarly, SomeClass is also only required in that translation unit, but I was under the impression that you could have classes with identical names in different translation units without any sort of naming collisions provided that you didn't have a global class declaration (e.g., in a commonly included header file). I should also mention that this particular translation unit does not include any headers that might declare a class with an identical name ( SomeClass ). So, given this information, could someone please shed some light on why the original programmer might have done this? Perhaps just as a precaution for the future? I'll be honest, I've never seen classes used in unnamed namespaces before.
Tags (comma-separated)
Save Edits
Cancel