...
This commit is contained in:
@@ -95,5 +95,29 @@ auto mccCheckInZonePZTuple(const TelemetryDataT& telemetry_data,
|
||||
}(std::make_index_sequence<sizeof...(ZTs)>{});
|
||||
}
|
||||
|
||||
template <traits::mcc_mount_telemetry_data_c TelemetryDataT,
|
||||
traits::mcc_irange_of_pzones_c<TelemetryDataT> RT,
|
||||
std::ranges::output_range<bool> ResT>
|
||||
auto mccCheckInZonePZRange(const TelemetryDataT& telemetry_data, const RT& pzones, ResT& result)
|
||||
{
|
||||
auto Npz = std::ranges::distance(pzones);
|
||||
if (!Npz) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto res_sz = std::ranges::distance(result);
|
||||
|
||||
size_t i = 1;
|
||||
auto res_iter = result.begin();
|
||||
for (auto& el : pzones) {
|
||||
if (i > res_sz) {
|
||||
std::back_inserter(result) = el.inZone(telemetry_data);
|
||||
} else {
|
||||
std::ranges::advance(res_iter, 1);
|
||||
*res_iter = el.inZone(telemetry_data);
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace mcc
|
||||
|
||||
Reference in New Issue
Block a user