Telegram Group & Telegram Channel
Media is too big
VIEW IN TELEGRAM
Сергей Добычин — constexpr-аллокатор для контейнеров стандартной библиотеки

Одна из главных фич, которая выделяет С++ среди других языков — константные вычисления. С каждым новым стандартом языка поддержка константных вычислений становится все более продвинутой.

В С++ 20 появились аллокации памяти в constexpr-выражениях, и стало возможным использовать std::vector и std::string в константных выражениях.

Но есть одно но: использовать их можно только внутри constexpr, из constexpr-функции нельзя вернуть std::string или std::vector.

В докладе рассмотрели, как, используя только лишь возможности С++23, написать аллокатор, с помощью которого можно реализовать top-level constexpr std::string, std::vector и остальные контейнеры стандартной библиотеки.

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 Вопросы

источник

#cpp #programming

👉 @cpp_lib



tg-me.com/cpp_lib/1955
Create:
Last Update:

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

Одна из главных фич, которая выделяет С++ среди других языков — константные вычисления. С каждым новым стандартом языка поддержка константных вычислений становится все более продвинутой.

В С++ 20 появились аллокации памяти в constexpr-выражениях, и стало возможным использовать std::vector и std::string в константных выражениях.

Но есть одно но: использовать их можно только внутри constexpr, из constexpr-функции нельзя вернуть std::string или std::vector.

В докладе рассмотрели, как, используя только лишь возможности С++23, написать аллокатор, с помощью которого можно реализовать top-level constexpr std::string, std::vector и остальные контейнеры стандартной библиотеки.

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 Вопросы

источник

#cpp #programming

👉 @cpp_lib

BY Библиотека C/C++ разработчика


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/cpp_lib/1955

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

How Does Bitcoin Mining Work?

Bitcoin mining is the process of adding new transactions to the Bitcoin blockchain. It’s a tough job. People who choose to mine Bitcoin use a process called proof of work, deploying computers in a race to solve mathematical puzzles that verify transactions.To entice miners to keep racing to solve the puzzles and support the overall system, the Bitcoin code rewards miners with new Bitcoins. “This is how new coins are created” and new transactions are added to the blockchain, says Okoro.

telegram from ua


Telegram Библиотека C/C++ разработчика
FROM USA