Ich bin es gewohnt, dass die Initialisierung von globalen/statischen Klassenmitgliedern vor der ersten Zeile von main() stattfindet. Aber ich habe kürzlich irgendwo gelesen, dass der Standard eine spätere Initialisierung erlaubt, um "das dynamische Laden von Modulen zu unterstützen". Ich könnte mir vorstellen, dass dies beim dynamischen Linken der Fall ist: Ich würde nicht erwarten, dass ein Global, das in einer Bibliothek initialisiert wurde, initialisiert wird, bevor ich die Bibliothek geöffnet habe. Innerhalb einer Gruppierung von statisch gelinkten Übersetzungseinheiten (die direkten .o-Dateien meiner Anwendung) fände ich dieses Verhalten jedoch sehr unintuitiv. Passiert das nur beim dynamischen Linken, oder kann es jederzeit passieren? (oder war das, was ich gelesen habe, einfach falsch? ;)
Wie träge kann die globale Initialisierung in C++ sein?
- Gefragt el 6 de August, 2009
- Wann wurde die Frage gestellt
- 4147 Ansichten
- Anzahl der Besuche der Frage
- 0 Antworten
- Anzahl der Fragenantworten
- Gelöst
- Aktueller Status der Frage
Verwandte Fragen
- Verwendung globaler Variablen in einer Funktion
- Wie komprimiere ich nahtlos die Daten, die ich mit C# und IIS in ein Formular eingebe?
- Wie erhöht man die DPI eines Bildes und macht es schärfer?
- Wie erhält man die Kinder des $(this)-Selektors?
- Wie fängt man die von einem Spring AOP Advice ausgelöste Ausnahme ab?
- Wie können Sie die Serverleistung maximieren?
- Wie behält man die Zeilenreihenfolge mit SqlBulkCopy bei?
- Wie erhält man die TSQL-Abfrage von LINQ DataContext.SubmitChanges()
- Wie kann die Benachrichtigungsabsicht wieder aufgenommen werden, anstatt eine neue Absicht zu bilden?
- Wie füllt man die "Löcher" in Feldern mit automatischer Inkrementierung?
- Python: Wie greife ich auf die Instanz einer dekorierten Klasse aus einem Klassendekorator heraus zu?
Empfohlene Fragen
- Verwendung globaler Variablen in einer Funktion
- Wie kann ich über die Wörter einer Zeichenkette iterieren?
- Wie kann man ein einzelnes Bit setzen, löschen und umschalten?
- Wie kann man in der Bash warten, bis mehrere Unterprozesse beendet sind, und den Exit-Code !=0 zurückgeben, wenn ein Unterprozess mit dem Code !=0 endet?
- Schreiben von Powershell-Funktionen innerhalb einer Zeichenfolge