Ну, в своем самом простом виде темплейты не очень сложные.
Тип - это параметр. Больше никаких наворотов не нужно.
Конечно, без этого в КП можно обойтись (как и во многих других языках).
Например, с помощью наследования.
Или с помощью преобразования типов указателей.
Но шаблоны с типом-параметром кажутся проще для понимания.