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

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

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

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

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

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

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

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

    Легенда

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

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

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

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

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

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

    • @pchelnick
      @pchelnick 15 дней назад

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

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

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

    • @user-et7cm4by2t
      @user-et7cm4by2t 2 месяца назад

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

    • @user-wn7cs5bs1h
      @user-wn7cs5bs1h 2 месяца назад +2

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

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

      @@user-wn7cs5bs1h как это работает можно догадаться, но на кой чёрт это так работает?

    • @user-wn7cs5bs1h
      @user-wn7cs5bs1h 2 месяца назад +1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      @@WaldemarB-wj1nqпайтон

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

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