This very deep change (which requires almost complete rebuild) was prompted by the need to process an object (JobPlanning), which holds several references and is thus move-only, in the middle of a complex processing pipeline with child expansion. If this works out well, a long-standing and obnoxious problem with transforming iterators would be solved, albeit by incurring a (presumably small) performance overhead, since now the new value is no longer *assigned*, but rather the existing payload is destroyed and a new instance is copy/move constructed into the inline buffer. The primary purpose (and widely used in Lumieara) is to have a Lambda create a new Object, which is then returned by value and thus immediately moved into this inline buffer, where it resides for further use (as long as the enclosing pipeline stays alive). Unless such an object does very elaborate allocations and registrations behind the scene, the expense of assigning vs creating should be the same. |
||
|---|---|---|
| .. | ||
| draw | ||
| DIR_INFO | ||
| empty.html | ||
| InterfaceConcept_Varga.mm | ||
| renderengine.html | ||
| thinkPad.ichthyo.mm | ||
| uml | ||
| workflow.mm | ||