parser::ContextualMessages &messages, std::optional<Expr<SomeType>> &&real,
std::optional<Expr<SomeType>> &&imaginary, int defaultRealKind) {
if (auto parts{common::AllPresent(std::move(real), std::move(imaginary))}) {
- return ConstructComplex(messages, std::move(std::get<0>(*parts)),
- std::move(std::get<1>(*parts)), defaultRealKind);
+ return ConstructComplex(messages, std::get<0>(std::move(*parts)),
+ std::get<1>(std::move(*parts)), defaultRealKind);
}
return std::nullopt;
}
auto ri{NumericOperation<Multiply>(messages, AsGenericExpr(std::move(zi)),
AsGenericExpr(std::move(copy)), defaultRealKind)};
if (auto parts{common::AllPresent(std::move(rr), std::move(ri))}) {
- return Package(ConstructComplex(messages, std::move(std::get<0>(*parts)),
- std::move(std::get<1>(*parts)), defaultRealKind));
+ return Package(ConstructComplex(messages, std::get<0>(std::move(*parts)),
+ std::get<1>(std::move(*parts)), defaultRealKind));
}
} else if constexpr (RCAT == TypeCategory::Integer &&
std::is_same_v<OPR<LargestReal>, Power<LargestReal>>) {
: LogicalOperator::Or};
return Expr<LogicalResult>{
LogicalOperation<LogicalResult::kind>{combine,
- std::move(std::get<0>(*parts)),
- std::move(std::get<1>(*parts))}};
+ std::get<0>(std::move(*parts)),
+ std::get<1>(std::move(*parts))}};
}
}
return std::nullopt;
} else if (j == 1) { // X%Y
base = Component{DataRef{std::get<const Symbol *>(base)}, *symbol};
} else { // X%Y%Z or more
- base = Component{DataRef{std::move(std::get<Component>(base))}, *symbol};
+ base = Component{DataRef{std::get<Component>(std::move(base))}, *symbol};
}
++j;
}
ApplyArgs<OBJPARSER, PARSER...> &&args, std::index_sequence<J...>) ->
typename OBJPARSER::resultType {
((*std::get<0>(args)).*mfp)(std::move(*std::get<J + 1>(args))...);
- return std::move(std::get<0>(args));
+ return std::get<0>(std::move(args));
}
template<typename OBJPARSER, typename... PARSER> class ApplyMemberFunction {
auto iter{subscripts.begin()};
CHECK(iter != subscripts.end());
auto &triplet{std::get<SubscriptTriplet>(iter->u)};
- SubstringRange range{
- std::move(std::get<0>(triplet.t)), std::move(std::get<1>(triplet.t))};
CHECK(!std::get<2>(triplet.t).has_value());
CHECK(++iter == subscripts.end());
- return Substring{std::move(base), std::move(range)};
+ return Substring{std::move(base),
+ SubstringRange{std::get<0>(std::move(triplet.t)),
+ std::get<1>(std::move(triplet.t))}};
}
// R1544 stmt-function-stmt
ConformabilityCheck(context.GetContextualMessages(), std::get<0>(*both),
std::get<1>(*both));
return NumericOperation<OPR>(context.GetContextualMessages(),
- std::move(std::get<0>(*both)), std::move(std::get<1>(*both)),
+ std::get<0>(std::move(*both)), std::get<1>(std::move(*both)),
context.GetDefaultKind(TypeCategory::Real));
}
return std::nullopt;
ConformabilityCheck(context.GetContextualMessages(), std::get<0>(*both),
std::get<1>(*both));
return AsMaybeExpr(Relate(context.GetContextualMessages(), opr,
- std::move(std::get<0>(*both)), std::move(std::get<1>(*both))));
+ std::get<0>(std::move(*both)), std::get<1>(std::move(*both))));
}
return std::nullopt;
}