lumiera_/src/lib/diff
Ichthyostega bada8ecffd TreeMutator binding: fix collection binding to support move-only types
unintentionally we used copy construction in the builder expression,
wenn passing in the CollectionBinding to the ChildCollectionMutator.

The problem is that CollectionBinding owns a shaddow buffer, where
the contents of the target collection are moved temporarily while
applying the diff. The standard implementation of copy construction
would cause a copy of that shaddow buffer, which boils down to
a copy of the storage of the target collection.

If we want to support move-only types in the collection, most notably
std::unique_ptr, we can thus only use the move constructor. Beyond that
there is no problem, since we're only ever moving elements, and new
elements will be move constructed via emplace() or emplace_back()
2016-10-03 20:08:54 +02:00
..
diff-language.hpp MutationMessage: generic implementation based on the DiffMutable interface 2016-10-02 23:34:07 +02:00
diff-mutable.hpp considerations how to access the "tree mutator building closure" 2016-06-14 02:33:28 +02:00
diff.cpp reorganise compilation units 2015-08-30 04:57:32 +02:00
gen-node.cpp add support for Ref::THIS (questionable, #996) 2016-04-18 01:21:38 +02:00
gen-node.hpp make Rec::Mutator as such diff mutable 2016-09-05 02:25:07 +02:00
index-table.hpp allow for iterative access to the snapshot data in the lookup table 2015-01-04 14:23:12 +01:00
list-diff-application.hpp fix/change DiffApplicator to allow applying several diffs 2015-10-31 05:15:47 +01:00
list-diff-detector.hpp identify and decide on some of the insidious questions of design 2015-03-21 19:23:41 +01:00
list-diff.hpp diff-language interpreter: prefer to take payload by const& 2015-10-24 02:42:13 +02:00
record.hpp remove leftovers of first diff-applicator implementation 2016-09-08 18:30:27 +02:00
test-mutation-target.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00
tree-diff-application.hpp MutationMessage: generic implementation based on the DiffMutable interface 2016-10-02 23:34:07 +02:00
tree-diff-traits.hpp MutationMessage: generic implementation based on the DiffMutable interface 2016-10-02 23:34:07 +02:00
tree-diff.cpp application via TreeMutator is now the default 2016-09-05 04:36:07 +02:00
tree-diff.hpp application via TreeMutator is now the default 2016-09-05 04:36:07 +02:00
tree-mutator-attribute-binding.hpp TreeMutator binding: change handling of AFTER(Ref::ATTRIBS) 2016-09-02 18:40:16 +02:00
tree-mutator-collection-binding.hpp TreeMutator binding: fix collection binding to support move-only types 2016-10-03 20:08:54 +02:00
tree-mutator-gen-node-binding.hpp make Rec::Mutator as such diff mutable 2016-09-05 02:25:07 +02:00
tree-mutator.hpp TreeMutator binding: fix collection binding to support move-only types 2016-10-03 20:08:54 +02:00