Weed wrote:
Don пишет:
Weed wrote:
Frits van Bommel пишет:
Don wrote:
Frits van Bommel wrote:
Don wrote:
A straightforward first step would be to state in the spec that "the
compiler is entitled to assume that X+=Y yields the same result as
X=X+Y"
That doesn't hold for reference types, does it?
I thought it does? Got any counter examples?
For any class type, with += modifying the object and + returning a
new one:
The += operator too should return the object (usually "this")
ALWAYS 'this'. It's another feature of operator overloading which is
redundant.
Not always. Can be more convenient to create the new object and to
return it.
For example: if it is necessary to return the object containing the
sorted data those sorting hurriedly at creation of the returned object
can give a scoring in performance than if the data is sorted in the
current object after their change.
But then if you have
y = x+=b;
surely that would give you x and y being different?
Wouldn't you want x to also point to the new object? (OK, as Stewart
pointed out, you can't!) Otherwise, you have to perform _both_ sorts!