【问题标题】:Compatibility of boost::interprocess::managed_shared_memory between various versions of boostboost::interprocess::managed_shared_memory 在不同版本的 boost 之间的兼容性
【发布时间】:2012-10-22 15:07:09
【问题描述】:

是否有任何明确的兼容性保证 boost::interprocess::managed_shared_memory 可以跨不同的 boost 版本工作?我打算用它在多个进程之间共享一个整数或十个整数(这实际上将充当它们都读取和写入的一段数据的修订号)。这些流程是单独发布的,并且偶尔会终止。

问题是:我是不是因为 1.51 的 managed_shared_memory 无法与 1.44 的 managed_shared_memory 通信,所以我是否将自己锁定在一个给定的 boost 版本中?

【问题讨论】:

    标签: c++ boost boost-interprocess


    【解决方案1】:

    根据Boost FAQ

    如何将 Boost 库成功用于重要项目?

    许多 Boost 库都得到积极维护和改进,因此与以前版本的向后兼容并非总是可行的。通过冻结项目使用的 Boost 库版本来解决这个问题。仅在项目生命周期中的一点更改不会导致问题的点进行升级。始终可以从 boost 存储库中获得单独的错误修复。

    因此,您似乎将自己锁定在一组Boost Interprocess 的未来版本中,这些版本将与您将使用的版本兼容,这是不可预测的版本数量(兼容性可能会在明天被破坏,也可能会被破坏)从未损坏)。

    如果您有能力在新版本的 boost 出现并破坏兼容性时投入一些时间来改进您的代码,那您就没事了。在实践中,我认为这更有可能每隔几年发生一次,而不是一个月一次,图书馆制造商倾向于在发布更新之前考虑向后兼容性。

    【讨论】:

    • 不幸的是,当我想升级 boost 时,我不能要求更新所有进程。一些用户可能在运行新版本的同时运行旧版本。我想我必须推出自己的平台特定的东西。
    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 2012-05-20
    • 2017-11-02
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2012-08-26
    • 2021-05-19
    相关资源
    最近更新 更多