diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2021-10-05 14:53:20 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-10-16 08:18:46 +0000 |
commit | 1da9e15a52caecec0fb4292ab62abbe7f6e2de1f (patch) | |
tree | 8d04cabdf58d305e42147484875eeaa702ea1e30 | |
parent | a35ff56175cc8c993b54bb1d92ff71ba4532fc88 (diff) |
Don't use std::function for recursive lambda
...in instanceItemProperties().
With C++14, we can use auto to pass labmda to itself as a parameter.
Change-Id: Ifd1e13aca8b6fae2a7a7b7bcd1e255a08648a9c1
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 3435238a7..08528dcbe 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -3347,7 +3347,7 @@ static std::vector<std::pair<QualifiedId, ItemValuePtr>> instanceItemProperties( { std::vector<std::pair<QualifiedId, ItemValuePtr>> result; QualifiedId name; - std::function<void(Item *)> f = [&] (Item *item) { + const auto func = [&] (Item *item, const auto &f) -> void { for (auto it = item->properties().begin(), end = item->properties().end(); it != end; ++it) { if (it.value()->type() != Value::ItemValueType) @@ -3357,13 +3357,13 @@ static std::vector<std::pair<QualifiedId, ItemValuePtr>> instanceItemProperties( continue; name.push_back(it.key()); if (itemValue->item()->type() == ItemType::ModulePrefix) - f(itemValue->item()); + f(itemValue->item(), f); else result.emplace_back(name, itemValue); name.removeLast(); } }; - f(item); + func(item, func); return result; } |