C++ compilers implementing dynamic initialization after main
<p>The C++ standard section 3.6.2 paragraph 3 states that it is implementation-defined whether dynamic initialization of non-local objects occurs after the first statement of main().</p>

<p>Does anyone know what the rationale for this is, and which compilers postpone non-local object initialization this way?  I am most familiar with g++, which performs these initializations before main() has been entered.</p>

<p>This question is related: <a href="http://stackoverflow.com/questions/6372032/dynamic-initialization-phase-of-static-variables">Dynamic initialization phase of static variables</a>
But I'm specifically asking what compilers are known to behave this way.</p>

<p>It may be that the only rationale for this paragraph is to support dynamic libraries loaded at runtime, but I do not think that the standard takes dynamic loading issues into consideration.</p>
