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 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_TUPLE_SIZE_HPP)
0008 #define BOOST_VMD_TUPLE_SIZE_HPP
0009 
0010 #include <boost/vmd/detail/setup.hpp>
0011 
0012 #if BOOST_PP_VARIADICS
0013 
0014 #include <boost/preprocessor/control/iif.hpp>
0015 #include <boost/preprocessor/tuple/size.hpp>
0016 #include <boost/vmd/identity.hpp>
0017 #include <boost/vmd/is_empty.hpp>
0018 
0019 /*
0020 
0021   The succeeding comments in this file are in doxygen format.
0022 
0023 */
0024 
0025 /** \file
0026 */
0027 
0028 /** \def BOOST_VMD_TUPLE_SIZE(tuple)
0029 
0030     \brief  expands to the size of the tuple passed to it. 
0031 
0032     tuple = tuple whose size is to be extracted. 
0033     
0034     If the tuple is an empty tuple its size is 0.
0035     Otherwise the result is the number of elements in the tuple.
0036 */
0037 
0038 #define BOOST_VMD_TUPLE_SIZE(tuple) \
0039     BOOST_VMD_IDENTITY_RESULT \
0040         ( \
0041         BOOST_PP_IIF \
0042             ( \
0043             BOOST_VMD_IS_EMPTY(tuple), \
0044             BOOST_VMD_IDENTITY(0), \
0045             BOOST_PP_TUPLE_SIZE \
0046             ) \
0047         (tuple) \
0048         ) \
0049 /**/
0050 
0051 #endif /* BOOST_PP_VARIADICS */
0052 #endif /* BOOST_VMD_TUPLE_SIZE_HPP */