SumatraPDF-Entwickler lässt std::function nach 16 Jahren fallen und entwickelt seine eigene Lösung

2025-06-15
SumatraPDF-Entwickler lässt std::function nach 16 Jahren fallen und entwickelt seine eigene Lösung

Nach 16 Jahren C++-Entwicklung an SumatraPDF gab der Autor `std::function` und Lambdas auf, da das Debugging schwierig war. Crash-Reports waren aufgrund der automatisch generierten Namen der vom Compiler erzeugten Lambda-Funktionen schwer zu entziffern. Er entwickelte einfachere, benutzerdefinierte Callback-Funktionen `Func0` und `Func1`. Obwohl weniger funktionsreich als `std::function`, bieten sie erhebliche Vorteile in Bezug auf Speicherbedarf und Kompilierungszeit und sind einfacher zu debuggen. Dieser Beitrag beschreibt das Design und die Implementierung von `Func0` und `Func1` und erklärt, warum dieser Ansatz besser zu den Anforderungen von SumatraPDF passt.

Entwicklung Callbacks