Sind C ++ 11-Variablen thread_local automatisch statisch?
Gibt es einen Unterschied zwischen diesen beiden Codesegmenten:
void f() {
thread_local vector<int> V;
V.clear();
... // use V as a temporary variable
}
und
void f() {
static thread_local vector<int> V;
V.clear();
... // use V as a temporary variable
}
Hintergrundgeschichte: Ursprünglich hatte ich einen STATISCHEN Vektor V (zum Halten einiger Zwischenwerte, der bei jedem Aufruf der Funktion gelöscht wird) und ein Single-Thread-Programm. Ich möchte das Programm in ein Multithreading-Programm verwandeln, also muss ich diesen statischen Modifikator irgendwie loswerden. Meine Idee ist, jede statische in thread_local zu verwandeln und sich um nichts anderes zu kümmern? Kann dieser Ansatz nach hinten losgehen?