As we move more and more to C++11 the use of templates and header only implementations balloons. For many of these templates to be useful some internal utilities must be provided to them but should not be "exposed" as public API themselves. Many large scale projects have similar issues as more and more is implemented in the headers. Boost for example uses the ::detail namespace to designate internal only types and methods. I would like to propose that we do something similar. To be consistent with our Java brothers I would suggest apache::geode::client::internal namespace and headers located in the include/geode/internal directory.
Thoughts? -Jake