On Thu, 25 Nov 2010 19:28:13 +0100
"Simen kjaeraas" <simen.kja...@gmail.com> wrote:

> > You seems to take it for granted that I cannot write:
> >     auto myExportedSymbol = new T();
> >     ...
> >     myExportedSymbol.i = 1;
> > but for me there is no obvious reason why D refuses that, and accepts
> >     T myExportedSymbol;
> >     static this () {
> >        auto myExportedSymbol = new T();
> >        ...
> >        myExportedSymbol.i = 1;
> >     }
> > It's the same thing, from my point of view: when I import the module, I  
> > get the symbol correctly defined. I don't get why a module needs a  
> > constructor: why else has it a top-level?  
> 
> The reason for this is partly historical (C does it this way), but more
> importantly, practical. This way it is obvious what code will be executed
> at which time, and code is not as easily 'hidden' between type and
> variable declarations.

Thank you, Simen, I get it better. I have a solution with static this anyway, 
even if not completely satisfying. Simply tried  to understand better the whys 
and hows.
(And sorry all for the somewhat frustrated tone of a few posts by me.)


Denis
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com

Reply via email to