Myvideo

Guest

Login

Сергей Талантов Опасность устарела, неопределенность недопустима: исследуем изменения в undefined behavior в С++20/23/26

Uploaded By: Myvideo
816 views
0
0 votes
0

Ближайшая конференция C Russia: #cpp #cpprussia #IT #conference #jugrugroup В современных стандартах С стало меньше UB. Разберем на конкретных кейсах. * Начиная с С 20 отрицательные целые числа обязательно должны быть представлены в дополнительном коде. Это сокращает количество UB в битовых операциях и не только. * Введение std::ssize, возвращающего знаковый размер контейнеров, уменьшает количество ошибок и UB в циклах. * Расширение времени жизни временных объектов в циклах for, появившееся в С 23, решает неочевидные проблемы. * Казалось бы, мелочь, но инициализация std::string нулевым указателем раньше была UB, a теперь запрещена. * В С 23 появился эксклюзивный режим открытия файла (O_EXCL), что решает проблему гонок (time-of-check to time-of-use). * Будет ли введена арифметика с насыщением в С 26? Некоторые конструкции языка признаются небезопасными и устаревшими, также пройдемся по ним: * Осталось ли что-то от volatile? * Можно ли теперь делать неявный захват this по значению в лямбдах? * Какие операции с enum теперь не в почете. Скачать презентацию с сайта —

Share with your friends

Link:

Embed:

Video Size:

Custom size:

x

Add to Playlist:

Favorites
My Playlist
Watch Later