Наконец-то выложили один доклад на C++Russia прошлого года, который я хотел бы всем порекомендовать.



Увы, на конференции в прошлом году было очень много шлака, не имеющего даже отношения к C++. И тем ценнее увидеть очень серьёзный и интересный доклад, в целом мирового уровня. Тем более от столь молодого спикера.



Итак, встречаем:



Сергей Добычин — constexpr-аллокатор для контейнеров стандартной библиотеки



https://www.youtube.com/watch?v=mwy15RAhl8I



2:55 Начало. Transient выделения памяти при компиляции. Невозможность non-transient в C++

8:45 Подробный разбор предложения P0639 по CE аллокатору

11:30 Проблемы с размером буфера

18:16 Двухэтапное определения размера буфера во время компиляции

20:40 Постановка задачи: как сделать чтобы CE аллокатор сам определял размер буфера? Общий вид решения.

23:13 Интересные детали реализации

27:45 Передача инициализирующего значения через типы (разбор P2781)

31:20 Завершение: QR код на полное решение в C++20 и примеры

34:08 Вопросы



Интересно в этом докладе также то, что я немного помог в его создании. До конференции Сергей обратился ко мне вот с таким кодом и спросил баг ли это в компиляторе.



https://godbolt.org/z/EcKhhGfzr



Я немного подумал и мы с ним вместе доминимизировали это до вот такого кейса.



https://godbolt.org/z/69PEPojzo



Тут проблема стала очевидной и стало очевидным, что она и впрямь в компиляторе.



После этого я зафайлил эту проблему в GCC и она до сих пор висит там и ждёт своего героя.



https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115233



Но пока не дождалась.



#talks