Proposed/implemented namespace hierarchy for public API in CS
- CS
- Collection - Collection classes
- DocSystem - XML / document system related stuff
- Graphics - Graphics related, image classes ...
- Math - Mathematic function and definition
- Meta - Template Meta-programming helpers
- Memory - Memory allocation
- Platform - For the little platform specific stuff we have
- Platform::Win32, Platform::Unix, and so on.
- Plugin - Namespace with implementation of plugins (for name-hiding in static builds)
- PluginCommon - Code shared within classes of plugins (stuff in csplugincommon directory)
- Move SndSys here.
- Some of the platform-specific stuff is currently sorted under "csplugincommon". Should that use eg "PluginCommon::Platform::Win32" or rather "Platform::Win32"?
- Threading - Functions/classes for threading and atomic operations
- Utility - Assorted utilities,
The main namespace at each level should just contain "exposed interface" in same way as plugin just expose its interfaces. Private "helpers" etc should go in a ::Implementation subnamespace.
