division of objects into classes and structures is bad

Don nospam at nospam.com
Tue Dec 30 10:23:50 PST 2008


Andrei Alexandrescu wrote:
> Don wrote:
>> 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.
> 
> Don't forget that the case you are solving is not general enough because 
>  you are focusing on eliminating temporaries, which is only part of the 
> story. I suggest you make place in your thoughts for loop fusion.

Yes. That's the classic problem for matrices, but I'm still trying to 
work out if it is really a general problem. I was hoping to see some new 
use cases, but none so far.



More information about the Digitalmars-d mailing list