Lumiera
0.pre.03
»edit your freedom«
|
#include "lib/diff/tree-diff-traits.hpp"
Heuristics to guide the allocation for nested TreeMutator.
When applying a structural (tree) diff, the (otherwise undisclosed) target data structure needs to supply a TreeMutator implementation properly wired to the internal opaque data elements. Typically, this custom TreeMutator relies on several lambdas and closures, which require a variable and hard to guess amount of storage for back pointers and embedded parametrisation. More so, when the diff application opens nested scopes within the target data. The TreeDiffMutatorBinding relies on a (likewise opaque) ScopeManager implementation to maintain a stack of heap allocated buffers, where the mentioned nested TreeMutator implementations can be built and operated during the mutation process.
The default for buffer dimensions includes a safety margin and is thus quite expensive – even though this is just a temporary working buffer. Thus we offer a hook for explicit or partial specialisations to control the very common cases known to work with smaller buffer sizes.
Definition at line 88 of file tree-diff-traits.hpp.
Public Types | |
enum | { siz = 200 } |