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 :
5 Copyright Paul Mensonides 2003
6 Copyright Aleksey Gurtovoy 2003-2004
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)
11 ==============================================================================*/
13 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_PREPROCESSOR_IS_SEQ_HPP
14 #define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_PREPROCESSOR_IS_SEQ_HPP
16 #include <boost/preprocessor/punctuation/paren.hpp>
17 #include <boost/preprocessor/cat.hpp>
18 #include <boost/preprocessor/config/config.hpp>
20 #if BOOST_PP_VARIADICS
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())
25 #define BOOST_FUSION_PP_IS_SEQ_0(...) \
26 BOOST_FUSION_PP_IS_SEQ_1(__VA_ARGS__
28 #define BOOST_FUSION_PP_IS_SEQ_ALWAYS_0(...) \
31 #define BOOST_FUSION_PP_IS_SEQ_BOOST_FUSION_PP_IS_SEQ_0 \
32 BOOST_FUSION_PP_IS_SEQ_ALWAYS_0(
34 #define BOOST_FUSION_PP_IS_SEQ_BOOST_FUSION_PP_IS_SEQ_1(...) \
37 #endif // BOOST_PP_VARIADICS