005. Немного магии для C++14 - Антон Полухин

Поделиться
HTML-код
  • Опубликовано: 29 окт 2024
  • Антон Полухин - Автор книги "Boost C++ Application Development Cookbook", разрабатывает и поддерживает библиотеки Boost, в том числе Boost.DLL, Boost.TypeIndex, Boost.Any, Boost.LexicalCast. Представитель РГ 21 C++ на международных заседаниях комитета по стандартизации С++. Автор нескольких принятых предложений к стандарту языка.
    В докладе Антон рассказывает о новом приёме мета-программирования, позволяющем в С++14 создавать универсальные методы под любые POD структуры.

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

  • @amyasnikov
    @amyasnikov 8 лет назад +19

    Класс. Ничего не понял)) Нужно глубже изучать С++.

    • @Sanchellios
      @Sanchellios 8 лет назад +2

      нужно ли?

    • @inbuckswetrust7357
      @inbuckswetrust7357 6 лет назад

      После этого видоса я начинаю понимать людей которые пишут на C и не пользуют фичи С++ до этого не понимал :)

    • @VioletGiraffe
      @VioletGiraffe 5 лет назад +6

      @@inbuckswetrust7357 ох уж эти студенты, не осилившие С++...

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

      @@VioletGiraffe Ох уж эти гуру осилившие брэйнфак ! :-)

  • @burannah
    @burannah 8 лет назад +5

    Я прозрел!

  • @Alexander-mj3jk
    @Alexander-mj3jk 2 года назад

    называется - когда в стандарт не добавили функции size_t get_fields_count().

  • @yuryzelyaev
    @yuryzelyaev 8 лет назад +2

    Количество битовых полей может быть больше, чем sizeof

    • @sergeypanin4962
      @sergeypanin4962 8 лет назад

      Это правда, но неважно в данном случае, и так не все обрабатывает

    • @AntonyPolukhin
      @AntonyPolukhin 8 лет назад +2

      Верно, поэтому в библиотеке результат sizeof умножается на 8 (макс 8 битовых полей на 1 байт).
      Ещё, по идее, надо добавлять 1 т.к. наследование от пустого базового класса не меняет PODness (С++17) и не меняет размер класса (С++11). Но у меня всё не доходят руки протестировать библиотеку на C++17.

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

    К сожалению в плюсах всё делается через одно место. Посмотрите как рефлексия и генерация кода устроена в нормальных языках - там просто код на этом же языке, а в С++ это всегда набор цирковых трюков с зубодробительным синтаксисом. Upd. Антон всё равно крут ! C++ извращённая, но отличная разминка для умных 🙂

    • @АлександрКуликов-ж8к
      @АлександрКуликов-ж8к Год назад +1

      Увы пока что да. Но постепенно всё приедет. А вот другие языки, до скорости С++ могут и не дотянуть.

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

      @@АлександрКуликов-ж8к Хоть это и не просто, я с вами 🙂

  • @VeloVetal
    @VeloVetal 4 года назад +1

    зачем ты постоянно зеваешь, я тоже начинаю зевать

  • @dmitryopokin8651
    @dmitryopokin8651 6 лет назад +3

    Снова велосипеды, ну нахрен. Этож сколько оно компилирует всю эту компаил магию. Вообщем не понимаю в чем проблема завезти это в сам язык через метаклассы какие и не мучить ежика. Ну и к слову могли бы дать ссылку на код.

    • @SharapovAlexey
      @SharapovAlexey 6 лет назад +1

      Так метаклассы и будут, но в c++23

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

      @@SharapovAlexey Уже не 23, а неизвестно когда, если вообще когда-либо.

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

      @@maksimivanov5417 почему?

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

      а ты думаешь на чём питон написан или так какой то другой код для метаклассов?

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

      @@lemmenmin7676 Потому что предложение для Стандарта по Metaclasses зависит от предложения по Reflection и из-за этого ревьюится вяло. Что касается Reflection, то он всё ещё в бесконечных ревью. Сейчас уже середина 22-го.

  • @oleg00013
    @oleg00013 5 лет назад +6

    После таких видео ясно - давно пора уходить с плюсов. Не дай Бог такой код попадет ко мне

    • @VioletGiraffe
      @VioletGiraffe 5 лет назад

      После таких комментариев ясно, что вы не понимаете С++, и вам действительно незачем на нём программировать.

    • @JohnWickMovie
      @JohnWickMovie 4 года назад +4

      @@VioletGiraffe Код не должен быть головоломкой. Знание стандарта и хитровыебаное его использование не делает из тебя Джона Кармака

    • @calmsam2217
      @calmsam2217 3 года назад +1

      @@VioletGiraffe Напиши это ещё под другими комментариями и желательно 100 раз каждому, а потом Торвальдсу ещё не забудь написать, что он "дурак" и презирает С++

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

      @@VioletGiraffe Аргумент уровня: "ты не понимаешь Brainf*ck настолько чтобы достичь просветления". А надо ?

    • @keshkek
      @keshkek Год назад +1

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

  • @SmileGobo
    @SmileGobo 6 лет назад +2

    Шаблоны это мощь, но очень больно...

    • @VioletGiraffe
      @VioletGiraffe 5 лет назад

      Если больно, нужно подучить С++, наверное.

    • @IExSet
      @IExSet 2 года назад +1

      @@VioletGiraffe Можно и ходить научиться на зубочистках, но надо ли ?

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

      @@IExSet, ну иди дальше говнокодить на JS, зачем ты открыл лекцию по С++ и срёшь в комментариях?

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

      @@VioletGiraffe Тот же вопрос к тебе, "радужный" жирафик, зачем ты срёшь тут в комментариях ? Как тебя извиняет, что ты адвокатствуешь C++ ? И откуда это высокомерие, почему ты решил обосрать JS ? Думаешь он проще C++ и не позволяет конструировать более сложные концепции ? А может это ты говнокодер, неумеха "программист" одного единственного языка, не умеешь в JS и поэтому у тебя мучают комплексы ? 🙂C++ - один из инструментов, JS другой. Расскажи нам, почему надо выбирать C++, там где хорош JS и выбирать JS, там где лучше подойдёт C++, однобокий ты наш жирафик 🙂