Поскольку текущая версия VMD была кардинально изменена, чтобы облегчить использование функциональности VMD, этот раздел подробно описывает эквивалентную функциональность для предыдущих макросов версии 1.7 VMD.
Изменения в функциональности включают разделение последовательностей. Эквивалент всей функциональности V1.7, которая ищет различные типы данных в начале последовательности, охватывается макросом V1.8 BOOST_VMD_ELEM(0, последовательность,...), где «0» является первым элементом последовательности и «последовательность» - последовательность, с ее необязательными параметрами.
V1.7
BOOST_VMD_IDENTIFIER(последовательность, ключи,...) искал идентификатор в начале последовательности и вернул 2-элементный тюп, где первым элементом является соответствующий индекс, начинающийся с 1, или 0, если не найден идентификатор, а вторым тюльповым элементом является остальная часть последовательности или пустота, если не найден идентификатор.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER,BOOST_VMD_RETURN_AFTER,BOOST_VMD_RETURN_INDEX) возвращает 3-элементный тюльп, где найденный идентификатор является первым тюпловым элементом, остальная часть последовательности является вторым тюльповым элементом, а соответствующий индекс, начиная с 0, является 3-м тюльповым элементом. Если нет идентификатора, все элементы возвращенного тюпа пусты.
V1.7
BOOST_VMD_BEGIN_IDENTIFIER(последовательность, ключи,...) искал идентификатор в начале последовательности и вернул соответствующий индекс, начиная с 1, или 0, если не найден идентификатор.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER,BOOST_VMD_RETURN_INDEX) возвращает 2-элементный тюльп, где найденный идентификатор является первым тюльповым элементом, а соответствующий индекс, начиная с 0, является 2-м тюльпным элементом. Если нет идентификатора, то оба элемента возвращенного тюпа пусты.
V1.7
BOOST_VMD_AFTER_IDENTIFIER(последовательность, ключи,...) искал идентификатор в начале последовательности и вернул остаток последовательности или пустоту, если не найден идентификатор.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,(identifiers),BOOST_VMD_TYPE_IDENTIFIER,BOOST_VMD_RETURN_ONLY_AFTER) является точным эквивалентом.
V1.7
BOOST_VMD_IS_BEGIN_IDENTIFIER(последовательность, ключи,...) возвращает 1, если ввод начинается с идентификатора, а еще 0, если нет.
Эквивалент V1.8
BOOST_VMD_ELEM(0, последовательность, (идентификаторы),BOOST_VMD_TYPE_IDENTIFIER) возвращает найденный идентификатор, в противном случае пустота, если не найдена. Вы можете использовать BOOST_PP_COMPL (BOOST_VMD_IS_EMPTY (BOOST_VMD_ELEM(0,sequence,identifiers,BOOST_VMD_TYPE_IDENTIFIER)) в качестве точного эквивалента.
V1.7
BOOST_VMD_NUMBER(последовательность,...) искал номер в начале последовательности и вернул 2-элементный тюп, где первым элементом является число, а вторым тюплярным элементом является остальная часть последовательности. Если не найдено ни одного числа, то оба тюльных элемента пусты.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER,BOOST_VMD_RETURN_AFTER) является точным эквивалентом.
V1.7
BOOST_VMD_BEGIN_NUMBER(последовательность,...) искал номер в начале последовательности и вернул номер, если найден или пустота не найдена.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER) - точный эквивалент.
V1.7
BOOST_VMD_AFTER_NUMBER(последовательность,...) искал номер в начале последовательности и вернул остаток последовательности или пустоту, если не найдено ни одного номера.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER,BOOST_VMD_RETURN_ONLY_AFTER) - точный эквивалент.
V1.7
BOOST_VMD_IS_BEGIN_NUMBER(последовательность,...) возвращает 1, если ввод начинается с числа, а еще 0, если нет.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER) возвращает найденное число, в противном случае пустота, если не найдена. Вы можете использовать BOOST_PP_COMPL (BOOST_VMD_IS_EMPTY (BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_NUMBER)) в качестве точного эквивалента.
V1.7
BOOST_VMD_ARRAY(последовательность) искал массив в начале последовательности и вернул 2-элементный тюп, где первым элементом является массив, а вторым тюпным элементом является остальная часть последовательности. Если нет массива, то оба стержневых элемента пусты.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY,BOOST_VMD_RETURN_AFTER) является точным эквивалентом.
V1.7
BOOST_VMD_BEGIN_ARRAY (последовательность) искал массив в начале последовательности и вернул массив, если он найден или пустота не найден.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY) является точным эквивалентом.
V1.7
BOOST_VMD_AFTER_ARRAY (последовательность) искал массив в начале последовательности и вернул оставшуюся часть последовательности или пустоту, если массив не найден.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY,BOOST_VMD_RETURN_ONLY_AFTER) - точный эквивалент.
V1.7
BOOST_VMD_IS_BEGIN_ARRAY (последовательность,...) возвращает 1, если ввод начинается с массива, а еще 0, если нет.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY) возвращает найденный массив, в противном случае пустота, если не найдена. Вы можете использовать BOOST_PP_COMPL (BOOST_VMD_IS_EMPTY (BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_ARRAY)) в качестве точного эквивалента.
V1.7
BOOST_VMD_LIST(последовательность) искал список в начале последовательности и вернул 2-элементный тюп, где первым элементом является список, а вторым тюльповым элементом является остальная часть последовательности. Если не найдено ни одного списка, то оба стержневых элемента пусты.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST,BOOST_VMD_RETURN_AFTER) - точный эквивалент.
V1.7
BOOST_VMD_BEGIN_LIST(последовательность) искал список в начале последовательности и вернул список, если не найдено ни одного списка.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST) - точный эквивалент.
V1.7
BOOST_VMD_AFTER_LIST(последовательность) искал список в начале последовательности и вернул оставшуюся часть последовательности или пустоту, если список не найден.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST,BOOST_VMD_RETURN_ONLY_AFTER) - точный эквивалент.
V1.7
BOOST_VMD_IS_BEGIN_LIST(последовательность,...) возвращает 1, если ввод начинается со списка, а еще 0, если нет.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST) возвращает найденный список, в противном случае пустота, если не найдена. Вы можете использовать BOOST_PP_COMPL (BOOST_VMD_IS_EMPTY (BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_LIST)) в качестве точного эквивалента.
V1.7
BOOST_VMD_SEQ (последовательность) искал пятно в начале последовательности и вернул 2-элементный тюп, где первым элементом является пяток, а вторым тюльповым элементом является остальная часть последовательности. Если не найдено ни одного следа, то оба тюльповых элемента пусты.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ,BOOST_VMD_RETURN_AFTER) является точным эквивалентом.
V1.7
BOOST_VMD_BEGIN_SEQ (последовательность) искал пятно в начале последовательности и вернул пятно, если найдено или пустота не найдена.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ) является точным эквивалентом.
V1.7
BOOST_VMD_AFTER_SEQ(последовательность) искал пятно в начале последовательности и вернул оставшуюся часть последовательности или пустоту, если не найдено следа.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ,BOOST_VMD_RETURN_ONLY_AFTER) является точным эквивалентом.
V1.7
BOOST_VMD_IS_BEGIN_SEQ (последовательность,...) возвращает 1, если ввод начинается с пятки, а еще 0, если нет.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ) возвращает найденный след, в противном случае пустота, если не найдена. Вы можете использовать BOOST_PP_COMPL (BOOST_VMD_IS_EMPTY (BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_SEQ)) в качестве точного эквивалента.
V1.7
BOOST_VMD_TUPLE(последовательность) в начале последовательности искал тюльп и вернул 2-элементный тюп, где первым элементом является тюп, а вторым тюплярным элементом является остальная часть последовательности. Если нет тюпа, то оба тюпа пусты.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE,BOOST_VMD_RETURN_AFTER) является точным эквивалентом.
V1.7
BOOST_VMD_BEGIN_TUPLE(последовательность) в начале последовательности искал тюль и вернул тюль, если найдена или пустота, если не найдено тюпа.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE) является точным эквивалентом.
V1.7
BOOST_VMD_AFTER_TUPLE(последовательность) в начале последовательности и возвратили оставшуюся часть последовательности или пустоту, если не найдено тюпа.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE,BOOST_VMD_RETURN_ONLY_AFTER) - точный эквивалент.
V1.7
BOOST_VMD_IS_BEGIN_TUPLE (последовательность,...) возвращает 1, если ввод начинается с тюпа, еще 0, если это не так.
Эквивалент V1.8
BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE) возвращает найденный тюп, в противном случае пустота, если не найдена. Вы можете использовать BOOST_PP_COMPL (BOOST_VMD_IS_EMPTY (BOOST_VMD_ELEM(0,sequence,BOOST_VMD_TYPE_TUPLE)) в качестве точного эквивалента.