Back to home page

EIC code displayed by LXR

 
 

    


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

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_PARENS_HPP)
0008 #define BOOST_VMD_DETAIL_PARENS_HPP
0009 
0010 #include <boost/preprocessor/control/iif.hpp>
0011 #include <boost/preprocessor/punctuation/is_begin_parens.hpp>
0012 #include <boost/preprocessor/variadic/elem.hpp>
0013 #include <boost/vmd/empty.hpp>
0014 #include <boost/vmd/detail/mods.hpp>
0015 #include <boost/vmd/detail/parens_split.hpp>
0016 #include <boost/vmd/detail/parens_common.hpp>
0017   
0018 #define BOOST_VMD_DETAIL_PARENS_PROCESS(vseq) \
0019     BOOST_PP_IIF \
0020       ( \
0021       BOOST_PP_IS_BEGIN_PARENS(vseq), \
0022       BOOST_VMD_DETAIL_BEGIN_PARENS, \
0023       BOOST_VMD_EMPTY \
0024       ) \
0025     (vseq) \
0026 /**/
0027 
0028 #define BOOST_VMD_DETAIL_PARENS(...) \
0029     BOOST_PP_IIF \
0030         ( \
0031         BOOST_VMD_DETAIL_MODS_IS_RESULT_AFTER \
0032             ( \
0033             BOOST_VMD_DETAIL_NEW_MODS(BOOST_VMD_ALLOW_AFTER,__VA_ARGS__) \
0034             ), \
0035         BOOST_VMD_DETAIL_PARENS_SPLIT, \
0036         BOOST_VMD_DETAIL_PARENS_PROCESS \
0037         ) \
0038     (BOOST_PP_VARIADIC_ELEM(0,__VA_ARGS__)) \
0039 /**/
0040 
0041 #define BOOST_VMD_DETAIL_PARENS_D(d,...) \
0042     BOOST_PP_IIF \
0043         ( \
0044         BOOST_VMD_DETAIL_MODS_IS_RESULT_AFTER \
0045             ( \
0046             BOOST_VMD_DETAIL_NEW_MODS_D(d,BOOST_VMD_ALLOW_AFTER,__VA_ARGS__) \
0047             ), \
0048         BOOST_VMD_DETAIL_PARENS_SPLIT, \
0049         BOOST_VMD_DETAIL_PARENS_PROCESS \
0050         ) \
0051     (BOOST_PP_VARIADIC_ELEM(0,__VA_ARGS__)) \
0052 /**/
0053 
0054 #endif /* BOOST_VMD_DETAIL_PARENS_HPP */