https://ru.wikipedia.org/wiki/Обобщённое_программирование
чел который написал библу шаблонов для c++
https://ru.wikipedia.org/wiki/Степанов,_Александр_Александрович_(учёный)
с помощью механизма шаблонов реализовано по сути обобщенное программирование
в некотором смысле это текстовый препроцессор, ничего сложного
вместо некоторых имен-параметров в шаблоны подставляются другие имена и каждый раз записывается в текст программы
https://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B
и это все по сути бледная тень LISPа и Рефала
имхо
ps Метапрограммирование: какое оно есть и каким должно быть
https://habr.com/post/258667/