История изменений
Исправление fsb4000, (текущая версия) :
А можешь разжевать, что там происходит?
Насколько я понимаю, типа такого:
std::variant<T2, Error> res(T arg)
{
auto r = doJob(arg);
if (std::holds_alternative<Error>(r)) return std::get<Error>(r);
auto r2 = doJob2(r);
if (std::holds_alternative<Error>(r2)) return std::get<Error>(r2);
auto r3 = doJob3(r2);
if (std::holds_alternative<Error>(r3)) return std::get<Error>(r3);
return r3;
}
Исправление fsb4000, :
А можешь разжевать, что там происходит?
Насколько я понимаю, типа такого:
std::variant<T2, Error> res(T arg)
{
auto r = doJob(arg);
if (std::holds_alternative<Error>(r)) return std::get<1>(r);
auto r2 = doJob2(r);
if (std::holds_alternative<Error>(r2)) return std::get<1>(r2);
auto r3 = doJob3(r2);
if (std::holds_alternative<Error>(r3)) return std::get<1>(r3);
return r3;
}
Исправление fsb4000, :
А можешь разжевать, что там происходит?
Насколько я понимаю, типа такого:
std::variant<T2, Error> res(T arg)
{
auto r = doJob(arg);
if (!r.has_value()) return r.Error;
auto r2 = doJob2(r);
if (!r2.has_value()) return r2.Error;
auto r3 = doJob3(r2);
if (!r3.has_value()) return r3.Error;
return r3;
}
Исходная версия fsb4000, :
А можешь разжевать, что там происходит?
Насколько я понимаю, типа такого:
std::optional<T2> res(T arg)
{
auto r = doJob(arg);
if (!r.has_value()) return {};
auto r2 = doJob2(r);
if (!r2.has_value()) return {};
auto r3 = doJob3(r2);
if (!r3.has_value()) return {};
return r3;
}
(у последнего let! r3
, можно было не писать !
, тогда бы не было последнего if
)