Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Special supplement for TreeMutator and the STL collection binding, to provide a shortcut and default wiring for a collection holding DiffMutable objects – either directly or by smart-ptr.
TreeMutator is a customisable intermediary, which enables otherwise opaque implementation data structures to receive and respond to generic structural change messages ("tree diff").
Each concrete TreeMutator instance will be configured differently, and this adaptation is done by combining various building blocks. One of the most relevant binding cases is to attach to a collection of child objects, which are themselves recursively diff mutable. This header here is based on the generic STL collection binding and provides the most common default implementation for a »Matcher« and for building a recursive TreeMutator for the child elements by means of delegating to their DiffMutable::buildMutator() function. An additional requirement for this standard setup to be used is that the objects in the collection must expose a getID()
function to determine the object identity.
Definition in file tree-mutator-diffmutable-binding.hpp.
#include "lib/error.hpp"
#include "lib/meta/trait.hpp"
#include "lib/diff/gen-node.hpp"
#include "lib/diff/tree-mutator.hpp"
#include "lib/diff/tree-mutator-collection-binding.hpp"
#include "lib/diff/diff-mutable.hpp"
Classes | |
struct | _AccessID< TAR, SEL > |
Metaprogramming helper to retrieve the object identity, whenever the target object for the diff defines a getID() function. More... | |
struct | _AccessID< ELM, enable_if< Can_access_ID< ELM > > > |
struct | _DefaultBinding< ELM, enable_if< can_recursively_bind_DiffMutable< ELM > > > |
Entry Point: Specialisation of the collection binding to work on a collection of DiffMutable objects, either embedded directly, or attached via smart-ptr. More... | |
struct | Can_access_ID< T > |
struct | can_recursively_bind_DiffMutable< T > |
class | Can_retrieve_and_compare_ID< TY > |
Metaprogramming helper to detect if the given target class allows us to build a default »Matcher« automatically. More... | |
struct | Is_DiffMutable< T > |
< Metafunction: does the target implement the DiffMutable interface? More... | |
struct | Is_wrapped_DiffMutable< T > |
< Metafunction: is this a DiffMutable wrapped into a smart-ptr? More... | |
struct | Can_retrieve_and_compare_ID< TY >::Probe< X, SEL > |
Namespaces | |
lib | |
Implementation namespace for support and library code. | |
struct lib::diff::anonymous_namespace{tree-mutator-diffmutable-binding.hpp}::Can_retrieve_and_compare_ID::Probe |