Совместимость boost :: interprocess :: managed_shared_memory между различными версиями boost

Существуют ли какие-либо явные гарантии совместимости, что boost :: interprocess :: managed_shared_memory будет работать в разных версиях boost? Я планирую использовать его для разделения целого числа или десяти между несколькими процессами (которые, по сути, будут действовать как номера ревизий для фрагмента данных, которые они все читают, а некоторые записывают). Процессы высвобождаются отдельно и время от времени прекращаются.

Вопрос в том, могу ли я ограничиться данной версией повышения на вечность, потому что managed_shared_memory из 1.51 не сможет общаться с managed_shared_memory из 1.44 и так далее?

9

Решение

Согласно Boost FAQ :

Как можно успешно использовать библиотеки Boost для важных проектов?

Многие из библиотек Boost активно поддерживаются и улучшаются, поэтому обратная совместимость с предыдущей версией не всегда возможна. Сделайте это, заморозив версию библиотек Boost, используемых вашим проектом. Обновляйте только в тех точках жизненного цикла вашего проекта, где небольшие изменения не вызовут проблем. Отдельные исправления ошибок всегда можно получить в буст-репозитории.

Так что, похоже, вы привязываетесь к ряду будущих версий Boost Interprocess это будет совместимо с версией, которую вы будете использовать, что является непредсказуемым числом версий (совместимость может быть нарушена завтра, а также никогда не может быть нарушена).

Если вы можете позволить себе потратить некоторое время на улучшение своего кода, когда новая версия Boost выйдет и нарушит совместимость, у вас все в порядке. На практике, я думаю, что это случается чаще, чем раз в несколько лет, а не раз в месяц, производители библиотек, как правило, учитывают обратную совместимость перед публикацией обновлений.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]