Easyшаблоны

Что такое шаблон функции и как он работает?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

Шаблон функции — обобщённое определение с параметром-типом. При вызове компилятор инстанцирует конкретную версию через вывод аргументов (deduction).

template<class T>
T max(T a, T b) { return a > b ? a : b; }

max(3, 5);                 // инстанцирует max<int>
max<double>(3, 5.0);      // явное указание при неоднозначности
  • Параметры бывают типов (class T), non-type (template<int N>) и template-template;
  • Инстанциация создаёт новый код для каждого уникального набора аргументов → может раздувать бинарник;
  • Шаблоны — основа STL и generic-программирования в C++.

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.