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

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

Комментарии • 7

  • @40Ants
    @40Ants 2 месяца назад

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

  • @tertiumorganum5665
    @tertiumorganum5665 14 дней назад

    депрессивненько. но чесскать на примерах такой код местами что по хлебалу клавиатурой можно дать. то, что оно типо вписывается в стандарт, не даёт индульгенцию, особенно учитывая, что кому то потом это поддерживать

  • @tertiumorganum5665
    @tertiumorganum5665 14 дней назад

    крч чуваки если вам ехать, юзайте го. да он чуть медленней. ну если вам шашечки - тут мля без вариков 😅

  • @leonid998
    @leonid998 3 месяца назад

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

    • @yeputons
      @yeputons 3 месяца назад +1

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

    • @leonid998
      @leonid998 3 месяца назад

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

  • @vladimir0rus
    @vladimir0rus 2 месяца назад

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