Современный C++: новые возможности и лучшие методологии (лекция 2)
ฝัง
- เผยแพร่เมื่อ 10 ก.พ. 2025
- Лекция Валерия Лесина (SimLabs, СПбАУ РАН) в Лектории CS центра (compscicenter.....
Аннотация: в этой части рассказано о нововведениях в языке C++. В основном, о встроенных возможностях каррирования и замыкания функций, что делает крайне удобным выполнение обратных вызовов (callbacks). Героями этой части стали bind, function и примкнувшие к ним lamda-функции из стандарта C++11/14. Упомянуты некоторые небольшие, но особенно полезные возможности нового C++ (от простых, вроде delegating constructors, до более продвинутых, как, например, использование шаблонного typedef для идиомы SFINAE).
плейсхоледры в одном неймпспейсе лежат (std::placeholders) да и для виртуальных функций бинд на гцц 5.4 отлично работает
Bind морально устарел. Используйте лямбда- выражения, которые более функциональны. У Скотта Майерса в "Эффективный С++" целый параграф посвящен преимуществам лямбда- выражений над биндами. К тому же в bind не удастся переместить объект.
void set_timer(ITimerHandler* handler) для "сущ. классов" - а в чем проблема создать класс Hundler, который отнаследован от ITimerHandler, имеет поле с сущ классом и по вызову update обновляет объект сущ класса?