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

Macro BOOST_VMD_ELEM

Boost , Chapter 1. The Variadic Macro Data Library 1.9 , Header <boost/vmd/elem.hpp>

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

Macro BOOST_VMD_ELEM

BOOST_VMD_ELEM — Accesses an element of a sequence.

Synopsis

// In header: <boost/vmd/elem.hpp>
BOOST_VMD_ELEM(elem, ...)

Description

элем = число элементов последовательности. От 0 до размера последовательности — 1. ... = вариатные параметры.

Требуется первый вариадный параметр и последовательность для доступа. Все дополнительные вариадные параметры являются необязательными.

Без дополнительных вариадных параметров макрос возвращает конкретный элемент в последовательности. Если число элемента выходит за пределы последовательности, макродоступ выходит из строя, и макрос превращается в пустоту.

Дополнительные параметры определяют, что означает успешный доступ к элементу, а также какие данные возвращаются макросом.

Фильтры: указание типа VMD говорит макросу вернуть элемент только в том случае, если он относится к указанному типу VMD, в противном случае макродоступ выходит из строя. Если в качестве необязательного параметра указано более одного типа VMD, то последний из них - фильтр.

Идентификаторы соответствия: Если фильтр указан как тип идентификатора, BOOST_VMD_TYPE_IDENTIFIER, дополнительные параметры, которые являются идентификаторами, указывают, что доступный элемент должен соответствовать одному из идентификаторов, иначе доступ не удается. Идентификаторы могут быть указаны несколько раз в качестве отдельных дополнительных параметров или один раз в качестве набора параметров идентификатора. Если идентификаторы указаны в качестве единичных необязательных параметров, они не могут быть любыми из конкретных необязательных параметров BOOST_VMD_ для того, чтобы их можно было распознать как совпадающие идентификаторы. Обычно это никогда не должно быть так. Единственная ситуация, когда это может произойти, это если типы VMD, которые являются фильтрами, используются в качестве совпадающих идентификаторов; в этом случае совпадающие идентификаторы должны быть переданы как набор параметров идентификатора, чтобы они не рассматривались как фильтры.

Фильтры и соответствующие идентификаторы изменяют то, что означает, что элемент успешно доступен. Они не меняют, какие данные возвращает макрос. Остальные параметры не изменяют то, что означает, что элемент успешно доступен, но они изменяют то, какие данные возвращаются макросом.

Расщепление: Расщепление позволяет макросу возвращать остальную последовательность после доступа к элементу.

Если BOOST_VMD_RETURN_AFTER указан, возврат представляет собой кортеж с элементом, доступ к которому осуществляется в качестве первого параметра кортежа, а остальная часть последовательности в качестве второго параметра кортежа. Если доступ к элементам не удается, оба параметра трубки пусты.

Если указана BOOST_VMD_RETURN_ONLY_AFTER, возврат является остальной частью последовательности после того, как найден элемент, к которому осуществляется доступ. Если доступ к элементу не удается, возврат является пустотой.

Если BOOST_VMD_RETURN_NO_AFTER, по умолчанию, не происходит расщепления.

Если указано более одного из идентификаторов расщепления, последний из указанных определяет расщепление.

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

Если BOOST_VMD_RETURN_NO_TYPE, по умолчанию, указывается, что никакой тип не возвращается как часть доступного элемента.

Если BOOST_VMD_RETURN_TYPE указан, конкретный тип элемента возвращается в кортеж.

Если BOOST_VMD_RETURN_TYPE_ARRAY указан, тип массива возвращается, если элемент является массивом, или тип кортежа возвращается, если элемент является кортежем, или фактический тип возвращается для некортежных данных.

Если BOOST_VMD_RETURN_TYPE_LIST указан, тип списка возвращается, если элемент является списком, в противном случае тип кортежа возвращается, если элемент является кортежем, в противном случае фактический тип возвращается для некортежных данных.

Если BOOST_VMD_RETURN_TYPE_TUPLE указан, то для всех данных, подобных этим данным, возвращается тип кортежа, а для данных, не относящихся к кортежу.

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

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

Если фильтр указан как тип идентификатора, BOOST_VMD_TYPE_IDENTIFIER и идентификаторы соответствия указаны, параметр индекса указывает, что числовой индекс, начиная с 0, найденного идентификатора соответствия, возвращается как часть результата.

Если BOOST_VMD_RETURN_INDEX указан, индекс возвращается как часть результата.

Если BOOST_VMD_RETURN_NO_INDEX, по умолчанию, указан, индекс не возвращается как часть результата.

Если оба указаны, то последний указанный определяет индексный параметр.

Когда индекс возвращается как часть результата, результатом является кортеж, где доступный элемент является первым параметром кортежа, а индекс является последним параметром кортежа. Если доступ к элементу не удается, индекс пуст. Если нет фильтра BOOST_VMD_TYPE_IDENTIFIER или если нет совпадающих идентификаторов, BOOST_VMD_RETURN_INDEX игнорируется и индекс не возвращается как часть результата.

Возврат = Без дополнительных параметров доступный элемент возвращается, или пустота, если элемент находится за пределами последовательности. Фильтры и соответствующие идентификаторы могут изменить значение того, возвращается ли доступный элемент или происходит сбой, но всякий раз, когда происходит сбой, пустота возвращается как часть доступа к элементу этого сбоя. Дополнительные параметры типа возврата, когда фильтры не используются, возвращают элемент, доступный в качестве двухэлементного кортежа, где первый элемент кортежа является типом, а второй элемент кортежа - данными; если элемент недоступен, то пустота возвращается в качестве элемента доступа, а не кортежа. Разделение с BOOST_VMD_RETURN_AFTER возвращает кортеж, где доступный элемент является первым кортежным элементом, а остальная часть последовательности является вторым кортежным элементом. Разделение с BOOST_VMD_RETURN_ONLY_AFTER возвращает остальную последовательность после доступа к элементу или пустоты, если к элементу невозможно получить доступ. Индексирование возвращает индекс как часть вывода только в том случае, если указана фильтрация с помощью BOOST_VMD_TYPE_IDENTIFIER и указаны соответствующие идентификаторы. Когда индекс возвращается с BOOST_VMD_RETURN_AFTER Это третий элемент возвращенного кортежа, иначе это второй элемент кортежа, где доступный элемент является первым элементом кортежа.


PrevUpHomeNext

Статья Macro BOOST_VMD_ELEM раздела Chapter 1. The Variadic Macro Data Library 1.9 Header <boost/vmd/elem.hpp> может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Header <boost/vmd/elem.hpp> ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:46:56/0.025899887084961/1