diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-23 13:56:24 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-23 13:56:24 +0000 |
commit | 422b466caa4bcd4b30f08d9a24535dad8ed20f0d (patch) | |
tree | b2a7f431b874b947515b58206168ccbfd33085fd /lib | |
parent | Populate typed collection of pointers (diff) | |
download | ilt-422b466caa4bcd4b30f08d9a24535dad8ed20f0d.tar.bz2 ilt-422b466caa4bcd4b30f08d9a24535dad8ed20f0d.tar.xz ilt-422b466caa4bcd4b30f08d9a24535dad8ed20f0d.zip |
Other objects support in operator=
Diffstat (limited to 'lib')
-rw-r--r-- | lib/collection.h | 8 |
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; } |