
It's true that if we use Outcome, the "failed" bit is already there so we don't need to ask the error_code at all. But the topic here, brought up by Niall, is error_code and not Outcome. Presumably, being the author of Outcome, he wouldn't ask for something he knows he doesn't need. :-)
Actually for Outcome, what I wanted from Boost.System was constexpr construction (got that) and removal of <string> (didn't get that). Outcome is useful precisely as a means to not have this problem with error_code. So the fix being discussed is not needed by Outcome. My interest in it is purely due to code written using Outcome which works with error codes. There is a second purpose though. Given my failure to remove <string>, I think it is now inevitable that I'll need to go implement a <system_error2> or something like that. It'll fix the header-only use problems and dragging in the STL allocator machinery. It'll also be more reliable for semantic comparisons. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/