C++-Bibliothek: Boost 1.75 bringt JSON-Parser, Fehlerbehandlung und Reflexion

Die Sammlung hat drei neue Unterbibliotheken im Gepäck, aber die Operators-Bibliothek hat derzeit Probleme im Zusammenspiel mit C++20-Compilern.

In Pocket speichern vorlesen Druckansicht 111 Kommentare lesen
Lesezeit: 3 Min.
Inhaltsverzeichnis

Das Team hinter der C++-Bibliothek Boost hat Version 1.75 des Projekts veröffentlicht. Neben zahlreichen Bugfixes und Ergänzungen der bestehenden Unterbibliotheken hat das Release drei neue Libraries an Bord, die sich dem Verarbeiten von JSON-Inhalten, dem Behandeln von Fehlern sowie der Reflexion benutzerdefinierter Typen widmen.

Beim Zusammenspiel mit dem aktuellen C++-Standard hakt es jedoch derzeit. Zwar fließen regelmäßig Inhalte aus der Boost-Bibliothek in den Standard ein und umgekehrt berücksichtigt die Library die aktuellen Konzepte. Auch das aktuelle Release bringt wie schon die Vorgängerversionen einige Fixes für die C++20-Kompatiblität mit. Allerdings sind Boost Operators derzeit wohl zu C++20-Compilern inkompatibel, was bei Vergleichsoperatoren zu Endlosschleifen oder -rekursionen zur Laufzeit führen kann.

Die Library Boost.JSON bietet Funktionen zum Parsen, Serialisieren von JSON-Inhalten sowie der Verarbeitung des DOM (Document Object Model) von Daten im JSON-Format. Auf Standardseite benötigt die Bibliothek lediglich C++11, und sie lässt sich ohne das komplette Boost-Paket kompilieren, wofür die Definition von BOOST_JSON_STANDALONE dient. Zudem lassen sich optional nur die Header einbinden.

Das Akronym der Unterbibliothek Boost.LEAF steht für Lightweight Error Augmentation Framework. Sie ist schlank ausgelegt mit einem einzelnen Header und keinen Dependencies. Sie nutzt das Konzept der Testpfade mit einem Happy Path für funktionierende Codeabschnitte und einem Sad Path für auftretende Fehler. LEAF lässt sich für Multithreading-Anwendungen verwenden und funktioniert sowohl mit als auch ohne Exception-Handling. Wie die JSON-Bibliothek setzt sie auf C++11 auf.

Schließlich bietet die Bibliothek Boost.PFR einfache Funktionen zur Reflexion für benutzerdefinierte Typen. Das Akronym steht für Precise and Flat Reflection, und die Library verzichtet auf Boilerplate-Code sowie Makros. Sie gibt die über einen Index angefragten Elemente zurück und bietet Methoden, die an std::tuple angelehnt sind. Boost.PFR funktioniert ab C++14.

betterCode() C++20

Am 21. Januar 2021 findet die Online-Konferenz betterCode() C++20 statt, in der sich alles um den aktuellen C++-Standard dreht. Mit Bjarne Stroustrup ist der Vater der Programmiersprache mit an Bord, der unter anderem in einer Ask-Me-Anything-Runde alle Fragen rund um C++ beantwortet.

Weitere Vorträge drehen sich um die Neuerungen wie Module, Concepts, Corountinen, die Ranges-Library und Strong Typing.

Bis zum 16. Dezember 2020 sind Tickets zum Frühbucherpreis erhältlich.

Daneben findet sich eine neue Funktion in der umfangreichen Bibliothek Boost.Filesystem V3: creation_time gibt Zugriff auf den Zeitpunkt, an dem eine Datei erstellt wurde.

Mitglieder des C++-Standardisierungskomitees haben im Jahr 2000 das Boost-Projekt gegründet. Ziel war vor allem, Vorschläge für Erweiterungen der Programmiersprache öffentlich bereitzustellen und so praktische Tests zu ermöglichen, bevor Neuerungen in den Standard einfließen. Boost hat in den letzten zwanzig Jahren jedoch unabhängig von den Standardisierungsvorschlägen ein relevantes Eigenleben im C++-Universum entwickelt und sich als wichtige Bibliothekensammlung etabliert.

Weitere Details lassen sich der Ankündigung von Boost 1.75 entnehmen. Die Library steht auf der Downloadseite in unterschiedlichen Formaten für Windows und Unix bereit.

(rme)