Ответ вслух Middle Современный C++20/23 спрашивают часто обновлено

Что вы используете из C++20 и C++23

Вопрос

Расскажите, какие возможности C++20 и C++23 вы используете в работе и зачем.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Каждый день использую концепты: ограничения шаблонов стали читаемыми, а ошибки короткими. Ranges: std::ranges::sort(v, {}, &User::age) с проекцией, конвейеры views::filter views::transform, а в C++23 ranges::to<std::vector().

Что должно прозвучать в ответе

  • Концепты вместо SFINAE

  • Ranges: проекции, views, ranges::to

  • std::format и std::print вместо iostream-манипуляций

  • Spaceship и назначенные инициализаторы для простых типов

  • jthread и stop_token для потоков

  • expected для ошибок без исключений; осторожность с поддержкой компиляторов

Что могут спросить следом

  • Почему модули ещё не везде?
  • В каких случаях вы бы написали свою корутину?

Разбор

Каждый день использую концепты: ограничения шаблонов стали читаемыми, а ошибки короткими. Ranges: std::ranges::sort(v, {}, &User::age) с проекцией, конвейеры views::filter | views::transform, а в C++23 ranges::to<std::vector>(). Форматирование только через std::format, а где доступен C++23, через std::println. Для простых значимых типов auto operator<=>(const T&) const = default; вместо шести операторов и назначенные инициализаторы для конфигов. Потоки запускаю через std::jthread со std::stop_token: не забудешь join, есть кооперативная остановка. Для ожидаемых ошибок в C++23-коде std::expected вместо исключений. Корутины применяю через библиотеки для асинхронного ввода-вывода. Модули пока точечно: поддержка в CMake и компиляторах есть, но интеграция со сторонними библиотеками и инструментами ещё неровная. Перед использованием новой библиотечной возможности проверяю макросы __cpp_lib_* и минимальные версии компиляторов в CI.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.