Ary Borenszweig Wrote:

> 
> You can do this:
> 
> template TFoo() {
>       // Never use this variable directly :-P
>       SomeObject _s_o;
> 
>       SomeObject s_o() {
>               if (_s_o is null)
>                       _s_o = new SomeObject();
>               return _s_o;
>       }
> 
>       // And if you want to make it assignable too
>       SomeObject s_o(SomeObject x) {
>               _s_o = x;
>       }
>       
>       void bar() {
>               s_o.x = 10;
>               // code
>               // ...
>       }
> }

Well I ended up converting my object to a struct, which solved the issue. Your 
solution would probably work, but for what I'm doing, I'd rather not incur the 
overhead of a branch and (possible) function call for every access of the 
object.

It seems like object initialization outside of a method should be magically 
moved to the top of the constructor. But ah well.

Thank you.

Reply via email to