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

Iterator Facade

Boost , Chapter 1. Fusion 2.2 , Extension

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Description

Шаблон<iterator_facade>обеспечивает интрузивный механизм для создания соответствующего итератора Fusion.

Synopsis
template<typename Derived, typename TravesalTag>
struct iterator_facade;
Usage

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

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

Table 1.108. Parameters

Имя

Описание

<iterator>,<It>,<It1>,<It2>

Тип, полученный из<iterator_facade>

<N>

Интегральная постояннаяMPL


Table 1.109. Key Expressions

выражение

Результат

по умолчанию

<iterator::templatevalue_of<It>::type>

Элемент, хранящийся в положении итератора<It>

Нет

<iterator::templatederef<It>::type>

Тип возвращался при отмене ссылки на итератор типа<It>

Нет

<iterator::templatederef<It>::call(it)>

Итератор ссылок<it>

Нет

<iterator::templatenext<It>::type>

Тип следующего элемента<It>

Нет

<iterator::templatenext<It>::call(it)>

Следующий итератор после<it>

Нет

<iterator::templateprior<It>::type>

Тип следующего элемента<It>

Нет

<iterator::templateprior<It>::call(it)>

Следующий итератор после<it>

Нет

<iterator::templateadvance<It,N>::type>

Тип итератора продвинутых<N>элементов из<It>

Реализовано в<next>и<prior>

<iterator::templateadvance<It,N>::call(it)>

Итератор выдвинул<N>элементы из<it>

Реализовано в<next>и<prior>

<iterator::templatedistance<It1,It2>::type>

Расстояние между итераторами типа<It1>и<It2>какинтегральная постоянная MPL

Нет

<iterator::templatedistance<It1,It2>::call(it1,it2)>

Расстояние между итератором<it1>и<it2>

Нет

<iterator::templateequal_to<It1,It2>::type>

Возвращается<mpl::true_>, если<It1>равно<It2>,<mpl::false_>иначе.

<boost::same_type<It1, It2>::type>

<iterator::templateequal_to<It1,It2>::call(it1,it2)>

Возвращает кабриолет типа<bool>, который оценивает до<true>, если<It1>равен<It2>,<false>в противном случае.

<boost::same_type<It1, It2>::type()>

<iterator::templatekey_of<It>::type>

Ключевой тип, связанный с элементом<It>

Нет

<iterator::templatevalue_of_data<It>::type>

Тип свойств данных, связанных с элементом<It>

Нет

<iterator::templatederef_data<It>::type>

Тип, который будет возвращен путем отнесения свойства данных элемента от<It>

Нет

<iterator::templatederef_data<It>::call(it)>

Относит свойство данных к элементу, на который ссылается<it>

Нет


Header
#include <boost/fusion/iterator/iterator_facade.hpp>
#include <boost/fusion/include/iterator_facade.hpp>
Example

Полный рабочий пример с использованием<iterator_facade>приведен в примерах расширения.


PrevUpHomeNext

Статья Iterator Facade раздела Chapter 1. Fusion 2.2 Extension может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Extension ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 06:48:03/0.0083189010620117/1