File indexing completed on 2025-01-18 09:53:37
0001
0002
0003
0004
0005
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