Type Safe Generic Data Structures in C (2025)
L'auteur présente une méthode pour écrire des structures de données génériques et sûres en C en associant des informations de type via des unions et des macros. Il compare cette approche à d'autres techniques : inclusion répétée d'en-têtes paramétrés par macros, utilisation de void * (non sûre) et stockage inline avec membre de tableau flexible pour réduire les allocations et améliorer la localité. La solution principale utilise une union contenant un membre payload du type paramétré et des macros qui exploitent l'opérateur ternaire ou __typeof__ pour forcer la vérification de type à la compilation sans coût mémoire à l'exécution. L'article évoque aussi des optimisations pratiques comme l'allocation directe via list_alloc_front, recommande les arenas plutôt que malloc, et signale des limites liées à la duplication de définitions, à la compatibilité des compilateurs et à l'augmentation possible de la taille binaire. Enfin, l'auteur montre que la technique s'étend à d'autres structures comme les tables de hachage et indique que le code d'exemple est disponible via son bulletin d'information.