- Bump Boost min cmake required to 3.10 to match standalone Outcome. Also bump minium cmake to 3.10
everywhere else in Outcome, as CI is now failing due to us requested too old a cmake. #314
Replaces https://github.com/boostorg/outcome/pull/8
- Outcome.Experimental has had C representation support since the beginning, however it had
been mainly intended that C++ would originate Results, they would pass through C, and back
into C++. It hadn't really been expected that C would want to do much with Results other than
inspect them for happy or sad path.
It turns out there is more demand than expected for a more functional Result from within C,
so this release adds the power to create Results in success and two types of failure, semantic
comparison of Results, and printing of Result messages. You can also wrap a C enum into a
quick status code from enum, allowing easy custom C error coding from 100% within C.
[The documentation for the C support]({{% relref "../experimental/c-api" %}}) has been updated
to reflect the new facilities.
2024-09-04 17:19:35 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
- Something I've been meaning to do for far too long now is make the GDB pretty printers
auto-loading so you don't have to set up `.gdbinit`. This is now done. I also improved
the pretty printers to also pretty print the C result type which can be very useful if
working with that type, as it will print the error message in GDB.
Experimental Outcome's `status_code` has also gained its own auto-loading GDB pretty printer
with display of `strerror()` if the code domain is POSIX or generic.
2024-06-21 12:37:31 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
auto-loading so you don't have to set up `.gdbinit`. This is now done. I also improved
the pretty printers to also pretty print the C result type which can be very useful if
working with that type, as it will print the error message in GDB.
Experimental Outcome's `status_code` has also gained its own auto-loading GDB pretty printer
with display of `strerror()` if the code domain is POSIX or generic.
Fixes#293
- Some users wished that Outcome would be clean with `-Wpedantic`, this is now turned on for
the test suite.
Fixes#294
- All use of `assert()` has been replaced with `OUTCOME_ASSERT`, which can be user overridden
at compile time.
Fixes#295
- In git commit 12b14e1533 (Aug 11 2022) status code had its
paths changed due to its headers not previously having the right path convention. It was not
realised at the time that in Boost.Outcome this resulted in
`<boost/outcome/experimental/status-code/status-code/headers.hpp>` which is not desirable.
This has now been remedied to remove the double `status-code`, which will obviously break
any Boost.Outcome code which relies on the double `status-code`. Standalone Outcome is unaffected.