Разбираем
std::span в C++23 как «view» на непрерывный блок памяти: чем он отличается от владеющих контейнеров, как работает
const-контракт через
std::span<const T>, откуда безопасно брать
span (массивы,
std::array,
std::vector, строка через
data()/
size()), какие повседневные операции нужны чаще всего и как удобно резать данные через
subspan() без копирования. В конце — список типичных ошибок и как их избежать.