void -> tl::expected<void, error_type_enum> is not possible when void is return of a function, not {}
Arniiiii opened this issue · comments
Arni 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.