Re[4]: Время разрушения статических объектов
От: Erop Россия  
Дата: 19.09.09 11:09
Оценка:
Здравствуйте, Went, Вы писали:

W>Ну, в принципе, да. Но есть ли разница (с точки зрения вероятности порчи памяти) в обычной статике и статике-в-функции?


статик, который POD, не разрушается и не строится...
Ну и проще и быстрее работает, к тому же. И синхронизация проще...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Время разрушения статических объектов
От: Erop Россия  
Дата: 20.09.09 18:13
Оценка:
W>Ну, в принципе, да. Но есть ли разница (с точки зрения вероятности порчи памяти) в обычной статике и статике-в-функции?

Скорее всего нет, но статик в функции намного более кривая и неявная штука, чем просто статический указатель. Соответственно возможны грабли...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Время разрушения статических объектов
От: Centaur Россия  
Дата: 22.09.09 11:38
Оценка:
Здравствуйте, Went, Вы писали:

W>Здрасте. Имеется некий менеджер, который живет на статике в одном из cpp-файлов программы, и некие объекты, которые тоже иногда живут на статике, и в момент конструкции регистрятся в этом менеджере, а в момент разрушения — удаляются из него. Когда оказывается, что менеджер разрушился раньше объекта, то при попытке удалиться из него, объект бьет мимо памяти! Какие есть хорошие решения проблемы?


Кроме всего вышепосоветованного, есть ещё идиома «счётчик Шварца» (Schwarz counter), с помощью которой инициализируются/финализируются std::[w]c{in, out, err, log}.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.