![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Iterator ArchetypeBoost , ,
|
Author: | Дэвид Абрахамс, Джереми Сик, Томас Витт | |||
---|---|---|---|---|
Contact: | Типы категорий доступа соответствуют следующим стандартным комбинациям концепций доступа итератора:
readable_iterator_t := Readable Iterator writable_iterator_t := Writeable Iterator readable_writable_iterator_t := Readable Iterator & Writeable Iterator & Swappable Iterator readable_lvalue_iterator_t := Readable Iterator & Lvalue Iterator writeable_lvalue_iterator_t := Readable Iterator & Writeable Iterator & Swappable Iterator & Lvalue Iterator iterator_archetype RequirementsКлассификацияАргумент должен быть одним из заданных тегов категории доступа.Траверсальная категориядолжен быть одним из стандартных тегов обхода.ЦенностьТип должен удовлетворять требованиям концепции итератора, указаннымиТраверсалКатегориякак подразумеваемые вложенными типами черт. iterator_archetype Modelsитератор_архетипмоделирует понятия итератора, определенныеКатегория доступаиТраверсалКатегорияаргументы.iterator_archetypeне моделирует никаких других концепций доступа или более производных концепций обхода. TraitsТипы вложенных признаков определяются следующим образом: if (AccessCategory == readable_iterator_t) value_type = Value reference = Value pointer = Value* else if (AccessCategory == writable_iterator_t) value_type = void reference = void pointer = void else if (AccessCategory == readable_writable_iterator_t) value_type = Value reference := A type X that is convertible to Value for which the following expression is valid. Given an object x of type X and v of type Value. x = v pointer = Value* else if (AccessCategory == readable_lvalue_iterator_t) value_type = Value reference = Value const& pointer = Value const* else if (AccessCategory == writable_lvalue_iterator_t) value_type = Value reference = Value& pointer = Value* if ( TraversalCategory is convertible to forward_traversal_tag ) difference_type := ptrdiff_t else difference_type := unspecified type iterator_category := A type X satisfying the following two constraints: 1. X is convertible to X1, and not to any more-derived type, where X1 is defined by: if (reference is a reference type && TraversalCategory is convertible to forward_traversal_tag) { if (TraversalCategory is convertible to random_access_traversal_tag) X1 = random_access_iterator_tag else if (TraversalCategory is convertible to bidirectional_traversal_tag) X1 = bidirectional_iterator_tag else X1 = forward_iterator_tag } else { if (TraversalCategory is convertible to single_pass_traversal_tag && reference != void) X1 = input_iterator_tag else X1 = output_iterator_tag } 2. X is convertible to TraversalCategory Статья Iterator Archetype раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
|||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |