Macro BOOST_VMD_ASSERT_IS_EMPTY
BOOST_VMD_ASSERT_IS_EMPTY — Asserts that the input is empty.
Synopsis
BOOST_VMD_ASSERT_IS_EMPTY(...)
Description
Макро проверяет, пустой вход или нет. Если он не пустой, он вызывает ошибку компилятора.
Макро — это вариадный макрос, принимающий любой вклад. Для компилятора VC++8 (VS2005) макрос берет один параметр ввода для проверки, а не вариадных данных.
Макро обычно проверяет пустоту только в режиме отладки. Однако конечный пользователь может заставить макрос проверить или не проверить, определив макрос. BOOST_VMD_ASSERT_DATA - 1 или 0 соответственно.
... = вариадный вход, для VC++8 это должен быть один параметр.
Обычно макрос ничего не возвращает. Если вход пуст, то ничего не выходит. Для VC++, потому что нет надежного способа вынудить ошибку компилятора из макроса без получения вывода, если вход не опорожняет макрос вызывает ошибку компилятора путем вывода недействительного C++. Для всех других компиляторов ошибка компилятора вынуждена без вывода, если вход не пуст.
Рекомендуется добавлять BOOST_PP_EMPTY() к любому тестируемому входу, чтобы избежать возможных предупреждающих сообщений от некоторых компиляторов о том, что никакие параметры не передаются на макрос, когда вход действительно пуст.