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