
Matt Hurd wrote:
There are two other alternatives:
1. enable both by configuration macro (cpp becomes is used as an ipp) - unusual
2. decide on which should be header only to suit lib authors as I suspect simple synch primitives such as mutexes and their locks are needed by most authors.
On balance the volume of the voices seems to indicate a preference for library approach rather than a header only attempt.
Votes? Further pros or cons?
My vote would be for the hybrid approach - i.e. basic stuff is inline by default, but in the rare cases when system headers cause problems, it should be possible to switch to library-based implementation using a configuration macro. This should please everyone. Some essential boost libraries currently include system headers anyway - for example, shared_ptr causes inclusion of windows.h.