Все макросы в библиотеке начинаются с приставки BOOST_VMD_, где VMD означает «Variadic Macro Data».
После префикса некоторые имена в макросах относятся к типам данных в этой библиотеке или Boost PP. Эти имена и их типы данных:
- TUPLE = Boost PP tuple data type.
- ARRAY = тип массива данных Boost PP.
- LIST = тип данных списка Boost PP.
- SEQ = тип данных Boost PP seq.
- Идентификатор = идентификатор VMD
- Номер = номер VMD
- Тип VMD = тип VMD
Я использовал большинство из этих имен, чтобы максимально точно имитировать название Boost PP. Последующее использование слов «array», «list», «seq» и «tuple» относится к этим типам данных Boost PP, если не указано иное. Обратитесь за помощью к Boost PP для любого объяснения этих типов данных.
Термин «последовательность» относится к последовательности типов данных VMD и не совпадает с последовательностью Boost PP, которая всегда упоминается в этой документации как «seq».
Термин «возврат» относится к расширению макроса. Я использую терминологию макроса, «возвращающего некоторые данные», а не терминологию макроса, «расширяющегося на некоторые данные», даже если последняя более точна, потому что она более точно соответствует тому, как я считаю, что программисты C++ думают о макропрограммировании.
Термин «пустота» означает отсутствие данных препроцессора, передаваемых или возвращаемых с макроса. Я избегал слова «ничего», потому что оно имеет слишком расплывчатое значение.
Термин «тип данных» относится к различным типам ввода препроцессора, которые VMD может анализировать и которые перечислены выше, включая пустоту.
Термин «v-тип» относится к типу VMD, термин «число» возвращается к номеру VMD, а термин «идентификатор» относится к идентификатору VMD. Все это будет объяснено в правильном месте.
Термин «UB» означает «неопределенное поведение», как это указано в стандарте C++.