C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019

Поделиться
HTML-код
  • Опубликовано: 25 авг 2024
  • 10-11 апреля 2020 в Минске - конференция CoreHard Spring, расписание и билеты: conference.cor...
    При написании больших фреймворков приходится сталкиваться с типовыми задачами, решения для которых давно известны. Однако эти решения недостаточно эффективны, и можно сделать намного лучше. О подобных эффективных трюках мы и поговорим!
    Слайды: www.slideshare...
    Join CoreHard community:
    CoreHard Telegram t.me/corehard_by
    CoreHard Facebook / corehard.by
    CoreHard Vkontakte corehardby
    CoreHard Instagram / corehard.by

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

  • @user-mr5hf2pt4r
    @user-mr5hf2pt4r 7 месяцев назад

    Прикольно получилось, даже опытный программист начал зависить от картинки на экране 😂😂😂😂

  • @ruslankhl
    @ruslankhl 2 года назад

    Спасибо за доклад

  • @user-mr5hf2pt4r
    @user-mr5hf2pt4r 7 месяцев назад

    22-00😂😂😂😂

  • @vladimirevdokimov8896
    @vladimirevdokimov8896 3 года назад +3

    Да ребята, легких путей вы не ищите.

  • @user-mi8es4ur5w
    @user-mi8es4ur5w 4 года назад

    sizeof(LazyIntedStream) равно 144 байт (MSVC2019-x86). Это много для "пустого" функционала на стеке. Возможно raw-pointer будет лучшим решением, чем std::optional.
    В обычной жизни std::ostream возникает только для сторонних библиотек.

  • @vividbw
    @vividbw 4 года назад +3

    Если в дебаге и релизе размер нативного типа различается, то двумя константами для FastPimpl не обойтись. Придётся #ifdef-ы использовать. Но это не в укор имплементации. По другому пока не сделать.

    • @user-mi8es4ur5w
      @user-mi8es4ur5w 4 года назад

      Можно взять максимальные размер и выравнивание. Ну и немного подправить validate().
      Если оверхед приемлемый, это лучше чем тонны ifdef.
      Второй вариант - использовать cmake с генерацией кода на конфигурации, плюс try_compile для вычисления реального размера.
      Минусы - когда пройдут годы и носители знания уйдут, новичкам будет что подумать вслух :)

    • @stolknovenie
      @stolknovenie 4 года назад

      Ну и в целом код получается под конкретную платформу и конкретные версии библиотек. Всё таки тут без дополнительных утилит не обойтись (например, на базе проекта clang, да и то это заработает только в том случае, если собирать результат будем тем же clang'ом, с теми же наборами флагов, окружения и т.д.).

    • @tcpp4972
      @tcpp4972 4 года назад

      ... size = ct::conditional_v;
      а в проекте в любом случае где-то уже определяется отладочный режим

  • @user-ne4bd3ry1n
    @user-ne4bd3ry1n Год назад

    неестественные взмахи руками

    • @call_nick
      @call_nick 10 месяцев назад

      За плюсы так шарят только боги, поэтому для людей такие движения кажутся неестественными

  • @Nick-yj8nj
    @Nick-yj8nj Год назад

    Интересно, а Полухин в России или уже уехал?

    • @IExSet
      @IExSet Год назад

      Уже ? А должен был уехать ? И где та райская земля, куда стремятся плюсовики ?

    • @user-ne4bd3ry1n
      @user-ne4bd3ry1n Год назад

      яндекс то уехал