Добрый день, друзья!

Чуть более 10 дней остается до старта ХХI международной С++ конференции CoreHard Autumn 2019 в Минске.

В 2015 году сообщество CoreHard провело свою первую конференцию и, с каждым годом, география спикеров и участников наших событий расширяется. Грядущая конференция соберет не просто спикеров, а настоящих практиков из Беларуси, России, Украины, Польши, Германии, Кипра, Франции, Великобритании, Израиля.

И на повестке сегодняшнего дня доклад «The C++ rvalue lifetime disaster» от Co-Founder and Technical Director of think-cell Arno Schödl (Berlin, Germany):

«Rvalue references have been with us since C++11. They have originally been introduced to make moving objects more efficient: the object an rvalue reference references is assumed to go out of scope soon and thus may have its resources scavenged without harm. The C++ standard library, for example std::cref or std::ranges, makes use of yet another aspect of rvalue references: since they go out of scope soon, it is assumed unsafe to hold on to them beyond the scope of the current function, while lvalue references are considered safe. We, too, found this assumption to be very useful for smart memory management, in particular in generic code. Unfortunately, the C++ language itself violates this assumption in at least two places. First, rvalues bind to const&. This means that innocent-looking functions taking a parameter by const& and passing it through in some way silently convert rvalues to lvalue references, hiding any lifetime limitation of the rvalues. std::min/max are two such examples. Worse still, every accessor member function returning a const& to a member suffers from this problem. Second, temporary lifetime extension is meant to make binding a temporary to a reference safe by extending the lifetime of the temporary. But this only works as long as the temporary is still a prvalue. If the temporary has been passed through a function, even it has been correctly passed through by rvalue reference, lifetime extension will no longer be invoked and we get a dangling reference. These problems are not merely theoretical. We have had hard-to-find memory corruption in our code because of these problems. In this talk, I will describe the problems in detail, present our library-only approach to mitigate the problems, and finally, make an impossible-to-ever-get-into-the-standard proposal of how to put things right».

About speaker: Arno is responsible for the design, architecture and development of all our software products. He oversees think-cell’s R&D team, Quality Assurance and Customer Care. Before founding think-cell, Arno worked at Microsoft Research and McKinsey. Arno studied computer science and management and holds a Ph.D. from the Georgia Institute of Technology with a specialization in Computer Graphics.

Больше докладов CoreHard Autumn 2019 на сайте конференции.

КУПИТЬ БИЛЕТ

Друзья, напоминаем вам, что за день до конференции, 29 ноября, на той же площадке состоится 4 мастер-класса:

✚✚ Антон Полухин — «Шустрый и современный C++»
✚✚ Вадим Винник — «Что используется каждый день, но остаётся малознакомым в С++: rvalue references, std::move, copy elision и не только»
✚✚ Mateusz Pusz — «Modern C++ idioms»
✚✚ Павел Филонов — «Continuous integration для C++ разработчика»

Ознакомиться с подробным описанием мастер-классов можно тут.

На нашем YouTube-канале Вы можете посмотреть видео с весенней конференции CoreHard Spring 2019.
Также, участникам сообщества мы предоставляем персональную скидку в 15%. Присоединяйтесь к активному Telegram-чату и да будет Вам скидка😎.

Присоединяйтесь к чатам сообщества ⤵

CoreHard Telegram
CoreHard Facebook
CoreHard Vkontakte
CoreHard Instagram
CoreHard Conference

До скорых встреч, друзья!