Christopher Wright wrote:
Don wrote:
The creation of temporaries during expressions is something I'm currently working on solving. The case you mentioned is addressed by a proposal I made long ago:

The easiest way is to add an intermediate struct. This takes a fair bit of manual effort, though, and prevents you from using auto.

That particular case is the easiest possible one. The case x = y - x, for example, is much more difficult to recognize.


Essentially, you need a struct MyClassAddition that just records operands. Then give it an implicit cast to MyClass that does the work. This is an ugly solution because you need to duplicate the operator overloads on MyClassXXX as well as MyClass.

I believe I got this solution from an article by Andrei. It should work pretty well for classes that define few overloads.

I'm talking about a language solution. I want to solve this for the general case.

Reply via email to