JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • std::variant: значение как модель состояния

    C++ SELF
    23 уровень,0 лекция
    Разбираем, как std::variant помогает выразить «результат как состояние» типами: чем он отличается от std::optional и связки enum class+данные, как проверять активную альтернативу через index() и std::holds_alternative, безопасно извлекать значение через std::get_if, и почему это лучше «магических значений» вроде -1. В конце — мини-пример TodoCLI и типичные ошибки использования.
    Открыта
  • std::visit: обработка std::variant через visitor

    C++ SELF
    23 уровень,1 лекция
    Разбираем, зачем нужен std::visit при работе со std::variant: как уйти от «леса» std::get_if, как устроен visitor (generic-лямбда, перегрузки, struct с operator()), как возвращать значение из std::visit, и как применить это в мини-CLI трекере задач с типизированными командами и ошибками парсинга.
    Открыта
  • std::expected<T, E> как модель «успех/ошибка»

    C++ SELF
    23 уровень,2 лекция
    Разбираем, почему «магические значения» вроде - 1 и пустые строки ломают контракт функций, чем std::expected<T, E> принципиально отличается от std::optional<T>, как возвращать ошибку через std::unexpected, и как дисциплинированно обрабатывать результат через проверки if ( has_value(), value(), error()). В примерах показываем парсинг чисел без исключений на базе std::from_chars и «проброс» ошибок наверх в стиле CLI-приложения.
    Открыта
  • Дизайн ошибок — код, сообщение, контекст

    C++ SELF
    23 уровень,3 лекция
    Разбираем практичный дизайн ошибок в C++23: почему «ошибка как строка» быстро превращается в хрупкий код, как упаковывать ошибку в данные ( ErrorCode + сообщение + контекст), как единообразно форматировать ошибки через format_error, и как возвращать «значение или ошибку» с помощью std::expected. На примерах показываем категории ParseError/ InvalidInput/ NotFound/ IoError, парсинг через std::from_chars и обработку в мини-CLI.
    Открыта
  • Политика ошибок

    C++ SELF
    23 уровень,4 лекция
    Разбираем, зачем проекту нужна единая политика ошибок: почему «рабочие» функции не должны печатать диагностику, как проводить ошибку наверх через std::expected, где и как единообразно форматировать сообщения ( format_error), чем полезно разделение std::cout/ std::cerr, как вводить минимальное логирование через log(...) и централизовать коды выхода процесса через отображение ErrorCode → int.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush