On 05/27/2017 06:43 PM, Niall Douglas via Boost wrote:
I can see why you might think that organisation superior, and I did start out with that design. In fact, boost-lite used to define the exact same macros as Boost, precisely because of that organisation, the idea was that boost-lite was a substitute for Boost.
The standalone Outcome does not have to use its own namespace. It could retain the boost::outcome namespace. That way we can remove yet another dependency (the part of "boost-lite" previously known as APIBind.) That gives us a clean separation where the Boost.Outcome repository is "untainted" by any foreign submodules, and the standalone Outcome repository is a Boost.Outcome without a Boost dependency. How your Boost emulation layer is included in the standalone Outcome repository is out of scope for this review, but CMake offers sufficient choices (sub-directories, pkg-config, downloadable external projects, etc.)