aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-10-05 14:53:20 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2021-10-16 08:18:46 +0000
commit1da9e15a52caecec0fb4292ab62abbe7f6e2de1f (patch)
tree8d04cabdf58d305e42147484875eeaa702ea1e30
parenta35ff56175cc8c993b54bb1d92ff71ba4532fc88 (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.cpp6
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;
}