Re[2]: Опять инициализация статичских переменных
От: leonty  
Дата: 10.04.10 14:43
Оценка:
Здравствуйте, remark, Вы писали:

R>А где у тебя names-то определяется?


R>Напиши:

R>
R>  static std::list<std::string> >& names()
R>  {
R>    static std::list<std::string> > inst;
R>    return inst;
R>  }
R>

R>В таком случае переменная всегда будет инициализирована перед первым обращением (и как бонус переменную не надо дополнительно определять). Однако учти, что это будет работать только, если обращения к names() идёт из одного потока, ну или точнее так — первое обращение из одного потока, потому что инициализация статических переменных на уровне функции в общем случае не потокобезопасная.

Да, names определяется в другом файле, просто забыл написать. Уже сделал этот вариант с функцией.
Поскольку работа с names идёт толко при загрузке dll, то проблем с потоками быть не должно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.