On 2/3/2016 7:18 PM, Robert Ramey wrote:
On 2/3/16 5:11 PM, Michael Marcin wrote:
On 2/3/2016 3:10 AM, Niall Douglas wrote:
You're using Outcome in standalone non-Boost configuration in combination with Boost, so the "Boost-lite" emulation it configures will collide with Boost.
As you noticed if you include Outcome after Boost it spots you've already included Boost and turns standalone off.
You can configure Outcome to use Boost natively from the get go via macros. See its config.hpp. Or just keep including Outcome after all other Boost headers.
I think it's very unwise to make behavior of some library dependent upon header order. It's fragile and non-intuitive and leads to bugs or unexpected behavior which can be very, very, very hard to find.
Sure, but it seems that I just have the library misconfigured is all. The library doesn't seem to depend on header order unless used in a way that differs from how it is configured. Which I think is perfectly reasonable (all bets are off if you lie to it and configure it to think you don't have boost then turn around and use boost with it IMO). My clever remark was referring to the boost-lite not to the header ordering.