BOOST_PP_CHECK_EMPTY 可变参数宏用于检查其可变参数输入是否为空。如果输入为空,则展开为 1;如果输入不为空,则展开为 0。该宏仅在编译级别达到 C++20 且支持 __VA_OPT__ 结构时才存在。

用法

BOOST_PP_CHECK_EMPTY(...) (v)

参数

...
要检查是否为空的可变参数数据

备注

当宏调用 BOOST_PP_VARIADIC_HAS_OPT() 展开为 1 时,此宏存在并可以调用;否则,此宏不存在,尝试调用它会导致预处理器错误,提示找不到该宏。由于此条件,包含此宏的头文件包含 BOOST_PP_VARIADIC_HAS_OPT 宏的头文件。
可以向此宏传递展开为空的数据,在这种情况下,此宏将展开为 1,就像没有传递任何数据一样。

参见

需求

头文件:  <boost/preprocessor/facilities/check_empty.hpp>

示例代码

#include <boost/preprocessor/facilities/check_empty.hpp>

# if BOOST_PP_VARIADIC_HAS_OPT()

#define DATA
#define OBJECT OBJECT2
#define OBJECT2
#define FUNC(x) FUNC2(x)
#define FUNC2(x)
#define FUNC_GEN(x,y) (1,2,3)

BOOST_PP_CHECK_EMPTY(DATA)     // expands to 1
BOOST_PP_CHECK_EMPTY(OBJECT)   // expands to 1
BOOST_PP_CHECK_EMPTY(FUNC(1))  // expands to 1
BOOST_PP_CHECK_EMPTY(FUNC)     // expands to 0
BOOST_PP_CHECK_EMPTY(FUNC_GEN) // expands to 0

#endif

© Copyright Edward Diener 2019

根据 Boost 软件许可证版本 1.0 分发。(参见随附文件 LICENSE_1_0.txt 或复制自 www.boost.org/LICENSE_1_0.txt)