where some functions return objects that can't be bound to with <code>auto zk =</code> (like <code>void</code> or a non-movable, non-copyable type), just pretend the return value is ignored.</dd></dl>
<p>Intuitively, this ensures that we can treat <code>f1, ..., fn</code> as "accessors" that decompose <code>x</code> into independent subobjects, and that do so without moving from <code>x</code> more than that subobject. This is important because it allows us to optimally decompose <code>Struct</code>s into t