Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Terminology and style guidelines

Boost , Chapter 1. Range 2.0 , Chapter 1. Range 2.0

Boost C++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext

Использование последовательной терминологии так же важно для Ranges и алгоритмов на основе диапазона, как для итераторов и алгоритмов на основе итератора. Если принимается обычный набор имен, мы можем избежать недоразумений и написать типовые прототипы функций, которые являются самодокументирование.

Поскольку диапазоны характеризуются определенным типом итератора, мы получаем тип диапазона для каждого типа итератора. Таким образом, мы можем говорить о следующих типах диапазонов:

Обратите внимание, как мы использовали категории из нового стиля итераторов.

Обратите внимание, что итератор (и, следовательно, диапазон) имеет один Траверсал собственность и одно или несколько свойств из категории доступ к стоимости. Так что на самом деле мы будем в основном говорить о таких смесях, как

  • Случайный доступ считываемый диапазон
  • Перенаправленный диапазон значения

По соглашению, мы всегда должны указать Траверсал собственность сначала как сделано выше. Это кажется разумным, так как будет только один траверсальный собственность, но, возможно, многие доступ к стоимости свойства.

Однако было бы разумно указать только одну категорию, если другая категория не имеет значения. Например, iterator_range может быть построен из Forward Range. Это означает, что нам не все равно, что доступ к стоимости свойства, которыми обладает Range. Точно так же «Readable Range» будет самым низким из возможных traversal собственности (Single Pass).

В качестве другого примера рассмотрим, как мы укажем интерфейс std::sort(). Алгоритмы, как правило, более громоздки для определения интерфейса, так как Травы и доступ к стоимости свойства должны быть точно определены. Версия на итераторе выглядит так:

template< class RandomAccessTraversalReadableWritableIterator >
void sort( RandomAccessTraversalReadableWritableIterator first,
           RandomAccessTraversalReadableWritableIterator last );

Для диапазонов становится интерфейс

template< class RandomAccessReadableWritableRange >
void sort( RandomAccessReadableWritableRange& r );


PrevUpHomeNext

Статья Terminology and style guidelines раздела Chapter 1. Range 2.0 Chapter 1. Range 2.0 может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 1. Range 2.0 ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 16:57:01/0.0038108825683594/0