From: Matt Hurd (matt.hurd_at_[hidden])
Date: 2005-09-01 20:46:24
>On 02/09/05, Rob Stewart <stewart_at_[hidden]> wrote:
> >From: Roland Schwarz <roland.schwarz_at_[hidden]>
> > Perhaps we should set up a split directory structure instead?
That's the plan. Also give some clearer responsibilities for platform
> > But then I see two extremes:
> > 1) A common header which is the only point where platform specific
> > 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.
> 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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk