Являются ли переменные thread_local в C ++ 11 автоматически статическими?

Есть ли разница между этими двумя сегментами кода:

void f() {
    thread_local vector<int> V;
    V.clear();
    ... // use V as a temporary variable
}

а также

void f() {
    static thread_local vector<int> V;
    V.clear();
    ... // use V as a temporary variable
}

Предыстория: изначально у меня был статический вектор V (для хранения некоторых промежуточных значений, он очищается каждый раз, когда я вхожу в функцию) и однопоточная программа. Я хочу превратить программу в многопоточную, поэтому каким-то образом мне нужно избавиться от этого статического модификатора. Моя идея - превратить каждую статику в thread_local и не беспокоиться ни о чем другом? Может ли такой подход иметь неприятные последствия?

Ответы на вопрос(4)

Ваш ответ на вопрос