expected icon indicating copy to clipboard operation
expected copied to clipboard

make_unexpected in a function marked noexcept

Open zomgrolf opened this issue 5 years ago • 0 comments

Hi,

I have a function that returns tl::expected<int, std::exception_ptr> and is marked as noexcept. Inside that function I try to catch any exception that might be in flight and wrap it in tl::expected by calling tl::make_unexpected(std::current_exception()). That, unsurprisingly, compiles just fine. If I then attempt to run the code analysis (VS 2019 16.3) on said function, I get the following warning: C26447: The function is declared 'noexcept' but calls function 'make_unexpected<std::exception_ptr>()' which may throw exceptions (f.6). Obviously, I can suppress this warning, but I'd like to know, if there's a way to call make_unexpected inside a noexcept function, that avoids triggering this particular warning? Other than modifying expected.hpp and making th make_unexpected fn and unexpected ctors conditionally noexcept (if the error type is noexcept copy-constructible or noexcept move-constructible)?

zomgrolf avatar Nov 01 '19 23:11 zomgrolf