To help LDC/GDC

Jacob Carlborg doob at me.com
Mon Apr 8 08:07:31 PDT 2013


On 2013-04-08 14:52, Iain Buclaw wrote:
> On 8 April 2013 13:25, Jacob Carlborg <doob at me.com <mailto:doob at me.com>>
> wrote:
>
>     On 2013-04-08 10:29, Iain Buclaw wrote:
>
>         This information could possibly be helpful.  Though given that
>         most of
>         (gdc) codegen is on par with g++, there's probably not much on
>         the list
>         that isn't already detected by the backend optimisation passes.
>
>
>     Multiple calls to pure functions could be cached.
>
>     --
>     /Jacob Carlborg
>
>
> Not always, but in some circumstances, yes.
>
> ---
> struct Foo
> {
>    int a = 0;
>    pure int bar (immutable int x)
>    {
>      ++a;
>      return x * 2;
>    }
> }
>
>
> void main()
> {
>    Foo f;
>    int i = f.bar(2) + f.bar(2);
>
>    assert (i == 8);
>    assert (f.a == 2);
> }

I though that wasn't possible. What's the point of pure if that's possible?

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list