Is there a 'right' way to approach namespaces in C++
<p>I'm infected by Java, C# and AS3, I keep wanting to use C++ namespaces in the same way but I keep reading that they're not really designed with this in mind.</p>

<p>Is there a correct way to use namespaces? For instance in a codebase consisting of a dozen library projects (let's say things like graphics, sound, math, etc) and a couple of application projects, what to do? Is it right/wrong/developer-preference:</p>

<ul>
<li>To put everything a top-level <code>MyCompanyName</code> or <code>MyProjectName</code> namespace?</li>
<li>To have a (sub-)namespace for each library</li>
</ul>

<p>Are there official rules/guidelines as part of C++, or only recommendations which people tend to follow?</p>
