According to this comment, I can see the definition
void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } is equivalent to
void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } But I have found the following like code is used in some Open Source projects:
void f() { static thread_local vector<int> V; ...... } Per my understanding, it should be meaningless to add static here. So is there any benefit of using static for thread_local variables? Such as do some compiling optimizations?