1 /*=============================================================================
2     BOOST_PP_VARIADICS version of BOOST_PP_IS_SEQ inspired from
3     boost/mpl/aux_/preprocessor/is_seq.hpp, original copyrights goes to :
4 
5     Copyright Paul Mensonides 2003
6     Copyright Aleksey Gurtovoy 2003-2004
7 
8     Distributed under the Boost Software License, Version 1.0. (See accompanying
9     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 
11 ==============================================================================*/
12 
13 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_PREPROCESSOR_IS_SEQ_HPP
14 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_PREPROCESSOR_IS_SEQ_HPP
15 
16 #include <boost/preprocessor/punctuation/paren.hpp>
17 #include <boost/preprocessor/cat.hpp>
18 #include <boost/preprocessor/config/config.hpp>
19 
20 #if BOOST_PP_VARIADICS
21 
22 #define BOOST_FUSION_PP_IS_SEQ(seq) BOOST_PP_CAT(BOOST_FUSION_PP_IS_SEQ_,       \
23     BOOST_FUSION_PP_IS_SEQ_0 seq BOOST_PP_RPAREN())
24 
25 #define BOOST_FUSION_PP_IS_SEQ_0(...)                                           \
26     BOOST_FUSION_PP_IS_SEQ_1(__VA_ARGS__
27 
28 #define BOOST_FUSION_PP_IS_SEQ_ALWAYS_0(...)                                    \
29     0
30 
31 #define BOOST_FUSION_PP_IS_SEQ_BOOST_FUSION_PP_IS_SEQ_0                         \
32     BOOST_FUSION_PP_IS_SEQ_ALWAYS_0(
33 
34 #define BOOST_FUSION_PP_IS_SEQ_BOOST_FUSION_PP_IS_SEQ_1(...)                    \
35     1
36 
37 #endif // BOOST_PP_VARIADICS
38 
39 #endif
40