2 // (C) Copyright Edward Diener 2015
3 // Use, modification and distribution are subject to the Boost Software License,
4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt).
7 #if !defined(BOOST_VMD_SEQ_SIZE_HPP)
8 #define BOOST_VMD_SEQ_SIZE_HPP
10 #include <boost/vmd/detail/setup.hpp>
12 #if BOOST_PP_VARIADICS
14 #include <boost/preprocessor/control/iif.hpp>
15 #include <boost/preprocessor/seq/size.hpp>
16 #include <boost/vmd/identity.hpp>
17 #include <boost/vmd/is_empty.hpp>
21 The succeeding comments in this file are in doxygen format.
28 /** \def BOOST_VMD_SEQ_SIZE(seq)
30 \brief expands to the size of the seq passed to it.
32 seq = seq whose size is to be extracted.
34 If the seq is an empty seq its size is 0.
35 Otherwise the result is the number of elements in the seq.
38 #define BOOST_VMD_SEQ_SIZE(seq) \
39 BOOST_VMD_IDENTITY_RESULT \
43 BOOST_VMD_IS_EMPTY(seq), \
44 BOOST_VMD_IDENTITY(0), \
51 #endif /* BOOST_PP_VARIADICS */
52 #endif /* BOOST_VMD_SEQ_SIZE_HPP */