diff --git a/.clang-tidy b/.clang-tidy index c924a8f3e..13b8a5bda 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -6,6 +6,7 @@ Checks: > modernize-use-auto, modernize-use-override, modernize-return-braced-init-list, + modernize-loop-convert, CheckOptions: diff --git a/src/core/afv/audio/soundcardsampleprovider.cpp b/src/core/afv/audio/soundcardsampleprovider.cpp index e498f31dc..686944f68 100644 --- a/src/core/afv/audio/soundcardsampleprovider.cpp +++ b/src/core/afv/audio/soundcardsampleprovider.cpp @@ -106,9 +106,8 @@ namespace swift::core::afv::audio { bool audioPlayed = false; QVector handledTransceiverIDs; - for (int i = 0; i < rxTransceiversFilteredAndSorted.size(); i++) + for (const auto rxTransceiver : rxTransceiversFilteredAndSorted) { - const RxTransceiverDto rxTransceiver = rxTransceiversFilteredAndSorted[i]; if (!handledTransceiverIDs.contains(rxTransceiver.id)) { handledTransceiverIDs.push_back(rxTransceiver.id); diff --git a/src/core/afv/model/afvmapreader.cpp b/src/core/afv/model/afvmapreader.cpp index 7c4bd1684..f253d44af 100644 --- a/src/core/afv/model/afvmapreader.cpp +++ b/src/core/afv/model/afvmapreader.cpp @@ -48,11 +48,11 @@ namespace swift::core::afv::model QVector transceivers; QString callsign; - for (auto it = rootArray.begin(); it != rootArray.end(); ++it) + for (auto it : rootArray) { - if (it->isObject()) + if (it.isObject()) { - const QJsonObject stationObject = it->toObject(); + const QJsonObject stationObject = it.toObject(); if (stationObject.contains("callsign")) { callsign = stationObject.value("callsign").toString(); } @@ -61,9 +61,9 @@ namespace swift::core::afv::model if (stationObject.contains("transceivers")) { QJsonArray txArray = stationObject.value("transceivers").toArray(); - for (auto jt = txArray.begin(); jt != txArray.end(); ++jt) + for (auto &&jt : txArray) { - const TransceiverDto transceiver = TransceiverDto::fromJson(jt->toObject()); + const TransceiverDto transceiver = TransceiverDto::fromJson(jt.toObject()); transceivers.push_back({ callsign, transceiver }); } } diff --git a/src/misc/aviation/aircraftenginelist.cpp b/src/misc/aviation/aircraftenginelist.cpp index 3bff27ae3..05267fb13 100644 --- a/src/misc/aviation/aircraftenginelist.cpp +++ b/src/misc/aviation/aircraftenginelist.cpp @@ -13,9 +13,9 @@ namespace swift::misc::aviation CAircraftEngineList::CAircraftEngineList(std::initializer_list enginesOnOff) { int no = 1; // engines 1 based - for (auto it = enginesOnOff.begin(); it != enginesOnOff.end(); ++it) + for (bool it : enginesOnOff) { - CAircraftEngine engine(no++, *it); + CAircraftEngine engine(no++, it); this->push_back(engine); } } diff --git a/src/misc/containerbase.h b/src/misc/containerbase.h index a29f612fd..574be1134 100644 --- a/src/misc/containerbase.h +++ b/src/misc/containerbase.h @@ -136,11 +136,10 @@ namespace swift::misc if (value.isUndefined()) { throw CJsonException("Missing 'containerbase'"); } QJsonArray array = value.toArray(); int index = 0; - for (auto i = array.begin(); i != array.end(); ++i) + for (auto ref : array) { CJsonScope scope("containerbase", index++); Q_UNUSED(scope); - QJsonValueRef ref = (*i); typename Derived::value_type val; ref >> val; derived().push_back(std::move(val)); diff --git a/src/misc/datacache.cpp b/src/misc/datacache.cpp index 0a934f1c1..6167ba02c 100644 --- a/src/misc/datacache.cpp +++ b/src/misc/datacache.cpp @@ -763,14 +763,14 @@ namespace swift::misc QJsonArray CDataCacheRevision::toJson(const QSet &pins) { QJsonArray result; - for (auto it = pins.begin(); it != pins.end(); ++it) { result.push_back(*it); } + for (const auto &pin : pins) { result.push_back(pin); } return result; } QSet CDataCacheRevision::fromJson(const QJsonArray &pins) { QSet result; - for (auto it = pins.begin(); it != pins.end(); ++it) { result.insert(it->toString()); } + for (auto pin : pins) { result.insert(pin.toString()); } return result; } diff --git a/src/misc/json.cpp b/src/misc/json.cpp index 023c23217..d55312fa0 100644 --- a/src/misc/json.cpp +++ b/src/misc/json.cpp @@ -639,10 +639,10 @@ namespace swift::misc::json { QStringList sl; if (array.isEmpty()) { return sl; } - for (int i = 0; i < array.size(); i++) + for (const auto &i : array) { - if (!array.at(i).isString()) { continue; } - sl.push_back(array.at(i).toString()); + if (!i.isString()) { continue; } + sl.push_back(i.toString()); } return sl; } diff --git a/src/misc/simulation/aircraftmodellist.cpp b/src/misc/simulation/aircraftmodellist.cpp index 93d0cc4af..f6c766f5d 100644 --- a/src/misc/simulation/aircraftmodellist.cpp +++ b/src/misc/simulation/aircraftmodellist.cpp @@ -1507,7 +1507,7 @@ namespace swift::misc::simulation { CAircraftModel::MemoHelper::CMemoizer helper; QJsonArray array; - for (auto it = cbegin(); it != cend(); ++it) { array << it->toMemoizedJson(helper); } + for (const auto &it : *this) { array << it.toMemoizedJson(helper); } QJsonObject json; json.insert("containerbase", array); json.insert("aircraftIcaos", helper.getTable().toJson()); @@ -1563,12 +1563,12 @@ namespace swift::misc::simulation } int index = 0; - for (auto i = array.begin(); i != array.end(); ++i) + for (auto &&i : array) { CJsonScope scope("containerbase", index++); Q_UNUSED(scope) CAircraftModel value; - value.convertFromMemoizedJson(i->toObject(), helper); + value.convertFromMemoizedJson(i.toObject(), helper); this->push_back(value); } } diff --git a/src/misc/simulation/interpolation/interpolatorspline.cpp b/src/misc/simulation/interpolation/interpolatorspline.cpp index 5bd7911f7..c7688158d 100644 --- a/src/misc/simulation/interpolation/interpolatorspline.cpp +++ b/src/misc/simulation/interpolation/interpolatorspline.cpp @@ -295,20 +295,14 @@ namespace swift::misc::simulation bool CInterpolatorSpline::areAnyElevationsMissing() const { - for (unsigned int i = 0; i < m_s.size(); i++) - { - if (!m_s[i].hasGroundElevation()) { return true; } - } - return false; + return std::any_of(m_s.begin(), m_s.end(), + [](const auto &situation) { return !situation.hasGroundElevation(); }); } bool CInterpolatorSpline::isAnySituationNearGroundRelevant() const { - for (unsigned int i = 0; i < m_s.size(); i++) - { - if (!m_s[i].canLikelySkipNearGroundInterpolation()) { return true; } - } - return false; + return std::any_of(m_s.begin(), m_s.end(), + [](const auto &situation) { return !situation.canLikelySkipNearGroundInterpolation(); }); } CInterpolatorSpline::CInterpolant::CInterpolant(const CInterpolatorSpline::PosArray &pa, diff --git a/src/misc/stringutils.cpp b/src/misc/stringutils.cpp index 13f7442ec..120ff6b1b 100644 --- a/src/misc/stringutils.cpp +++ b/src/misc/stringutils.cpp @@ -226,9 +226,8 @@ namespace swift::misc "i", "o", "n", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "y", "y" }); QString output = ""; - for (int i = 0; i < candidate.length(); i++) + for (const QChar c : candidate) { - const QChar c = candidate[i]; const qsizetype dIndex = diacriticLetters.indexOf(c); if (dIndex < 0) { output.append(c); } else diff --git a/src/sound/sampleprovider/equalizersampleprovider.cpp b/src/sound/sampleprovider/equalizersampleprovider.cpp index f2e7d5f1a..8477e783c 100644 --- a/src/sound/sampleprovider/equalizersampleprovider.cpp +++ b/src/sound/sampleprovider/equalizersampleprovider.cpp @@ -31,7 +31,7 @@ namespace swift::sound::sample_provider for (int n = 0; n < samplesRead; n++) { - for (int band = 0; band < m_filters.size(); band++) { samples[n] = m_filters[band].transform(samples[n]); } + for (auto &filter : m_filters) { samples[n] = filter.transform(samples[n]); } samples[n] *= static_cast(m_outputGain); } return samplesRead; diff --git a/src/sound/sampleprovider/mixingsampleprovider.cpp b/src/sound/sampleprovider/mixingsampleprovider.cpp index ffea1e91f..718e35ea3 100644 --- a/src/sound/sampleprovider/mixingsampleprovider.cpp +++ b/src/sound/sampleprovider/mixingsampleprovider.cpp @@ -31,9 +31,8 @@ namespace swift::sound::sample_provider int outputLen = 0; QVector finishedProviders; - for (int i = 0; i < m_sources.size(); i++) + for (auto sampleProvider : m_sources) { - ISampleProvider *sampleProvider = m_sources.at(i); QVector sourceBuffer; const int len = sampleProvider->readSamples(sourceBuffer, count);