2012-11-01 14 views
9

Czy są jakieś wyraźne gwarancje kompatybilności, które zwiększają :: interprocess :: managed_shared_memory działałyby w różnych wersjach boost? Mam zamiar użyć go do współudziału w liczbie całkowitej lub dziesiątce między wieloma procesami (które zasadniczo będą działały jako numery wersji dla wszystkich danych, które wszyscy przeczytali, a niektórzy piszą). Procesy są wydawane osobno i raz na jakiś czas kończone.Zgodność boost :: interprocess :: managed_shared_memory między różnymi wersjami boost

Pytanie brzmi: czy zamykam się na określoną wersję boost na wieczność, ponieważ managed_shared_memory z wersji 1.51 nie będzie w stanie porozmawiać z manage_shared_memory z wersji 1.44 itd.?

Odpowiedz

2

Według Boost FAQ:

Jak biblioteki zwiększenia wysiłków zmierzających powodzeniem stosowane w przypadku ważnych projektów?

Wiele bibliotek funkcji Boost jest aktywnie konserwowanych i ulepszanych, więc zgodność wsteczna z wcześniejszą wersją nie zawsze jest możliwa. Zajmij się tym zamrożeniem wersji bibliotek Boost używanych przez twój projekt. Aktualizuj tylko w punktach cyklu życia twojego projektu, w których niewielka zmiana nie spowoduje problemów. Poszczególne poprawki błędów można zawsze uzyskać z repozytorium boost.

Wydaje się więc jesteś blokowania się do zestawu przyszłych wersjach Boost Interprocess który będzie kompatybilny z wersją będzie używany, który jest nieprzewidywalny liczbę wersji (kompatybilność może zostać uszkodzony jutro, jak to mogło nigdy nie być zepsuty).

Jeśli możesz sobie pozwolić, aby zainwestować trochę czasu, aby ulepszyć swój kod, gdy pojawi się nowa wersja wzmocnienia i łamiesz kompatybilność, wszystko jest w porządku. W praktyce wydaje mi się, że jest to bardziej prawdopodobne co kilka lat niż raz w miesiącu, a twórcy bibliotek mają tendencję do uwzględniania wstecznej zgodności przed publikowaniem aktualizacji.

+0

Niestety, nie mogę wymagać aktualizacji wszystkich procesów, gdy chcę uaktualnić doładowanie. Niektórzy użytkownicy mogą mieć starą wersję w tym samym czasie co nowe. Sądzę, że będę musiał wdrożyć własną platformę. – Eugene

Powiązane problemy