005. Немного магии для C++14 - Антон Полухин
HTML-код
- Опубликовано: 29 окт 2024
- Антон Полухин - Автор книги "Boost C++ Application Development Cookbook", разрабатывает и поддерживает библиотеки Boost, в том числе Boost.DLL, Boost.TypeIndex, Boost.Any, Boost.LexicalCast. Представитель РГ 21 C++ на международных заседаниях комитета по стандартизации С++. Автор нескольких принятых предложений к стандарту языка.
В докладе Антон рассказывает о новом приёме мета-программирования, позволяющем в С++14 создавать универсальные методы под любые POD структуры.
Класс. Ничего не понял)) Нужно глубже изучать С++.
нужно ли?
После этого видоса я начинаю понимать людей которые пишут на C и не пользуют фичи С++ до этого не понимал :)
@@inbuckswetrust7357 ох уж эти студенты, не осилившие С++...
@@VioletGiraffe Ох уж эти гуру осилившие брэйнфак ! :-)
Я прозрел!
называется - когда в стандарт не добавили функции size_t get_fields_count().
Количество битовых полей может быть больше, чем sizeof
Это правда, но неважно в данном случае, и так не все обрабатывает
Верно, поэтому в библиотеке результат sizeof умножается на 8 (макс 8 битовых полей на 1 байт).
Ещё, по идее, надо добавлять 1 т.к. наследование от пустого базового класса не меняет PODness (С++17) и не меняет размер класса (С++11). Но у меня всё не доходят руки протестировать библиотеку на C++17.
К сожалению в плюсах всё делается через одно место. Посмотрите как рефлексия и генерация кода устроена в нормальных языках - там просто код на этом же языке, а в С++ это всегда набор цирковых трюков с зубодробительным синтаксисом. Upd. Антон всё равно крут ! C++ извращённая, но отличная разминка для умных 🙂
Увы пока что да. Но постепенно всё приедет. А вот другие языки, до скорости С++ могут и не дотянуть.
@@АлександрКуликов-ж8к Хоть это и не просто, я с вами 🙂
зачем ты постоянно зеваешь, я тоже начинаю зевать
Снова велосипеды, ну нахрен. Этож сколько оно компилирует всю эту компаил магию. Вообщем не понимаю в чем проблема завезти это в сам язык через метаклассы какие и не мучить ежика. Ну и к слову могли бы дать ссылку на код.
Так метаклассы и будут, но в c++23
@@SharapovAlexey Уже не 23, а неизвестно когда, если вообще когда-либо.
@@maksimivanov5417 почему?
а ты думаешь на чём питон написан или так какой то другой код для метаклассов?
@@lemmenmin7676 Потому что предложение для Стандарта по Metaclasses зависит от предложения по Reflection и из-за этого ревьюится вяло. Что касается Reflection, то он всё ещё в бесконечных ревью. Сейчас уже середина 22-го.
После таких видео ясно - давно пора уходить с плюсов. Не дай Бог такой код попадет ко мне
После таких комментариев ясно, что вы не понимаете С++, и вам действительно незачем на нём программировать.
@@VioletGiraffe Код не должен быть головоломкой. Знание стандарта и хитровыебаное его использование не делает из тебя Джона Кармака
@@VioletGiraffe Напиши это ещё под другими комментариями и желательно 100 раз каждому, а потом Торвальдсу ещё не забудь написать, что он "дурак" и презирает С++
@@VioletGiraffe Аргумент уровня: "ты не понимаешь Brainf*ck настолько чтобы достичь просветления". А надо ?
это код библиотеки, а не обычный пользовательский код - вам не придется его отлаживать, так как он нормально работает. и если кому-то почему-то надо будет его смотреть, то не вам
Шаблоны это мощь, но очень больно...
Если больно, нужно подучить С++, наверное.
@@VioletGiraffe Можно и ходить научиться на зубочистках, но надо ли ?
@@IExSet, ну иди дальше говнокодить на JS, зачем ты открыл лекцию по С++ и срёшь в комментариях?
@@VioletGiraffe Тот же вопрос к тебе, "радужный" жирафик, зачем ты срёшь тут в комментариях ? Как тебя извиняет, что ты адвокатствуешь C++ ? И откуда это высокомерие, почему ты решил обосрать JS ? Думаешь он проще C++ и не позволяет конструировать более сложные концепции ? А может это ты говнокодер, неумеха "программист" одного единственного языка, не умеешь в JS и поэтому у тебя мучают комплексы ? 🙂C++ - один из инструментов, JS другой. Расскажи нам, почему надо выбирать C++, там где хорош JS и выбирать JS, там где лучше подойдёт C++, однобокий ты наш жирафик 🙂