File indexing completed on 2025-01-18 09:53:36
0001
0002
0003
0004
0005
0006
0007 #if !defined(BOOST_VMD_DETAIL_IS_EMPTY_HPP)
0008 #define BOOST_VMD_DETAIL_IS_EMPTY_HPP
0009
0010 #include <boost/preprocessor/punctuation/is_begin_parens.hpp>
0011
0012 #if BOOST_VMD_MSVC
0013
0014 # pragma warning(once:4002)
0015
0016 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_0(t, b) b
0017 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_1(t, b) t
0018
0019 #if BOOST_VMD_MSVC_V8
0020
0021 #define BOOST_VMD_DETAIL_IS_EMPTY_PROCESS(param) \
0022 BOOST_PP_IS_BEGIN_PARENS \
0023 ( \
0024 BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \
0025 ) \
0026
0027
0028 #else
0029
0030 #define BOOST_VMD_DETAIL_IS_EMPTY_PROCESS(...) \
0031 BOOST_PP_IS_BEGIN_PARENS \
0032 ( \
0033 BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \
0034 ) \
0035
0036
0037 #endif
0038
0039 #else
0040
0041 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__
0042 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF_1(t, ...) t
0043
0044 #define BOOST_VMD_DETAIL_IS_EMPTY_PROCESS(...) \
0045 BOOST_PP_IS_BEGIN_PARENS \
0046 ( \
0047 BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \
0048 ) \
0049
0050
0051 #endif
0052
0053 #define BOOST_VMD_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b
0054 #define BOOST_VMD_DETAIL_IS_EMPTY_IIF(bit) \
0055 BOOST_VMD_DETAIL_IS_EMPTY_PRIMITIVE_CAT(BOOST_VMD_DETAIL_IS_EMPTY_IIF_,bit) \
0056
0057
0058 #define BOOST_VMD_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) ()
0059 #define BOOST_VMD_DETAIL_IS_EMPTY_GEN_ZERO(...) 0
0060
0061 #endif