Mediumvariadic
Что такое variadic templates?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Variadic templates — шаблоны с переменным числом параметров. Args... — parameter pack (пакет), распаковка через args....
template<class... Args>
void f(Args... args) {
constexpr size_t n = sizeof...(args); // количество
(print(args), ...); // fold expression (C++17)
}
// До C++17 — рекурсия: f() база, f(Head, Tail...) шаг- Лежат в основе
std::make_unique,std::tuple,std::thread,std::format; - Заменили C-style varargs, обеспечивая типобезопасность;
sizeof...(args)даёт количество аргументов в пакете.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.