Mediumсинтаксис
Что такое trailing return type и зачем он нужен?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Trailing return type — auto f(int x) -> double — тип возврата после стрелки. Введён в C++11 для случаев, когда тип зависит от параметров. С C++14 можно auto f(...) без trailing — компилятор выводит тип из return.
// До C++11 нельзя было использовать параметры в return type
template<class T, class U>
auto add(T t, U u) -> decltype(t + u) {
return t + u;
}
// В лямбдах тоже работает
auto f = [](int x) -> int { return x * 2; };- Trailing полезен для явной документации (когда
autoнечитаем); - С C++14
auto f(...) { return ...; }выводит тип автоматически; - Также используется в interface declarations.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.