Dzięki temu wszystkie wyszukania (po tagach, językach, autorach, etc) będą bardzo szybkie. Sama implementacja widoczna jest tutaj. Niestety, nie obyło się bez drobnej duplikacji kodu (“done is better than perfect”), którą trzeba będzie usunąć. Na szczęście nie będzie z tym wiele roboty.
Na maszynie testowej czas generowania listy spadł z 6ms do standardowych ~200µs.
Przy okazji miałem okazję pobawić się z variadic templatkami w D. Nie dość, że pojawiły się tu dużo wcześniej niż w C++, to jeszcze są przyjemniejsze w użyciu (ok, w C++17 są już całkiem cywilizowane, ale to wciąż nie to). Dość przytoczyć przykład z dokumentacji:
void print(A...)(A a) { static if (a.length) { writeln(a[0]); static if (a.length > 1) print(a[1 .. $]); } } |