Иллюстрация в качестве примера.
В данный момент я работаю над структурой Trie (кстати, если кто-то знает хорошую реализацию ...).
Trie в основномN-арное дерево, первый уровень которого в основном завершен, а затем становится более разреженным и более глубоким, чем глубже вы углубляетесь (это не является правильной структурой, просто в большинстве словарей короткие слова встречаются намного длиннее, чем в более длинных).
Я думал об использовании этого умения шаблонов, чтобы минимизировать количество выделенных узлов.Без шаблонов это будет происходить:
class Node3; // contains N Node2
class Node2; // contains N Node1
class Node1; // contains N Node0
class Node0; // contains N Node
class Node; // contains N POINTERS to Node
С шаблоном, который я делаю:
template <size_t L> class Node; // contains N Node<L-1>
template <> class Node<0>; // contains N Node
class Node; // contains N POINTERS to Node
И избавляет себя от скучной задачи написания макроса или копирования кода снова и снова.