Олег Фатхиев - Эволюция метапрограммирования: как правильно работать со списками типов

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ค. 2019
  • Подробнее о конференции C++ Russia: jrg.su/W8skjE
    - -
    . . . Глубокий рассказ о метапрограммировании в ретроспективе. Обсудим общие подходы в метапрограммировании, а затем перейдём к спискам типов. По шагам напишем небольшую библиотеку для работы со списками типов, похожую на Boost.Hana. Для каждой проблемы рассмотрим несколько возможных решений: от использования устаревших, но не менее интересных подходов из C++98/03 до применения продвинутых техник из C++17 и даже немного из C++20.
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @alex_s_ciframi
    @alex_s_ciframi ปีที่แล้ว +2

    44:21
    (void)Is
    - нынче моДно записывать так :)
    std::ignore=Is;

  • @FantomX932
    @FantomX932 4 ปีที่แล้ว +2

    super nice!

  • @timurtsotniashvili2311
    @timurtsotniashvili2311 3 ปีที่แล้ว +4

    Очень хороший доклад! И Вы, Олег, младший разработчик? :))

  • @pointless1978
    @pointless1978 5 ปีที่แล้ว +3

    really nice.

    • @debugx1
      @debugx1 5 ปีที่แล้ว +1

      Где можно презу скачать?

  • @MrDimonsky
    @MrDimonsky 2 ปีที่แล้ว +1

    4:05 using type2 = typename foo

  • @idiotsiuda
    @idiotsiuda ปีที่แล้ว +1

    10:18 Что значит "Так не надо делать."? Такая формулировка не применима в отношении списка типов, потому что на слайде изображен нормальный список типов и никак особо по-другому написать его нельзя. На следующем слайде код пака типов. Пак типов это не список типов. Возможно, имелось ввиду, что следует использовать пак типов вместо списка везде, где это возможно, но вместо этого пак типов обзывается списком, хотя это принципиально некорректно.

  • @mangusta134
    @mangusta134 3 ปีที่แล้ว +1

    методично и системно, очень понравилось

  • @sergeyinozemcev1070
    @sergeyinozemcev1070 3 ปีที่แล้ว

    Очень здорово! А можно еще продолжение с функциями min/max, sort, swap ?!

    • @idiotsiuda
      @idiotsiuda ปีที่แล้ว

      Что такое min/max для типов по-вашему?

    • @sergeyinozemcev1070
      @sergeyinozemcev1070 ปีที่แล้ว

      @@idiotsiuda Уже толком не помню о чем речь, но по идее min - минимальное значение из списка, max - максимальное.

  • @user-zv9zr4xh8r
    @user-zv9zr4xh8r 2 ปีที่แล้ว

    Visual Studio 2019 не может выбрать оператор сравнения если типы структур сверточные и при этом совпадают

  • @faritavtakhov5115
    @faritavtakhov5115 2 ปีที่แล้ว

    второй static_assert из find_if не сработает внутри шаблонной функции. typename part_caller::type упадет с ошибкой :) Это можно обойти? Не очень полезная библиотечка получается с такими ограничениями

  • @sergeyinozemcev1070
    @sergeyinozemcev1070 3 ปีที่แล้ว

    А как можно связаться с Олегом? Почему то это выражение у меня не работает. Собираю в Visual Studio их компилятором.

  • @astmix1337
    @astmix1337 3 ปีที่แล้ว

    generate best не будет работать, если нужно создать reference: generate()