On 09/25/2011 01:18 PM, bearophile wrote:
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

I think it should be a language feature, as proposed by Jonathan.

Reply via email to