Are C++11 thread_local variables automatically static?

后端 未结 4 1032
梦谈多话
梦谈多话 2020-11-30 21:23

Is there a difference between these two code segments:

void f() {
    thread_local vector V;
    V.clear();
    ... // use V as a temporary variab         


        
4条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-30 21:39

    When used with thread_local, static is implied in block-scope (see @Vlad's answer), requied for a class member; I guess, means linkage for namespace scope.

    Per 9.2/6:

    Within a class definition, a member shall not be declared with the thread_local storage-class-specifier unless also declared static

    To answer the original question:

    Are C++11 thread_local variables automatically static?

    There is no choice, except for namespace-scope variables.

    Is there a difference between these two code segments:

    No.

提交回复
热议问题