summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-03-23 13:56:24 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-03-23 13:56:24 +0000
commit422b466caa4bcd4b30f08d9a24535dad8ed20f0d (patch)
treeb2a7f431b874b947515b58206168ccbfd33085fd /lib
parentPopulate typed collection of pointers (diff)
downloadilt-422b466caa4bcd4b30f08d9a24535dad8ed20f0d.tar.bz2
ilt-422b466caa4bcd4b30f08d9a24535dad8ed20f0d.tar.xz
ilt-422b466caa4bcd4b30f08d9a24535dad8ed20f0d.zip
Other objects support in operator=
Diffstat (limited to 'lib')
-rw-r--r--lib/collection.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/collection.h b/lib/collection.h
index e68a8db..329b681 100644
--- a/lib/collection.h
+++ b/lib/collection.h
@@ -18,6 +18,10 @@ public:
operator=(Objects && other)
{
objects = std::move(other);
+ ((std::get<OtherObjects<Others>>(otherObjects).clear()), ...);
+ for (const auto & other : objects) {
+ addOthersPtr(other.get());
+ }
return *this;
}
@@ -138,10 +142,10 @@ public:
return objects.empty();
}
- auto
+ decltype(auto)
emplace(Ptr && ptr)
{
- auto object = objects.emplace_back(std::move(ptr));
+ const auto & object = objects.emplace_back(std::move(ptr));
addOthersPtr(object.get());
return object;
}