any tool to at least partially convert C++ to D (htod for source
Eldar Insafutdinov
e.insafutdinov at gmail.com
Wed Mar 10 14:18:11 PST 2010
Walter Bright Wrote:
> Max Samukha wrote:
> > Lazy initialization requires some kind of synchronization when a is
> > shared. Static initialization does not have that drawback.
>
> That's correct (otherwise you have the double checked locking bug).
>
> Wrapping the function body in a synchronized statement will do the trick.
>
> (Yes, it's slower.)
The issue is that we need it in a performance critical part of QtD. The library mixes in static constructors to initialise user-defined classes. This means that we can't use it when user code is in cyclic dependency. static constructors are very useful, but giving a possibility to override it's current behaviour would make them applicable to more use-cases(if you look into that bug report, another person was trying to use them exactly as we do, and faced the same problems).
More information about the Digitalmars-d
mailing list