in Source/Shared/arcana/threading/internal/internal_task.h [469:490]
static basic_expected<void, ErrorT> invoke(CallableT&& callable, InputT&&... input) noexcept
{
if constexpr (std::is_same<ErrorT, std::error_code>::value)
{
callable(std::forward<InputT>(input)...);
return basic_expected<void, ErrorT>::make_valid();
}
else
{
try
{
callable(std::forward<InputT>(input)...);
return basic_expected<void, ErrorT>::make_valid();
}
catch (...)
{
return make_unexpected(std::current_exception());
}
}
}