Выбор ответа Middle Шаблоны и концепты спрашивают часто обновлено
Зачем концепты
Вопрос
Главное преимущество концептов C++20 перед SFINAE через enable_if:
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Требования к типам видны явно, а ошибки компиляции короче. Концепт это именованный предикат над типами, который проверяется при компиляции.
Варианты ответа
- Требования к типам видны явно, а ошибки компиляции корочеправильный ответ
- Концепты проверяются во время выполнения и бросают исключение
- Концепты ускоряют работу программы за счёт специализации кода
- С концептами шаблоны можно определять в
.cppбез инстанцирования
Разбор
Концепт это именованный предикат над типами, который проверяется при компиляции. Ограничения видны прямо в объявлении, ошибка сообщает, какое требование не выполнено, а перегрузка по концептам выбирает более специализированный вариант.
- В рантайме концептов нет.
- Скорость сгенерированного кода та же.
- Правило про определения в заголовках остаётся.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.