Durante la compilazione e il collegamento di una libreria o di un programma C++, non ci sono garanzie sull'ordine di inizializzazione degli oggetti C++ statici tra le unità di traduzione. GCC offers init_priority
per risolvere il problema per gli archivi statici, oggetti condivisi e programmi:Qual è l'equivalente Microsoft all'opzione GCC init_priority?
init_priority (priorità)
In standard C++, gli oggetti definiti in ambito namespace sono garantiti per
essere inizializzato in un ordine in stretta conformità con quello del loro
definizioni in una data unità di traduzione. Nessuna garanzia viene effettuata per
inizializzazioni tra le unità di traduzione. Tuttavia, GNU C++ consente
utenti per controllare l'ordine di inizializzazione di oggetti definiti a
ambito namespace con l'attributo init_priority specificando un
priorità relativa, un'espressione integrale costante attualmente limitata
tra 101 e 65535 inclusi. I numeri più bassi indicano una maggiore priorità.
(L'archivio statico sembra essere più complesso perché sarà (presumibilmente) collegato da qualcun altro).
Che cosa offre Microsoft per controllare l'ordine di inizializzazione di oggetti C++ statici tra le unità di traduzione?
Grazie per la risposta. Non mi sono dimenticato di te. Non ho avuto il tempo di testarlo (e accetto se funziona). – jww