是否有任何明确的兼容性保证 boost::interprocess::managed_shared_memory 可以跨不同的 boost 版本工作?我打算用它在多个进程之间共享一个整数或十个整数(这实际上将充当它们都读取和写入的一段数据的修订号)。这些流程是单独发布的,并且偶尔会终止。
问题是:我是否因为 1.51 中的 managed_shared_memory 无法与 1.44 中的 managed_shared_memory 对话而将自己锁定在一个给定版本的 boost 中?
是否有任何明确的兼容性保证 boost::interprocess::managed_shared_memory 可以跨不同的 boost 版本工作?我打算用它在多个进程之间共享一个整数或十个整数(这实际上将充当它们都读取和写入的一段数据的修订号)。这些流程是单独发布的,并且偶尔会终止。
问题是:我是否因为 1.51 中的 managed_shared_memory 无法与 1.44 中的 managed_shared_memory 对话而将自己锁定在一个给定版本的 boost 中?
根据Boost 常见问题解答:
Boost 库如何成功地用于重要项目?
许多 Boost 库都得到了积极的维护和改进,因此与以前的版本向后兼容并不总是可能的。通过冻结项目使用的 Boost 库版本来解决这个问题。仅在项目生命周期中的一点更改不会导致问题的点进行升级。始终可以从 boost 存储库中获得单个错误修复。
因此,您似乎将自己锁定在一组Boost Interprocess
与您将使用的版本兼容的未来版本中,这是不可预测的版本数量(兼容性可能会在明天被破坏,也可能永远不会被破坏)。
如果您有能力在新版本的 boost 出现并破坏兼容性时投入一些时间来改进您的代码,那么您一切都很好。在实践中,我认为这更有可能每隔几年发生一次,而不是一个月一次,图书馆制造商倾向于在发布更新之前考虑向后兼容性。