Refactoring to avoid an unnecessary temporary.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Emma Hopwood 2023-03-21 16:29:18 +00:00
parent 32e1d2eeeb
commit ac3e345689
1 changed files with 5 additions and 7 deletions

View File

@ -812,14 +812,12 @@ std::optional<MinerAddress> ExtractMinerAddress::operator()(const libzcash::Sapl
std::optional<MinerAddress> ExtractMinerAddress::operator()(const libzcash::UnifiedAddress &addr) const {
auto preferred = addr.GetPreferredRecipientAddress(consensus, height);
if (preferred.has_value()) {
std::optional<MinerAddress> ret;
examine(preferred.value(), match {
[&](const libzcash::OrchardRawAddress addr) { ret = MinerAddress(addr); },
[&](const libzcash::SaplingPaymentAddress addr) { ret = MinerAddress(addr); },
[&](const CKeyID keyID) { ret = operator()(keyID); },
[&](const auto other) { ret = std::nullopt; }
return examine(preferred.value(), match {
[&](const libzcash::OrchardRawAddress addr) -> std::optional<MinerAddress> { return MinerAddress(addr); },
[&](const libzcash::SaplingPaymentAddress addr) -> std::optional<MinerAddress> { return MinerAddress(addr); },
[&](const CKeyID keyID) -> std::optional<MinerAddress> { return operator()(keyID); },
[&](const auto other) -> std::optional<MinerAddress> { return std::nullopt; }
});
return ret;
} else {
return std::nullopt;
}