The BOOST_PP_CHECK_EMPTY variadic macro checks to see if its variadic input is empty or not. It expands to 1 if its input is empty and expands to 0 if its input is not empty. The macro only exists when the compilation is at the C++20 level and the __VA_OPT__ construct is supported.

#### Usage

BOOST_PP_CHECK_EMPTY(...) (v)

#### Arguments

...
  The variadic data to be checked for emptiness.

#### Remarks

When the macro invocation BOOST_PP_VARIADIC_HAS_OPT() expands to 1, then this macro exists and can be invoked, otherwise this macro does not exist and attempting to invoke it will lead to a preprocessor error that the macro can not be found. Because of this condition the header file for including this macro includes the header file for the BOOST_PP_VARIADIC_HAS_OPT macro.
It is possible to pass data to this macro which expands to nothing, in which case this macro will expand to 1 just as if nothing has been passed.

#### See Also

- BOOST_PP_VARIADIC_HAS_OPT

#### Requirements

Header: <boost/preprocessor/facilities/check_empty.hpp>

#### Sample Code

    #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

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)