lumiera_/src
Ichthyostega 0daeb02e4a UI-Coordinates/Navigator: identify misconception in the Builder
the original construction works only as long as we stick to the "classical" Builder syntax,
i.e. use chained calls of the builder functions. But as soon as we just invoke
some builder function for sake of the side-effect on the data within the builder,
this data is destroyed and moved out into the value return type, which unfortunately
is being thrown away right afterwards.

Thus: either make a builder really sideeffect-free, i.e. do each mutation
on a new copy (which is kind of inefficient and counterfeits the whole idea)
or just accept the side-effect and return only a reference.
In this case, we can still return a rvalue-Reference, since at the end
we want to move the product of the build process out into the destination.

This works only due to the C++ concept of sequence points, which ensures
the original object stays alive during the whole evaluation of such a chained
builder expression.

NOTE: the TreeMutator (in namespace lib::diff) also uses a similar Builder construction,
but in *that* case we really build a new product in each step and thus *must*
return a value object, otherwise the reference would already be dangling the
moment we leave the builder function.
2018-01-07 05:26:16 +01:00
..
backend decommission the safe-bool-idiom (closes #477) 2017-04-02 06:42:23 +02:00
common UI-top-level: implement external UI-Shutdown-Trigger 2017-08-10 20:58:00 +02:00
gui UI-Coordinates/Navigator: identify misconception in the Builder 2018-01-07 05:26:16 +01:00
include TreeExplorer: draft my requirements for packaging a TreeExplorer pipeline as IterSource 2017-12-07 05:48:36 +01:00
lib UI-Coordinates: allow for noexcept move construction 2018-01-06 03:38:52 +01:00
lumiera MERGE Doxygen clean-up done during the last months 2017-04-01 23:59:00 +02:00
plugin Merge: change building to create modules 2008-12-20 02:15:33 +01:00
proc TreeExplorer: Monads are of limited usefulnes 2017-12-11 02:21:32 +01:00
tool Doxygen: fill in missing file level headlines for some supplemental code 2016-11-09 20:09:19 +01:00
.gitignore
DIR_INFO update some DIR_INFO entries 2011-04-05 00:44:30 +02:00
doxygen.dox DOC: reorganise the Doxygen configuration and structure 2013-10-25 06:34:38 +02:00
SConscript build/platform: make lib SigC++ available for GUI test code 2015-12-25 03:06:33 +01:00