I've completed a second iteration on Noexcept, incorporating valuable feedback from the previous discussions here, and I'd like to thank everyone who participated. https://zajo.github.io/boost-noexcept/ The new result<T> type has a hard value-or-error invariant and can be used to transport errors between threads or to temporarily postpone the consumption of function results, e.g. by storing result<T> objects into a queue (of course, as before, users do not need result<T> just to report a failure from a function.) There is also a new macro, BOOST_NOEXCEPT_CHECK, which makes writing error-neutral functions easier and improves error checking in general. The documentation is also much more complete, including better examples and a new section on programming techniques.