Autor opisuje różne podejścia do tworzenia generycznych struktur danych w C z bezpieczeństwem typów.
Poziom 0 wykorzystuje wielokrotne dołączanie nagłówków i makra, co prowadzi do nieczytelnego kodu i nadmiaru funkcji.
Poziom 1 używa void*, co eliminuje bezpieczeństwo typów i generuje dodatkowe alokacje oraz straty wydajności.
Poziom 2 wprowadza elastyczne tablice do przechowywania danych wewnątrz węzłów, zmniejszając liczbę alokacji i poprawiając lokalność danych.
Poziom 3 osiąga sprawdzanie typów w czasie kompilacji za pomocą unii z polem payload i makr, błędnie przekazywane typy są wykrywane na etapie kompilacji.
Technika jest ogólna i działa dla różnych struktur, można ją też dostosować do kompilatorów bez wsparcia typeof.
Get notified when new stories are published for "🇵🇱 Hacker News Polski"