2012-11-01 128 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

相關問題