Безопасно ли использовать STL (TR1) shared_ptr между модулями (exes и dll)
Я знаю, что добавление чего-либо в одном модуле и удаление этого в другом часто может вызвать проблемы в VC ++. Проблемы с разными временами выполнения. Смешивание модулей со статически связанными средами выполнения и / или динамически связанными несовпадениями версий может привести к ошибкам, если я правильно помню.
Однако безопасно ли использовать std :: tr1 :: shared_ptr VC ++ 2008 в разных модулях?
Поскольку существует только одна версия среды выполнения, которая даже знает, что такое shared_ptr, статическая линковка - моя единственная опасность (на данный момент ...). Мне показалось, что я читал, что версию Boost для shared_ptr было безопасно использовать, но я использую версию Редмонда ...
Я пытаюсь избежать специального вызова свободных объектов в модуле размещения. (или что-то вроде «удалить это» в самом классе). Если все это кажется немного странным, я использую это для модульного тестирования. Если вы когда-нибудь пытались выполнить модульное тестирование существующего кода C ++, вы можете понять, кактворческий Вы должны быть в разы. Моя память выделяется EXE, но в конечном итоге будет освобождена в DLL (если подсчет ссылок работает так, как я думаю).