2012-11-01 11 views
9

Gibt es irgendwelche expliziten Kompatibilitätsgarantien, dass boost :: interprocess :: managed_shared_memory in verschiedenen Boost-Versionen funktionieren würde? Ich plane, es zu verwenden, um eine Ganzzahl oder zehn zwischen mehreren Prozessen zu teilen (die im Wesentlichen als Revisionsnummern für ein Stück von Daten dienen, die sie alle lesen und einige schreiben). Die Prozesse werden ab und zu getrennt und end-of-lift freigegeben.Kompatibilität von boost :: interprocess :: managed_shared_memory zwischen verschiedenen Boost-Versionen

Die Frage ist: sperre ich mich auf eine bestimmte Version von Boost für die Ewigkeit, weil managed_shared_memory von 1.51 nicht in der Lage sein wird, mit managed_shared_memory von 1.44 und so weiter zu sprechen?

Antwort

2

Nach dem Boost FAQ:

Wie können die Boost-Bibliotheken für wichtige Projekte erfolgreich eingesetzt werden?

Viele der Boost-Bibliotheken werden aktiv gepflegt und verbessert, sodass eine Abwärtskompatibilität mit früheren Versionen nicht immer möglich ist. Behandeln Sie dies, indem Sie die Version der von Ihrem Projekt verwendeten Boost-Bibliotheken einfrieren. Aktualisieren Sie nur an Punkten im Lebenszyklus Ihres Projekts, bei denen ein bisschen Veränderung keine Probleme verursacht. Einzelne Bugfixes können immer aus dem Boost-Repository bezogen werden.

So scheint es Ihnen, sich auf eine Reihe von zukünftigen Versionen von Boost Interprocess sind Sperren, die mit der Version kompatibel sein wird Sie verwenden werden, die eine unberechenbare Anzahl von Versionen (Kompatibilität morgen ebenso wie es gebrochen werden konnte konnte niemals kaputt sein).

Wenn Sie es sich leisten können, etwas Zeit zu investieren, um Ihren Code zu verbessern, wenn eine neue Boost-Version kommt und die Kompatibilität bricht, dann geht es Ihnen allen gut. In der Praxis denke ich, dass es eher alle paar Jahre als einmal im Monat passieren wird. Bibliothekenhersteller neigen dazu, Rückwärtskompatibilität in Betracht zu ziehen, bevor sie Updates veröffentlichen.

+0

Leider kann ich nicht verlangen, dass alle Prozesse aktualisiert werden, wenn ich Boost aktualisieren möchte. Einige Benutzer führen möglicherweise die alte Version gleichzeitig mit neuen aus. Ich denke, ich muss meine eigenen plattformspezifischen Sachen herausbringen. – Eugene

Verwandte Themen