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

Лекции

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

    C++ SELF
    57 уровень,0 лекция
    Разбираем CTAD ( Class Template Argument Deduction) — механизм C++17+, который позволяет не писать параметры шаблона класса вручную: компилятор выводит их из аргументов конструктора. На примерах со std::pair, std::array, std::vector обсудим плюсы и ловушки ( {} vs ()), затем применим CTAD в своём коде (шаблон Box<T> и мини-контекст TaskTracker) и закрепим типичные ошибки.
    Открыта
  • Типовые ловушки — auto x { 1 } vs auto x = { 1 }

    C++ SELF
    57 уровень,1 лекция
    Разбираем, почему фигурные скобки {} в сочетании с auto могут внезапно менять выводимый тип: где получается обычный int, а где — std::initializer_list<T>. На примерах показываем «симптомы» вроде появления .size(), ловушки со строковыми литералами и правильные способы явно зафиксировать контейнер ( std::vector<std::string>).
    Открыта
  • Зачем нужны concepts

    C++ SELF
    57 уровень,2 лекция
    Разбираем, почему «универсальный» template почти всегда имеет скрытые требования (операторы +, *, методы size(), функции begin()/ end()), откуда берутся «простыни» ошибок при инстанцировании, и как concepts и constraints делают контракт видимым в сигнатуре и переносят диагностику ближе к месту вызова. На примерах с Transaction, sum2 и safe_square показываем эффект и разбираем типичные ошибки.
    Открыта
  • Простейший concept и requires

    C++ SELF
    57 уровень,3 лекция
    Разбираем, как в C++20/23 перестать «кормить» шаблоны любыми типами и заранее описывать контракт через concept и requires: чем отличается requires-expression ( requires(...) { ... }) от requires-clause (… requires MyConcept< T>), как собрать минимальные HasSize и Addable, и почему запись requires( T x) может случайно потребовать копируемость (и «сломать» std::unique_ptr).
    Открыта
  • Стандартные concepts — std::integral, std::floating_point, std::ranges::range

    C++ SELF
    57 уровень,4 лекция
    Разбираем, зачем в C++23 использовать стандартные concepts как контракт для шаблонов: как constraints “фильтруют” неподходящие типы на этапе компиляции, чем отличаются ограничения для целых ( std::integral) и вещественных ( std::floating_point), и как обобщать алгоритмы на любые последовательности через std::ranges::range. На практике собираем мини-версию утилиты DataBox и обсуждаем типичные ошибки.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush