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_ENUM_HPP)
0008 #define BOOST_VMD_DETAIL_SEQUENCE_ENUM_HPP
0009 
0010 #include <boost/preprocessor/control/iif.hpp>
0011 #include <boost/preprocessor/tuple/enum.hpp>
0012 #include <boost/vmd/empty.hpp>
0013 #include <boost/vmd/is_empty.hpp>
0014 #include <boost/vmd/detail/sequence_to_tuple.hpp>
0015 
0016 #define BOOST_VMD_DETAIL_SEQUENCE_ENUM_PROCESS(tuple) \
0017     BOOST_PP_IIF \
0018         ( \
0019         BOOST_VMD_IS_EMPTY(tuple), \
0020         BOOST_VMD_EMPTY, \
0021         BOOST_PP_TUPLE_ENUM \
0022         ) \
0023     (tuple) \
0024 /**/
0025 
0026 #define BOOST_VMD_DETAIL_SEQUENCE_ENUM(...) \
0027     BOOST_VMD_DETAIL_SEQUENCE_ENUM_PROCESS \
0028         ( \
0029         BOOST_VMD_DETAIL_SEQUENCE_TO_TUPLE(__VA_ARGS__) \
0030         ) \
0031 /**/
0032 
0033 #define BOOST_VMD_DETAIL_SEQUENCE_ENUM_D(d,...) \
0034     BOOST_VMD_DETAIL_SEQUENCE_ENUM_PROCESS \
0035         ( \
0036         BOOST_VMD_DETAIL_SEQUENCE_TO_TUPLE_D(d,__VA_ARGS__) \
0037         ) \
0038 /**/
0039 
0040 #endif /* BOOST_VMD_DETAIL_SEQUENCE_ENUM_HPP */