Могу ли я иметь объект thread_local, который будет вызываться ctor / dtor при создании каждого потока, даже если он не используется? - PullRequest
0 голосов
/ 16 сентября 2018

Я все еще новичок в C ++ 11 хранилище thread_local.В частности, мне любопытно узнать следующий код:

class foo_t
{
    foo_t() { std::cout << "Foo ctor"; }
    ~foo_t() { std::cout << "Foo dtor"; }
}

thread_local foo_t foo;

void bar() {  }
void baz() {  }
int main()
{
    std::thread t1(bar), t2(baz);
    t1.join(); t2.join();
}

Будет ли дважды вызываться ctor / dtor foo_t в этом примере (я имею в виду, требует ли этого стандарт)?Что если я переместу bar в другой переводчик?Что если такой блок не будет иметь декларации foo_t или foo?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...