In C++, if I construct a torch tensor from another tensor, Tensor(Tensor &) (with one ampersand!) does that copy the element data from the source tensor into a new location for the new tensor?  Or is it more like a reference where a subsequent update to the elements of either tensor will be seen in the other?  Or is it more like a lazy copy, where they share element data until either is modified at which point a copy is made so that they no longer share data?
Is the behavior for an assignment of a tensor to a tensor different from the construction of a tensor from another?  If so, how?