2015-08-08 12 views
5

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?

risposta

3

#pragma init_seg è probabilmente l'equivalente documentato più simile.

+0

Grazie per la risposta. Non mi sono dimenticato di te. Non ho avuto il tempo di testarlo (e accetto se funziona). – jww