Mediumalias
Что такое alias template (using<_>)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Alias template — шаблонный псевдоним типа через using (C++11). typedef шаблоны не поддерживает, поэтому using предпочтителен в новом коде.
template<class T>
using Vec = std::vector<T, MyAlloc<T>>;
Vec<int> v; // = vector<int, MyAlloc<int>>
// Alias для trait (C++14)
std::remove_const_t<T> // вместо typename std::remove_const<T>::type- Сокращает длинные имена, скрывает дефолтные параметры шаблона;
- В generic-коде:
template<class T> using ValueType = typename T::value_type;; - Это просто другое имя, никаких новых инстанциаций.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.