static basic_expected invoke()

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());
                    }
                }
            }