Back to home page

EIC code displayed by LXR

 
 

    


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

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_SEQUENCE_TO_ARRAY_HPP)
0008 #define BOOST_VMD_DETAIL_SEQUENCE_TO_ARRAY_HPP
0009 
0010 #include <boost/preprocessor/control/iif.hpp>
0011 #include <boost/vmd/detail/modifiers.hpp>
0012 #include <boost/vmd/detail/mods.hpp>
0013 #include <boost/vmd/detail/not_empty.hpp>
0014 #include <boost/vmd/detail/sequence_elem.hpp>
0015 
0016 #define BOOST_VMD_DETAIL_SEQUENCE_TO_ARRAY(...) \
0017     BOOST_PP_IIF \
0018         ( \
0019         BOOST_VMD_DETAIL_NOT_EMPTY(BOOST_VMD_DETAIL_SEQUENCE_ELEM_GET_VSEQ(__VA_ARGS__)), \
0020         BOOST_VMD_DETAIL_SEQUENCE_ELEM_PROCESS_TUPLE \
0021             ( \
0022             BOOST_VMD_DETAIL_SEQUENCE_ELEM_GET_VSEQ(__VA_ARGS__), \
0023             , \
0024             BOOST_VMD_TYPE_ARRAY, \
0025             BOOST_VMD_DETAIL_NEW_MODS(BOOST_VMD_ALLOW_RETURN,__VA_ARGS__) \
0026             ), \
0027         (0,()) \
0028         ) \
0029 /**/
0030 
0031 #define BOOST_VMD_DETAIL_SEQUENCE_TO_ARRAY_D(d,...) \
0032     BOOST_PP_IIF \
0033         ( \
0034         BOOST_VMD_DETAIL_NOT_EMPTY(BOOST_VMD_DETAIL_SEQUENCE_ELEM_GET_VSEQ(__VA_ARGS__)), \
0035         BOOST_VMD_DETAIL_SEQUENCE_ELEM_PROCESS_TUPLE_D \
0036             ( \
0037             d, \
0038             BOOST_VMD_DETAIL_SEQUENCE_ELEM_GET_VSEQ(__VA_ARGS__), \
0039             , \
0040             BOOST_VMD_TYPE_ARRAY, \
0041             BOOST_VMD_DETAIL_NEW_MODS_D(d,BOOST_VMD_ALLOW_RETURN,__VA_ARGS__) \
0042             ), \
0043         (0,()) \
0044         ) \
0045 /**/
0046 
0047 #endif /* BOOST_VMD_DETAIL_SEQUENCE_TO_ARRAY_HPP */