Macro BOOST_VMD_TO_TUPLE_D
BOOST_VMD_TO_TUPLE_D — Converts a sequence to a Boost PP tuple whose elements are the elements of the sequence. Re-entrant version.
Synopsis
BOOST_VMD_TO_TUPLE_D(d, ...)
Description
d = следующая итерация BOOST_PP_WHILE. ... = вариативные параметры.
Требуется первый вариадный параметр и последовательность для преобразования.
Дополнительными необязательными вариадными параметрами могут быть параметры типа возврата. Параметры типа возврата позволяют каждому элементу в последовательности быть преобразованным в двухэлементный кортеж, где первый элемент кортежа является типом, а второй элемент кортежа - данными элемента.
По умолчанию BOOST_VMD_RETURN_NO_TYPE возвращает тип не как часть каждого преобразованного элемента, а только данные. Все остальные возвращают тип и данные в виде двухэлементного набора. Если BOOST_VMD_RETURN_TYPE указан, конкретный тип элемента возвращается в кортеж. Если BOOST_VMD_RETURN_TYPE_ARRAY указан, тип массива возвращается, если элемент является массивом, или тип кортежа возвращается, если элемент является кортежем, или фактический тип возвращается для некортежных данных. Если BOOST_VMD_RETURN_TYPE_LIST указан, тип списка возвращается, если элемент является списком, в противном случае тип кортежа возвращается, если элемент является кортежем, в противном случае фактический тип возвращается для некортежных данных. Если BOOST_VMD_RETURN_TYPE_TUPLE указан, то для всех данных, подобных этим данным, возвращается тип кортежа, а для данных, не относящихся к кортежу. Если указано более одного необязательного параметра типа возврата, последний из указанных параметров определяет тип возврата.
Восстановление PP tuple. Если последовательность пуста, возврат является пустотой, поскольку пустой кортеж не существует. Если необязательный тип возврата, отличный от BOOST_VMD_RETURN_NO_TYPE, указывается тип, и данные каждого элемента возвращаются в качестве элемента кортежа. В противном случае просто данные возвращаются в качестве элемента кортежа, который является по умолчанию.