File indexing completed on 2025-01-18 09:48:24
0001 #
0002
0003
0004
0005
0006
0007
0008
0009 #
0010 #
0011 #
0012 # ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP
0013 # define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP
0014 #
0015 # include <boost/preprocessor/config/config.hpp>
0016 # include <boost/preprocessor/punctuation/is_begin_parens.hpp>
0017 # include <boost/preprocessor/facilities/detail/is_empty.hpp>
0018 #
0019 #if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400
0020 #
0021 #define BOOST_PP_IS_EMPTY(param) \
0022 BOOST_PP_DETAIL_IS_EMPTY_IIF \
0023 ( \
0024 BOOST_PP_IS_BEGIN_PARENS \
0025 ( \
0026 param \
0027 ) \
0028 ) \
0029 ( \
0030 BOOST_PP_IS_EMPTY_ZERO, \
0031 BOOST_PP_DETAIL_IS_EMPTY_PROCESS \
0032 ) \
0033 (param) \
0034
0035 #define BOOST_PP_IS_EMPTY_ZERO(param) 0
0036 # else
0037 # if defined(__cplusplus) && __cplusplus > 201703L
0038 # include <boost/preprocessor/variadic/has_opt.hpp>
0039 #define BOOST_PP_IS_EMPTY(...) \
0040 BOOST_PP_DETAIL_IS_EMPTY_IIF \
0041 ( \
0042 BOOST_PP_VARIADIC_HAS_OPT() \
0043 ) \
0044 ( \
0045 BOOST_PP_IS_EMPTY_OPT, \
0046 BOOST_PP_IS_EMPTY_NO_OPT \
0047 ) \
0048 (__VA_ARGS__) \
0049
0050 #define BOOST_PP_IS_EMPTY_FUNCTION2(...) \
0051 __VA_OPT__(0,) 1 \
0052
0053 #define BOOST_PP_IS_EMPTY_FUNCTION(...) \
0054 BOOST_PP_IS_EMPTY_FUNCTION2(__VA_ARGS__) \
0055
0056 #define BOOST_PP_IS_EMPTY_OPT(...) \
0057 BOOST_PP_VARIADIC_HAS_OPT_ELEM0(BOOST_PP_IS_EMPTY_FUNCTION(__VA_ARGS__),) \
0058
0059 # else
0060 #define BOOST_PP_IS_EMPTY(...) \
0061 BOOST_PP_IS_EMPTY_NO_OPT(__VA_ARGS__) \
0062
0063 # endif
0064 #define BOOST_PP_IS_EMPTY_NO_OPT(...) \
0065 BOOST_PP_DETAIL_IS_EMPTY_IIF \
0066 ( \
0067 BOOST_PP_IS_BEGIN_PARENS \
0068 ( \
0069 __VA_ARGS__ \
0070 ) \
0071 ) \
0072 ( \
0073 BOOST_PP_IS_EMPTY_ZERO, \
0074 BOOST_PP_DETAIL_IS_EMPTY_PROCESS \
0075 ) \
0076 (__VA_ARGS__) \
0077
0078 #define BOOST_PP_IS_EMPTY_ZERO(...) 0
0079 # endif
0080 # endif