From 729e04161f98ca968cc9e54b1f8a30534952ef9e Mon Sep 17 00:00:00 2001 From: Username404 Date: Fri, 20 Aug 2021 00:07:51 +0200 Subject: [PATCH] Make fileName a reference in a loop of main.cpp, and use findReferencesById() instead of findById() in ParseComponents.hpp --- src/headers/parsing/ParseComponents.hpp | 10 +++++----- src/main.cpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/headers/parsing/ParseComponents.hpp b/src/headers/parsing/ParseComponents.hpp index 38e762e..32561ed 100644 --- a/src/headers/parsing/ParseComponents.hpp +++ b/src/headers/parsing/ParseComponents.hpp @@ -64,15 +64,15 @@ public: IS_PARSECOMPONENT inline auto findReferencesById() const { return findById() | views::transform([](T* it) { - return static_cast(*it); + return ref(static_cast(*it)); }); } IS(StandardComponents::NamedIdentifier) optional> findReferenceByName(const string& name) const { - auto identifiers = findById(); - for (T* identifier: identifiers) { - if (identifier->getId() == typeid(T) && identifier->name == name) { - return make_optional(ref(*identifier)); + auto identifiers = findReferencesById(); + for (const auto& identifier: identifiers) { + if (identifier.get().getId() == typeid(T) && identifier.get().name == name) { + return make_optional(identifier); } } return optional>(); diff --git a/src/main.cpp b/src/main.cpp index 5e4a66c..905a5f4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,7 +42,7 @@ int main(int argc, char* argv[]) { const set uniqueFiles(files.begin(), files.end()); vector>>> Units; const launch& Policy = not parallel ? launch::deferred : launch::async; - for (string_view fileName: uniqueFiles) { + for (const string_view& fileName: uniqueFiles) { if (fileName != "none") { Units.push_back(async(Policy, [fileName, &compile]() { try {