Я использую анонимные пространства имен для хранения локальных данных и функций и хотел знать, когда данные инициализируются? Это когда приложение запускается так же, как статические данные или зависит от компилятора? Например:Когда анонимные данные пространства имен инициализируются?
// foo.cpp
#include "foo.h"
namespace {
const int SOME_VALUE = 42;
}
void foo::SomeFunc(int n)
{
if (n == SOME_VALUE)
{
...
}
}
Вопрос возникает из-за того, что какой-то код является безопасным для потоков. В приведенном выше примере я должен быть уверен, что SOME_VALUE
инициализирован до вызова SomeFunc в первый раз.