Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:48:24

0001 # /* **************************************************************************
0002 #  *                                                                          *
0003 #  *     (C) Copyright Edward Diener 2014,2019.
0004 #  *     Distributed under the Boost Software License, Version 1.0. (See
0005 #  *     accompanying file LICENSE_1_0.txt or copy at
0006 #  *     http://www.boost.org/LICENSE_1_0.txt)
0007 #  *                                                                          *
0008 #  ************************************************************************** */
0009 #
0010 # /* See http://www.boost.org for most recent version. */
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 /* defined(__cplusplus) && __cplusplus > 201703L */
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 /* BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */
0080 # endif /* BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP */