lumiera_/src/lib/diff
Ichthyostega e00d6c2a4c reorganise inclusion of TreeMutator-DSL builders
previously they where included in the middle of tree-mutator.hpp
This was straight forward, since the builder relies on the classes
defined in the detail headers.

However, the GenNode-binding needs to use a specifically configured
collection binding, and this in turn requires writing a recursive
lambda to deal with nested scopes. This gets us into trouble with
circular definition dependencies.

As a workaround we now only *declare* the DSL builder functions
in the tree-mutator-builder object, and additionally use auto on
all return types. This allows us to spell out the complete builder
definition, without mentioning any of the implementation classes.
Obviously, the detail headers have then to be included *after*
the builder definition, at bottom of tree-mutator.hpp
This also allows us to turn these implementation headers into
completely normal headers, with namespaces and transitive #includes

In the end, the whole setup looks much more "innocent" now.

But beware: the #include of the implementation headers at bottom
of tree-mutator.hpp needs to be given in reverse dependency order,
due to the circular inclusion (back to tree-mutator.hpp) in
conjunction with the inclusion guards!
2016-09-02 01:29:32 +02:00
..
diff-language.hpp solution draft for integration of the whole tree diff application machinery 2016-07-31 00:33:25 +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 WIP: define binding behaviour for diff->GenNode 2016-09-01 22:58:08 +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-content-mutator.hpp Bugfix: yet another init problem after swapping contents 2015-11-01 04:49:22 +01:00
record.hpp implement builder setup for Rec<GenNode> 2016-08-31 18:40:09 +02:00
test-mutation-target.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00
tree-diff-application.hpp finish integration test and TreeMutator binding (#992) 2016-08-29 19:39:19 +02:00
tree-diff-mutator-binding.cpp finish integration test and TreeMutator binding (#992) 2016-08-29 19:39:19 +02:00
tree-diff-mutator-binding.hpp finish integration test and TreeMutator binding (#992) 2016-08-29 19:39:19 +02:00
tree-diff-traits.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00
tree-diff.hpp WIP: first attempt to use a TreeMutator based binding 2016-06-11 19:40:53 +02:00
tree-mutator-attribute-binding.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00
tree-mutator-collection-binding.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00
tree-mutator-gen-node-binding.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00
tree-mutator.hpp reorganise inclusion of TreeMutator-DSL builders 2016-09-02 01:29:32 +02:00