Порядок инициализации локальных переменных потока
Цитата из N4713:
Динамическая инициализация нелокальных переменных V и W со статической продолжительностью хранения упорядочена следующим образом:
Если V и W имеют упорядоченную инициализацию и V определяется перед W в пределах одной единицы трансляции, инициализация V выполняется до инициализации W.
Есть ли аналогичный абзац для переменных продолжительности хранения потока? В приведенном ниже коде происходит инициализация V
последовательность перед инициализацией W
?
thread_local int V = 1;
thread_local int W = V;
Обновлено:
Я хочу изменить код следующим образом:
thread_local string V;
thread_local string W;
1 ответ
С 6.7.2 Продолжительность хранения потока [basic.stc.thread]:
Переменная с продолжительностью хранения потока должна быть инициализирована перед ее первым использованием odr (6.2) и, если она создана, должна быть уничтожена при выходе из потока.
Это означает, что V
инициализируется перед `W'.