C++ (N)RVO | Copy ellision | Оптимизации компилятора

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.พ. 2025

ความคิดเห็น • 23

  • @userf155
    @userf155 7 วันที่ผ่านมา +4

    Дмитрий, низкий поклон вам за популяризацию глубоких тем C++ в таком высоком качестве для умных людей! Спасибо!

  • @artefek7300
    @artefek7300 6 วันที่ผ่านมา +1

    Продолжайте дальше снимать видео, не знаю ни одного канала где настолько хорошо объясняют работу компилятора👍

  • @rottennature7492
    @rottennature7492 6 วันที่ผ่านมา

    Превьюшка огонь) Спасибо за видео, смотрю по C++ только тебя и мне очень нравится
    Читаю в электронном виде книгу Скота Майерса ровно до тех глав, которые освещал ты и жду новые видео)
    Я надеюсь что ты не остановишься лишь на одной книге

  • @РоманКондратов-г1р
    @РоманКондратов-г1р 5 วันที่ผ่านมา

    Хороший материал. Спасибо.

  • @mas0n_
    @mas0n_ 5 วันที่ผ่านมา

    Очень качественный контент, спасибо!
    Я же правильно понимаю, все эти видео по Скоту Майерсу?
    Не могли бы вы оставлять список литературы (в идеале с главами :) ), на котором основано видео?
    Мне кажется, это будет очень удобно всем, т.к. можно будет ещё глубже разобраться в теме) Заранее спасибо!

  • @JingoBo
    @JingoBo 7 วันที่ผ่านมา

    В дополнении к этому: современные компиляторы хорошо оценивают возможность инлайна функций, однако всегда это вероятностное поведение. Тут правило простое - если при вызове функции компилятор видит её тело и она относительно не большая или вообще вызывается 1 раз, то велика вероятность что функция вместо вызова будет подстановленна. Опять же все зависит от настроек оптимизации.

  • @graphmyrashkincev745
    @graphmyrashkincev745 7 วันที่ผ่านมา

    я в шоке, зашел на ютуб, чтобы rvo и nrvo чекнуть и тут видос в реках этот

  • @FeelUs
    @FeelUs 6 วันที่ผ่านมา +1

    11:54 хуже от std::move() не будет. Ну будет, если в конструкторе перемещения есть принты или какая-нибудь работа с глобальными переменными. Но если внутри конструктора перемещения только переприсваивание указателей, то компилятор соптимизирует этот вызов на уровне LLVM IR, или другого своего внутреннего предоставления. Можете проверить с -O2/-O3 и глянуть на получающийся ассемблерный код. Кароче компилятор может извратить ваш код до неузнаваемости, лишь бы его внешнее проведение осталось прежним.

  • @ZoomZo
    @ZoomZo 7 วันที่ผ่านมา

    Всё ещё лучший

  • @cavesalamander6308
    @cavesalamander6308 6 วันที่ผ่านมา

    Есть каналец "C++ weekly", там чувак в compiler explorer примеры пишет. Сразу ассемблерный код видать. Прикольно бывает.

  • @СегошкаАношка
    @СегошкаАношка 6 วันที่ผ่านมา

    Вы очень классно объясняете. Не очень понял как там std::move работает... как он там под капотом устроен, но все равно интересно)

  • @userf155
    @userf155 7 วันที่ผ่านมา

    Только не "кутэ", а "кьют", это игра букв от Qt (cute), миленький, кют, кьют.

    • @FeelUs
      @FeelUs 6 วันที่ผ่านมา

      Только кутэ только хардкор

  • @cyrilanisimov
    @cyrilanisimov 6 วันที่ผ่านมา

    Скорее всего, когда компилятор может заинлайнить функцию, работает NRVO. Если не получается, значит, копирует.

  • @cyrilanisimov
    @cyrilanisimov 6 วันที่ผ่านมา

    QMake уже даже для Крятора задепрекейчен.

  • @avengeranubis
    @avengeranubis 6 วันที่ผ่านมา

    Я конечно понимаю, что это модный и молодежный новый мем, но почему у меня каждое третье видео на ютубе - это кто-то от чего-то дуреет?

  • @rkc137
    @rkc137 7 วันที่ผ่านมา +5

    ну и бредятина, надо было на сварщика идти

  • @The_Current_World_Champion
    @The_Current_World_Champion 6 วันที่ผ่านมา

    Ещё не посадили за то, что стырил Qt?

    • @FeelUs
      @FeelUs 6 วันที่ผ่านมา

      Когда-то Qt был открытым и общедоступным.

    • @cyrilanisimov
      @cyrilanisimov 6 วันที่ผ่านมา

      @@FeelUs Он и сейчас есть. Разница в наборе компонентов и возможности линковки статических библиотек в платной версии.