Обобщённое программирование

Определение обобщенного программирования

Обобщённое программирование — парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание.

Язык С++ -- это компилируемый язык со строгой типизацией, поэтому на этапе выполнения у него нет гибкости интерпретируемых языков, таких как Python, и у каждой функции должны быть строго определённые типы формальных параметров.

Для того, чтобы не писать много раз повторяющиеся почти дословно описания классов и функций в язык С++ введен механизм шаблонов функций и шаблонов классов.

Конкретная функция или класс, получаемый по этому шаблону на этапе компиляции, называется специализацией.

А сам этап компиляции, на котором происходит порождение специализации по шаблону называется инстанцированием.