Константин Владимиров - Семантические процессы в C++

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025
  • Ближайшая конференция - C++ Russia 2025, 20-21 марта, Москва + online. Подробности и билеты: jrg.su/9Sszhd
    - -
    В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if - это всегда if.
    Но когда мы говорим о семантике, мы сталкиваемся с необходимостью для компилятора что-то сделать или что-то выяснить: разрешить имя, инстанцировать шаблон, вывести тип, вычислить константное выражение. Можно сказать что в каждый такой момент мы стартуем некий процесс, развивающийся по своим правилам. Этот доклад посвящен описанию взаимодействующих семантических процессов в языке, как с точки зрения внутренностей компилятора, так и с точки зрения стандарта языка.
    #lang #metaprogramming

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

  • @MakinsxXx
    @MakinsxXx Год назад +24

    Легенда

  • @SmoukingMouse
    @SmoukingMouse 9 месяцев назад +13

    Спасибо за видео, Константин как всегда хорош!

  • @MikhailGoncharov-tl4cr
    @MikhailGoncharov-tl4cr 9 месяцев назад +5

    захватывающее видео. потому как автор любит своё дело и разбирается в нём.

  • @DART2WADER
    @DART2WADER 9 месяцев назад +10

    Так увлечённо, только он рассказывает.

  • @cdeblog
    @cdeblog 6 месяцев назад +2

    В очередной раз убеждаешься, что с++ хоть и мощный язык, но сделан через одно место (жопу, есть хотите уточнений) сначала придумывают странные конструкции, затем в следующих версиях стандартов героически борятся с их проблемами и в итоге язык обрастает кучей очень запутанных правил и исключений😢

    • @apivovarov2
      @apivovarov2 5 месяцев назад +1

      осилить с++ могут не только лишь все

    • @apivovarov2
      @apivovarov2 5 месяцев назад

      могу порекомендовать раст, там все хорошо и таких проблем нет

    • @MathPTU
      @MathPTU 5 месяцев назад

      ++ иногда хочется спросить, о чем они думали, когда это вводили

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

      Чем сложнее задача - тем больше денег можно заработать. 😊

  • @alexeykononov5596
    @alexeykononov5596 9 месяцев назад +3

    кажется автор задумал написать свой компилятор 🤔

  • @milbrus735
    @milbrus735 9 месяцев назад +1

    А можно пояснительную бригаду на 36:17 с какого перепугу на месте "int I = fod(X)" будет вызван N::foo, а не ::foo ? Мы ведь не в пространстве имен N и не должны видеть эту функцию

    • @1001.1-y
      @1001.1-y 9 месяцев назад

      я могу ошибаться, но по порядку ADL вроде как работает сначала с пространством аргумента, потом с обрамляющим пространством, и только потом с глобальным. Т.е. по приоритету разрешение перегрузки сначала найдёт полностью подходящую функцию в пространстве аргумента, т.е. N::foo. Но это не точно (сорян, я тоже нуб в с++)

    • @АлексейКутасов-п7и
      @АлексейКутасов-п7и 9 месяцев назад +2

      ::foo не подходит по типу аргумента, поэтому начнётся ADL
      X типа N::S в namespace N, поэтому N::foo попадает в overload set

    • @milbrus735
      @milbrus735 9 месяцев назад

      @@АлексейКутасов-п7и как это работает можно догадаться, но на кой чёрт это так работает?

    • @АлексейКутасов-п7и
      @АлексейКутасов-п7и 9 месяцев назад +1

      @@milbrus735 чтобы работал hello world
      std::operator

    • @apivovarov2
      @apivovarov2 5 месяцев назад

      попробуйте этот код в кодболте.

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

    Я напротив - наиболее внимательно читаю как раз этот, так называемый "птичий язык". А остальное - можно бегло, по диагонали пробежаться.

  • @stanislavstanislavius7618
    @stanislavstanislavius7618 9 месяцев назад +4

    1:14
    А все остальные получили неуд))

    • @pchelnick
      @pchelnick 7 месяцев назад

      Учился у преподши, которая считала, что у нее на экзамене по матану 5 получить не может никто, 4-ку должен получить только один студент из группы, сколько то там троёк на группу (не помню уже, две или три), а остальные на пересдачу, а там такие же правила....

  • @Konstantin_Evdokimov
    @Konstantin_Evdokimov 8 месяцев назад

    И на грамматиках ИИ ничего бы не понимал потому что язык - это лишь средство выражения мысли, инструмент, а не сама мысль.

  • @alexmid
    @alexmid 9 месяцев назад +3

    разбудите меня когда с С++ все станет хорошо, а до того не трогайте меня вообще!

    • @WaldemarB-wj1nq
      @WaldemarB-wj1nq 9 месяцев назад +3

      а в каком языке все хорошо?

    • @Sky-pg8ot
      @Sky-pg8ot 9 месяцев назад

      ​@@WaldemarB-wj1nqДа, кстати

    • @stanislavstanislavius7618
      @stanislavstanislavius7618 9 месяцев назад

      ​@@WaldemarB-wj1nq, в асемблере - там все прекрасно)

    • @maelstrom254
      @maelstrom254 9 месяцев назад

      @@WaldemarB-wj1nqпайтон

    • @evgenyilyin3727
      @evgenyilyin3727 Месяц назад

      @@WaldemarB-wj1nq В обычном Си.

  • @sdfdfrgfghgfh
    @sdfdfrgfghgfh 9 месяцев назад

    одну 3, остальные колы и пары

  • @pilotnet1
    @pilotnet1 9 месяцев назад

    си плас плас 🤠кавбой

  • @MakarenkoSasha
    @MakarenkoSasha 9 месяцев назад

    завидую людям которые в этой теме, как рыба в воде..

    • @evgenyilyin3727
      @evgenyilyin3727 Месяц назад

      Не стоит завидовать тем, которых нет. Поверьте, они "в теме" определенной темы, шаг влево и они лезут проверять на конкретном компайлере в силу неуверенности.