Code: Select all
inline static SharedData gSharedData;
Ich habe zwei Fragen:
1)Es scheint, dass gSharedData instanziiert wurde bevor main() beginnt wie (
Code: Select all
non-inline static
2)In einem Projekt, an dem ich arbeite (eine große Codebasis mit gemeinsam genutzten Bibliotheken), das dem folgenden Code ähnelt, habe ich Im Gegensatz zur Ausgabe des folgenden Codes beobachte ich mehrere Konstruktoraufrufe von verschiedenen Threads, wobei jeder eine andere Adresse ausgibt – was darauf hindeutet, dass mehr als eine Instanz erstellt wird! Soweit ich weiß, ist die Instanziierung statischer Variablen seit C++11 threadsicher. Irgendwelche Gedanken oder Ideen, warum zwei Threads dasselbe statische Inline-Mitglied instanziieren ?
Code: Select all
#include
#include
class SharedData {
public:
SharedData() {
std::cout