Wie lautet der aktuelle Status des Transaktionsspeichervorschlags für C++ 17? Wird es in den Standard aufgenommen, um in eine zukünftige Version von Standard C++ aufgenommen zu werden, oder ist es nur ein experimentelles Proof-of-Concept-Feature, dessen Standardisierungsstatus noch nicht bekannt ist?Standard-C++ - Transaktionsspeicherstatus
Ich frage, weil einige Dokumente des Standardisierungskomitees widersprüchliche Kommunikation hier zu geben scheinen. Auf der einen Seite haben wir P0265R0 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0265r0.pdf) sagen, dass Transaktionsspeicher wird nicht standardisiert werden, auf der anderen Seite gibt es eine N4492 Papier von Stroustrup (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4492.pdf) mit Transaktionsspeicher in C++ 17 Feature-Liste aufgelistet.
Gute Antwort. Es ist eine Schande, denn es ist die einzige zusammensetzbare Technik, AFAICT. Im Prinzip fühlt sich das gleichzeitige Programmieren so an, als ob es vor 15 Jahren gewesen wäre, mit allem, was von Grund auf neu programmiert werden müsste (wieder, da nichts zusammensetzbar ist, so dass es keine wiederverwendbaren Bausteine gibt). –
@AmiTavory was wäre etwas, dass Transaktionen kompostierbarer als und warum? –
@JanusTroelsen Angenommen, Sie finden ein Projekt, das einen supercoolen Gleichzeitigkeitsalgorithmus für eine Hashtabelle mit einem Mutex- oder Lockfree-Primitiv darstellt. Dann finden Sie dasselbe für eine verknüpfte Liste. Anschließend möchten Sie einen LRU-Cache mithilfe einer Hashtabelle und einer verknüpften Liste erstellen. AFAIU, die Kombinationen dieser Lösungen, ist keine Lösung für die Kombination von Problemen (es ist nicht genug, dass die Hash-Tabelle und die Liste gleichzeitig sind; der LRU-Status könnte inkonsistent sein). Wenn Sie jedoch eine TSM-Hashtabelle und eine verknüpfte Liste verwenden, können Sie eine TSM-LRU trivial erstellen. –