any tool to at least partially convert C++ to D (htod for source

Walter Bright newshound1 at digitalmars.com
Thu Mar 11 10:26:17 PST 2010


Max Samukha wrote:
> Michel Fortin wrote:
> 
>>
>> I'd like to point out that the trick of creating a separate module to 
>> initialize another one is not much safer than C++ static initialization.
>>
>> Take for instance std.stdio which it is initialized by std.stdiobase's 
>> static constructor. If your module import std.stdio and attempt to use 
>> the standard input/output/error streams in a static constructor, there 
>> is no guaranty that std.stdiobase static constructor will have been 
>> called before yours (unless you also import std.stdiobase). It might 
>> end up crashing depending on link order.
> 
> If your module imports std.stdio, std.stdiobase's static constructor is 
> guaranteed to run before your module's static constructors because your 
> module depends on std.stdiobase indirectly via std.studio.

Max is correct. This is not a problem, because the dependency checking 
is transitive.



More information about the Digitalmars-d mailing list