Possible way to achieve lazy loading with const objects
Steven Schveighoffer
schveiguy at yahoo.com
Thu Sep 29 10:53:10 PDT 2011
On Thu, 29 Sep 2011 13:50:54 -0400, Peter Alexander
<peter.alexander.au at gmail.com> wrote:
> On 29/09/11 12:37 PM, Steven Schveighoffer wrote:
>> On Wed, 28 Sep 2011 20:11:51 -0400, Peter Alexander
>> <peter.alexander.au at gmail.com> wrote:
>>
>>> On 26/09/11 8:02 PM, Steven Schveighoffer wrote:
>>>> I think a better avenue would be to implement some sort of strong-pure
>>>> memoization system. Then all you have to do is make an immutable pure
>>>> member, and the compiler will take care of the rest for you.
>>>
>>> How can the compiler possibly figure out the best way to cache things
>>> for you?
>>>
>>> Or have I misunderstood?
>>
>> It would likely be some sort of tag. Like:
>>
>> @memoize pure int reallyTimeConsumingMethod() immutable
>>
>
> That's the syntax, but what code would the compiler generate to do the
> memoization? A hash table of inputs to outputs? That seems really
> inefficient.
It depends on the situation. The compiler/runtime is free to put it
wherever it wants. If it's a class member function, I'd strongly suggest
allocating extra space in the instance to store it there.
-Steve
More information about the Digitalmars-d
mailing list