Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:53:36

0001 
0002 //  (C) Copyright Edward Diener 2011-2015
0003 //  Use, modification and distribution are subject to the Boost Software License,
0004 //  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0005 //  http://www.boost.org/LICENSE_1_0.txt).
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 /* BOOST_VMD_MSVC */
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 /* BOOST_VMD_DETAIL_IS_EMPTY_HPP */