Statische Variablen in Funktionen threadsafe in C++11?
-
Hallo,
ich frage mich, ob statische Variablen im neuen Standard C++11 threadsafe sind, was die Initialisierung angeht?
Also
void foo() { static const std::string key = "123456"; // ... }In C++03 ist man mit dem Code oben in Multithreading-Umgebungen auf die Nase gefallen.
-
-
Den Link kenne ich schon.
-
Heute früh hatte ich im Netz schon diesen Artikel gefunden.
http://anotherlayer.net/2012/05/04/static-initialization-and-thread-safety/
Interessant fand ich aber die Kommentare, denn sie scheinen meine Erfahrung zu bestätigen.
In VS2013 ist der Code oben offensichtlich nicht threadsafe...

-
Thomas5478 schrieb:
Den Link kenne ich schon.
Was ist dann deine Frage? Sie wird nämlich durch den SO-Post exakt beantwortet.
-
Arcoth schrieb:
Thomas5478 schrieb:
Den Link kenne ich schon.
Was ist dann deine Frage? Sie wird nämlich durch den SO-Post exakt beantwortet.
Ich hätte gerne eine Bestätigung von den Experten hier.
Eventuell auch mit einem Auszug aus dem Standard, wo das beschrieben ist.

-
Thomas5478 schrieb:
Eventuell auch mit einem Auszug aus dem Standard, wo das beschrieben ist.

Siehe Stackoverflow Antwort: http://stackoverflow.com/a/8102145