TartanLlama / expected

C++11/14/17 std::expected with functional-style extensions

Home Page:https://tl.tartanllama.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

void -> tl::expected<void, error_type_enum> is not possible when void is return of a function, not {}

Arniiiii opened this issue · comments

commented
enum class unexpected_error_find_in_map {
 NotFound,
 ShitHappened
};
void a_foo(...) { ... }

tl::expected<return_type_of_a_foo, unexpected_error_find_in_map> function(...) {
...
return a_foo(...);
}

error: could not convert ...(function place and name )
from ‘void’ to ‘tl::expected<void, unexpected_error_find_in_map>’

the problem appears when

return a_function_which_returns_void(...);

but not when

return {}

Current solution:

if constexpr( return_type_is_void ) {
the_function(...);
return {};
} else {
return the_function(...);
}

I don't know at which side the problem.