2012-11-01 89 views
9

有没有任何明确的兼容性保证boost :: interprocess :: managed_shared_memory可以在不同的boost版本上工作?我打算使用它在多个进程之间共享一个整数或十个整数(这实际上将作为它们全部读取和写入的一段数据的修订版号)。这些流程分开发布,并且偶尔会暂停使用。boost :: interprocess :: managed_shared_memory在不同版本的boost之间的兼容性

现在的问题是:我是否将自己锁定在给定版本的永久提升上,因为1.51的managed_shared_memory将无法与1.44等的managed_shared_memory进行通话等等?

回答

2

按照Boost FAQ

如何Boost库可以对重大项目成功地使用?

许多Boost库都在积极维护和改进,所以与以前版本的向后兼容性并不总是可行。通过冻结您的项目使用的Boost库版本来处理此问题。只有在项目生命周期中的某个点进行升级,其中一些更改不会导致问题。总是可以从boost库获取单个错误修复。

因此,看来你是把自己锁到一组Boost Interprocess未来的版本中,这将是与将要使用的版本,这是版本的不可预知号码(兼容可能被打破明天兼容的,以及它可能永远不会被打破)。

如果你有能力投入一些时间来改善你的代码,当一个新版本的boost来临和打破兼容性,你都很好。实际上,我认为这种情况每隔几年会发生一次,而不是每月一次,因此图书馆制造商在发布更新之前往往会考虑向后兼容性。

+0

不幸的是,我不能要求升级boost时更新所有进程。有些用户可能会与新版本同时运行旧版本。我想我必须推出我自己的平台特定的东西。 – Eugene

相关问题