Обновить

Комментарии 2

Спасибо за вводную статью!

Хочется добавить, что std::mdspan - штука еще более универсальная, чем кажется на первый взгляд.

Пользовательские стратегии Extents, LayoutPolicy, AccessorPolicy позволяют:

  • отображать разные комбинации индексов на одни и те же элементы низлежащего массива (например, для симметричных матриц)

  • использовать вместо массива вообще произвольную структуру данных

  • не использовать вообще никакую память и вычислять значения на лету чистой функцией

  • вычислять значения на лету с побочными эффектами - например, обращаясь к операционной системе или датчику робота

  • владеть памятью/ресурсом, например, задействовав std::vector / std::shared_ptr<const std::vector<T>> в качестве data_handle_type

  • вычислять значения асинхронно, Карл!


И всё это - за единым статическим интерфейсом.

Примеры вдохновлены докладом Griswald Brooks на CppCon 2024

Как же я был удивлён в своё время, что такого прокси-доступа не было в стандарте! Пришлось и пока приходится делать самописные обёртки

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS