division of objects into classes and structures is bad

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Dec 30 08:45:36 PST 2008


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.

Andrei



More information about the Digitalmars-d mailing list