Для чего нужно использовать gsl :: multi_span?

В основных принципах C ++ упоминаются промежутки, а не «множественные пролеты». Но — я вижу, что реализация Microsoft GSL имеет multi_span учебный класс

template <
typename ValueType,
std::ptrdiff_t FirstDimension,
std::ptrdiff_t... RestDimensions
>
class multi_span { ... };

Итак, очевидно, что это своего рода многомерная версия gsl::span, Но что это должно означать? Зачем нам нужен этот многомерный промежуток, а точнее — когда мы будем его использовать? Я не могу найти документацию по этому вопросу.

4

Решение

Короче говоря, это охват непрерывной части памяти, которая представляет собой многомерный массив.

Вот пример использования:

int data[6] = {0, 1, 2, 3, 4, 5};
multi_span<int, 2, 3> span{data, 6};
std::cout << span[1][1] << '\n'; //Outputs 4

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

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector