В ближайшее время мы расскажем об интересных новинках, которые появились в стандарте C++20. Сегодня речь пойдет о новом классе std::span
(промежуток).
Этот обобщенный класс является частью библиотеки контейнеров, но может быть использован в качестве основы для реализации каких-либо задач в других библиотеках STD. Объект этого класса позволяет получить ссылку на непрерывную последовательность элементов в памяти (последовательный контейнер, Си-массив), но при этом он не будет владеть им, т. е., не сможет копировать или перемещать элементы объекта на который он указывает. Чтобы работа с промежутками была более гибкая, разработчики языка наделили span возможностью изменять значения элементов исходного объекта. Это отличает std::span
от std::strig_view
(C++17).
Польза этого шаблона в том, что использование промежутков позволяет избежать ненужного копирования области памяти при передаче аргументов в функцию. Помимо этого, разработчик получает набор готовых инструментов, в виде стандартных функций шаблонов C++, и единообразное оформление программного кода, в котором реализация рутинных задач будет инкапсулирована, и можно сконцентрироваться на самом важном.
Подробнее узнать об этом классе и посмотреть примеры использования span
в программе вы можете по адресу: http://inf-w.ru/?page_id=15450
Эта страница доступна только нашим подписчикам.