
On 02/09/05, Rob Stewart <stewart@sig.com> wrote:
From: Roland Schwarz <roland.schwarz@chello.at>
Perhaps we should set up a split directory structure instead?
That's the plan. Also give some clearer responsibilities for platform maintainers.
But then I see two extremes: 1) A common header which is the only point where platform specific
<snip>
2) A common set of headers that defines the interface only and leave implementation to the platform files. However this seems prohibitive since this would forbid for platform specific inline optimizations.
<snip>
3) A common header or set of common headers that declare(s) the interfaces plus #ifdefs to include the appropriate platform-specific header(s). Thus, when including a.hpp, via conditional compilation, you may also get a_1.hpp, a_2.hpp, or a_3.hpp. Whether there are corresponding files a_1.cpp, a_2.cpp, a_3.cpp, or even a.cpp, is based upon need.
2) doesn't fly due to the inlining. Something along the lines of 1 and 3. I'm not worried too much about interface inconsistencies as such an occurance will just highlight the failure of the test cases. The larger issue will be that many platforms will just be a posix implementation variation perhaps with only minor changes. Perhaps it will make sense to have a generic posix implementation that is #ifdef'd per platform. This will be referred to as the default implementation. We can make a call when the #ifdef'ing detracts too much and break such an implementation out to its own. matt. matt@zomojo.com