Егор Суворов - Санитайзеры и стандарт не спасут

Поділитися
Вставка
  • Опубліковано 15 тра 2024
  • Ближайшая конференция: С++ Russia 2024, 24 мая (online), 2-3 июня (offline, Москва)
    Подробности и билеты: jrg.su/W8skjE
    - -
    Некоторые считают, что C++ - прекрасный язык: много литературы и курсов, санитайзеры для ловли undefined behavior, мощные IDE и статический анализ. Но так ли они надежны? Что, если программист доверяется инструментам, а не знает стандарт наизусть? Поможет ли потребовать корректную работу программы на пяти компиляторах в 15 режимах под тремя ОС? Какие подковырки стандарта, особенности компиляторов и баги тулинга можно выявить, решая на C++ лишь учебные задачи?
    Егор рассказал о защитах от дурака (и их ненамеренном обходе) в ОС, системах контроля версий, инфраструктуре на GitHub Actions, а также несовместимостях и нарушениях стандарта в компиляторах и тулинге. Все баги были обнаружены при помощи нескольких поколений студентов первого курса.
    Скачать презентацию с сайта С++ Russia - jrg.su/bTQr7H
  • Наука та технологія

КОМЕНТАРІ • 5

  • @40Ants
    @40Ants 8 днів тому

    Какой же прекрасный язык C++. Слушаю обо всех возможных косяках, и по щеке стекает ностальгическая слеза. А если серьёзно, то нисколько не жалею о том, что больше не пишу на плюсах.

  • @leonid998
    @leonid998 Місяць тому

    Первый пример с bool - использование неинициализированного значения - всегда UB, -Wuninitialized отловит это.

    • @yeputons
      @yeputons Місяць тому

      Да, но только в простом случае. Если хоть чуть-чуть усложнить - уже не отловит. Например, добавить код, который переменную иногда инициализирует, а иногда не инициализирует.

    • @leonid998
      @leonid998 Місяць тому

      @@yeputons ​ Да, это все очень зависит... // а точнее, clang и zig осиливают (godbolt: o4Gb8s7Tx), gcc и др. - нет.

  • @vladimir0rus
    @vladimir0rus 26 днів тому

    clang читается не как "силэнг", а как " клэнг".