C++ lectures at MIPT (in Russian). Lecture 14. Allocators, part 1

preview_player
Показать описание
Лекции в магистратуре МФТИ по C++ на русском языке.

В этой лекции мы начинаем аллокаторы. Мы поговорим о дурной славе аллокаторов, об их потрясающих возможностях и о том как всё это работало до C++17

Лектор: Константин Владимиров
Дата лекции: 24 марта 2020 года
Звук: Дмитрий Рябцев

Errata:

* здесь пока пусто
Рекомендации по теме
Комментарии
Автор

1) Явная арена проигрывает в удобстве использования (например, из-за раздельного времени жизни тяжело вернуть такой контейнер из функции)
2) Стандартная библиотека не может реализовать Small Buffer Optimization для std::vector. Причина заключается в том, что итераторы не должны инвалидироваться при перемещении, а при хранении буфера внутри объекта такое поведение сделать невозможно
Видимо, из-за всех этих причин SmallVector в llvm реализован как отдельный контейнер (пользователю которого не предоставляются такие строгие гарантии по инвалидации итераторов).

СергейКачков-пь
Автор

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

АлександрСемука-сб
Автор

Stateless-аллокаторы, возвращающие голые указатели, требуются при наличии в системе нескольких способов выделения памяти (например, из Paged и Non-Paged пулов в ядре Windows). К сожалению, инкапсуляция, обеспечиваемая operator new, только вредит...

dymok
Автор

1:05:30 Слайд 36 - опечатка в параметре operator=: conStainer

viacheslavbarkov
Автор

Добрый день! Выложены ли куда-то примеры с ваших лекций? Было бы удобно видеть их на GitHub.

nikitamikhaylov