Существуют ли какие-либо явные гарантии совместимости, что boost :: interprocess :: managed_shared_memory будет работать в разных версиях boost? Я планирую использовать его для разделения целого числа или десяти между несколькими процессами (которые, по сути, будут действовать как номера ревизий для фрагмента данных, которые они все читают, а некоторые записывают). Процессы высвобождаются отдельно и время от времени прекращаются.
Вопрос в том, могу ли я ограничиться данной версией повышения на вечность, потому что managed_shared_memory из 1.51 не сможет общаться с managed_shared_memory из 1.44 и так далее?
Согласно Boost FAQ :
Как можно успешно использовать библиотеки Boost для важных проектов?
Многие из библиотек Boost активно поддерживаются и улучшаются, поэтому обратная совместимость с предыдущей версией не всегда возможна. Сделайте это, заморозив версию библиотек Boost, используемых вашим проектом. Обновляйте только в тех точках жизненного цикла вашего проекта, где небольшие изменения не вызовут проблем. Отдельные исправления ошибок всегда можно получить в буст-репозитории.
Так что, похоже, вы привязываетесь к ряду будущих версий Boost Interprocess
это будет совместимо с версией, которую вы будете использовать, что является непредсказуемым числом версий (совместимость может быть нарушена завтра, а также никогда не может быть нарушена).
Если вы можете позволить себе потратить некоторое время на улучшение своего кода, когда новая версия Boost выйдет и нарушит совместимость, у вас все в порядке. На практике, я думаю, что это случается чаще, чем раз в несколько лет, а не раз в месяц, производители библиотек, как правило, учитывают обратную совместимость перед публикацией обновлений.
Других решений пока нет …