On Wed, Jun 2, 2021 at 1:45 AM Marc Nieper-Wißkirchen < [email protected]> wrote:
> > Copy-transient, however, can make sense by choosing the right semantics. > As I wrote in my earlier posts, a procedure taking a transient object and > returning one can be of a lot of types: > > An explicit diagonal operation (diag x) would take a transient object X > and return two transient objects, both being independent copies of the then > invalidated X. > > If the underlying implementation is such that one copy is exactly the > invalidated X, we don't need the second value and arrive at a procedure we > could then call copy-transient. > Ah, right. If we don't force "any procedure that takes transient struct invalidates it", then we can have meaningful copy-transient, that does not invalidate the input and returns an independent transient copy of the input.
