Hi,
I’m not a specialist of the c++ API but a good mental model is Tensor = shared_ptr<ActualTensor>.
So all the reference/const constructs from c++ will do the same thing as they would on a shared_ptr.
Note that you can also have Tensor being views of each other: auto t2 = t1.alias(); for example. t1 and t2 are two independent ActualTensor objects. But they will share the same memory for their content. And change to the data of one will also change the other. But change to metadata won’t be reflected.