Walter:

> struct LogicalConst(T)
> {
>      @property T v() {
>         if (!set) {
>            _v = some_expensive_computation();
>            set = true;
>         }
>         return _v;
>      }
> 
>    private:
>      bool set = false;
>      T _v;
> }

If this idiom becomes common (thanks to its presence in D docs, etc) it is 
possible to add logic to the DMD front-end to recognize it (even when inlining 
of v() doesn't happen), and use this knowledge to perform some const-like 
optimizations. Is this possible and useful?

Bye,
bearophile

Reply via email to