Re: Как наиболее корректно работать с глобальными данными
От: MasterZiv СССР  
Дата: 07.07.15 08:13
Оценка:
Здравствуйте, lnkuser, Вы писали:


L>Как я понял это как раз случай для синглетона:


L>
L>// other_module.cpp

L>auto g_log = Log::instance();
L>*g_log << loglevel::info << "some text";
L>




L>
L>// other_module2.cpp

L>auto g_log = Log::instance();
L>*g_log << loglevel::info << "some text2";
L>



L>Все вроде идеально, но тут будет ошибка линкования.


На таком уровне понимания проблемы тебе надо сначала почитать книжку по языку С++ или даже С,
потому что модели памяти у них одинаковые.
Почитай про классы памяти, области видимости и static.
В таком раскладе обе переменные auto g_log должны быть объявлены static, иначе будет нарушение ODR.

Да, и к работе потоков это не имеет никакого отношения (пока).
Отредактировано 07.07.2015 8:14 MasterZiv . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.