26 May
2017
26 May
'17
1:16 p.m.
Outcome uses a different mitigation by restricting the possible types of E, rendering the above case very unlikely (although not impossible, since outcome<error_code> is legal).
A static assert should prevent construction with a T convertible to or from an error_code_extended or a std::exception_ptr. As error_code_extended explicitly constructs from error_code, outcome<error_code> should not compile. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/