Lua list <email@example.com> writes:|
neither of these affect the C++ object that is wrapped by var1, var1
instead gets a new pointer to wrap (being a copy), and the old one is
If you want to modify the pointer that var1 wraps, then var1 needs to be
involved in the function that does the assignment.
True, I guess I was thinking more of a copy constructor than an overloaded operator.
I guess a var1:CopyFrom() (or :Assign()) really is the best you can do then, sorry for the misinterpretation.
Having said that, personally, I like the clarity of this over having to think every time I do A = B whether or not this is:
- Make A refer to the same object that B refers to
- Create a new object from B and assign a reference to it to A, overwriting the reference stored in A before.
- A continues to refer to the same object as before but has had some of its internal fields tweaked such that they've been copied from B.
Worse yet, if a metamethod were defined to do something like this, the rules could vary depending on the types of A and B.