EK
pair<optional, ErrorCode>
?Size: a a a
EK
pair<optional, ErrorCode>
?Е
AF
AF
AF
Е
auto&& [result,ok] = foo(); if (ok) { ...}
EK
auto&& [result,ok] = foo(); if (ok) { ...}
Е
EK
std::optional<int> result;
do {
// something
if (!code1()) { break; }
// something
if (!code2()) { break; }
// something
if (code3()) { result = get(); }
} while (false);
if (result) {
// success code
} else {
// fail code
}
Только как-то более красиво :)EK
Е
std::optional<int> result;
do {
// something
if (!code1()) { break; }
// something
if (!code2()) { break; }
// something
if (code3()) { result = get(); }
} while (false);
if (result) {
// success code
} else {
// fail code
}
Только как-то более красиво :)EK
Е
tl::expected<image,fail_reason> get_cute_cat (const image& img) {
return crop_to_cat(img)
.and_then(add_bow_tie)
.and_then(make_eyes_sparkle)
.map(make_smaller)
.map(add_rainbow);
}
EK
AF
AF
AF
Е
O
std::optional<int> result;
do {
// something
if (!code1()) { break; }
// something
if (!code2()) { break; }
// something
if (code3()) { result = get(); }
} while (false);
if (result) {
// success code
} else {
// fail code
}
Только как-то более красиво :)ЗВ