1 2 // (C) Copyright Edward Diener 2011-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). 6 7 #if !defined(BOOST_VMD_DETAIL_IS_ARRAY_HPP) 8 #define BOOST_VMD_DETAIL_IS_ARRAY_HPP 9 10 #include <boost/preprocessor/control/iif.hpp> 11 #include <boost/vmd/identity.hpp> 12 #include <boost/vmd/is_tuple.hpp> 13 #include <boost/vmd/detail/is_array_common.hpp> 14 15 #define BOOST_VMD_DETAIL_IS_ARRAY(vseq) \ 16 BOOST_VMD_IDENTITY_RESULT \ 17 ( \ 18 BOOST_PP_IIF \ 19 ( \ 20 BOOST_VMD_IS_TUPLE(vseq), \ 21 BOOST_VMD_DETAIL_IS_ARRAY_SYNTAX, \ 22 BOOST_VMD_IDENTITY(0) \ 23 ) \ 24 (vseq) \ 25 ) \ 26 /**/ 27 28 #define BOOST_VMD_DETAIL_IS_ARRAY_D(d,vseq) \ 29 BOOST_VMD_IDENTITY_RESULT \ 30 ( \ 31 BOOST_PP_IIF \ 32 ( \ 33 BOOST_VMD_IS_TUPLE(vseq), \ 34 BOOST_VMD_DETAIL_IS_ARRAY_SYNTAX_D, \ 35 BOOST_VMD_IDENTITY(0) \ 36 ) \ 37 (d,vseq) \ 38 ) \ 39 /**/ 40 41 #endif /* BOOST_VMD_DETAIL_IS_ARRAY_HPP */ 42