Le développeur de SumatraPDF abandonne std::function après 16 ans, et crée sa propre solution
2025-06-15
Après 16 ans de développement C++ sur SumatraPDF, l'auteur a abandonné `std::function` et les lambdas en raison de difficultés de débogage. Les rapports de plantage étaient difficiles à déchiffrer à cause des noms auto-générés des fonctions lambda générées par le compilateur. Il a créé des fonctions de rappel personnalisées plus simples, `Func0` et `Func1`. Bien que moins riches en fonctionnalités que `std::function`, elles offrent des avantages significatifs en termes d'empreinte mémoire et de vitesse de compilation, et sont plus faciles à déboguer. Cet article détaille la conception et l'implémentation de `Func0` et `Func1`, et explique pourquoi cette approche convient mieux aux besoins de SumatraPDF.
Développement