В чем разница между пройденным интервалом & lt; T & gt; и std :: array в качестве аргументов?

В его Основные положения C ++, Бьярн Страуструп рекомендует использовать span при передаче массивов по ссылке. Почему бы просто не передать объект std :: array?

6

Решение

  1. Переходя std::array по значению будет копирование их. Точка gsl::span является то, что функция, принимающая их, ссылается на существующий массив данных.

  2. gsl::span способен принимать массивы заданных размеров во время выполнения. std::array исправлено во время компиляции.

  3. gsl::span не волнует, какой тип владеет массивом; это просто указатель + размер. Так что spanна основе интерфейса могут быть поданы данные из std::vector, QVectorи многие другие. std::array основанный интерфейс требует что вы используете этот конкретный контейнер.

10

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

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

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