Macro BOOST_VMD_ASSERT_IS_IDENTIFIER
BOOST_VMD_ASSERT_IS_IDENTIFIER — Asserts that the sequence is an identifier.
Synopsis
BOOST_VMD_ASSERT_IS_IDENTIFIER(...)
Description
Макро проверяет, что последовательность является идентификатором. Если он не является идентификатором, он вызывает ошибку компилятора.
Макро обычно проверяет идентификатор только в режиме отладки. Однако конечный пользователь может заставить макрос проверить или не проверить, определив макрос BOOST_VMD_ASSERT_DATA до 1 или 0 соответственно.
... = вариатические параметры
Вариатические параметры:
последовательность = последовательность для тестирования в качестве идентификатора. ds (факультативно) = Данные могут принимать одну из двух форм: это один или несколько одиночных идентификаторов или один набор идентификаторов Boost PP.
= обычно макро ничего не возвращает. Если последовательность является идентификатором, ничего не происходит. Если указаны дополнительные идентификаторы, для того чтобы последовательность была идентификатором, она должна быть идентификатором, соответствующим одному из факультативных идентификаторов. Для VC++, потому что нет уверенного способа заставить ошибку компилятора из макроса, не производя выход, если последовательность не является идентификатором, макро вызывает ошибку компилятора путем вывода недействительного C++. Для всех остальных компиляторов ошибка компилятора запускается без выпуска, если последовательность не является идентификатором.
Идентификаторы зарегистрированы в VMD с: #define BOOST_VMD_REG_XXX (XXX), где XXX является v-identifier.
Идентификатор должен быть зарегистрирован.
#define BOOST_VMD_DETECT_XXX_XXX где XXX является идентификатором.
Если вы указываете необязательные идентификаторы и не указали обнаружение опционального идентификатора, то этот идентификатор никогда не будет соответствовать идентификатору.