123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- # /* **************************************************************************
- # * *
- # * (C) Copyright Paul Mensonides 2002-2011. *
- # * (C) Copyright Edward Diener 2011. *
- # * Distributed under the Boost Software License, Version 1.0.
- *
- # * *
- # ************************************************************************** */
- #
- # /* Revised by Edward Diener (2020) */
- #
- # /* See http://www.boost.org for most recent version. */
- #
- # ifndef BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP
- # define BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP
- #
- # include <boost/preprocessor/cat.hpp>
- # include <boost/preprocessor/config/config.hpp>
- # include <boost/preprocessor/control/if.hpp>
- # include <boost/preprocessor/facilities/overload.hpp>
- # include <boost/preprocessor/tuple/size.hpp>
- # include <boost/preprocessor/variadic/size.hpp>
- # include <boost/preprocessor/variadic/has_opt.hpp>
- #
- # /* BOOST_PP_TUPLE_TO_SEQ */
- #
- # if BOOST_PP_VARIADICS_MSVC
- # define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__), (__VA_ARGS__))
- # define BOOST_PP_TUPLE_TO_SEQ_I(m, args) BOOST_PP_TUPLE_TO_SEQ_II(m, args)
- # define BOOST_PP_TUPLE_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,)
- # define BOOST_PP_TUPLE_TO_SEQ_O_1 BOOST_PP_CAT) tuple
- # else
- # define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__)(__VA_ARGS__)
- # if BOOST_PP_VARIADIC_HAS_OPT()
- # define BOOST_PP_TUPLE_TO_SEQ_O_1 BOOST_PP_TUPLE_TO_SEQ_O_1_SIZE
- # define BOOST_PP_TUPLE_TO_SEQ_O_1_SIZE BOOST_PP_CAT) tuple
- # else
- # define BOOST_PP_TUPLE_TO_SEQ_O_1 BOOST_PP_CAT tuple
- # endif
- # endif
- # define BOOST_PP_TUPLE_TO_SEQ_O_2 BOOST_PP_TUPLE_TO_SEQ_O_1
- #
- # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
- #
- /* An empty array can be passed */
- # define BOOST_PP_TUPLE_TO_SEQ_0
- #
- # define BOOST_PP_TUPLE_TO_SEQ_1
- # define BOOST_PP_TUPLE_TO_SEQ_2
- # define BOOST_PP_TUPLE_TO_SEQ_3
- # define BOOST_PP_TUPLE_TO_SEQ_4
- # define BOOST_PP_TUPLE_TO_SEQ_5
- # define BOOST_PP_TUPLE_TO_SEQ_6
- # define BOOST_PP_TUPLE_TO_SEQ_7
- # define BOOST_PP_TUPLE_TO_SEQ_8
- # define BOOST_PP_TUPLE_TO_SEQ_9
- # define BOOST_PP_TUPLE_TO_SEQ_10
- # define BOOST_PP_TUPLE_TO_SEQ_11
- # define BOOST_PP_TUPLE_TO_SEQ_12
- # define BOOST_PP_TUPLE_TO_SEQ_13
- # define BOOST_PP_TUPLE_TO_SEQ_14
- # define BOOST_PP_TUPLE_TO_SEQ_15
- # define BOOST_PP_TUPLE_TO_SEQ_16
- # define BOOST_PP_TUPLE_TO_SEQ_17
- # define BOOST_PP_TUPLE_TO_SEQ_18
- # define BOOST_PP_TUPLE_TO_SEQ_19
- # define BOOST_PP_TUPLE_TO_SEQ_20
- # define BOOST_PP_TUPLE_TO_SEQ_21
- # define BOOST_PP_TUPLE_TO_SEQ_22
- # define BOOST_PP_TUPLE_TO_SEQ_23
- # define BOOST_PP_TUPLE_TO_SEQ_24
- # define BOOST_PP_TUPLE_TO_SEQ_25
- # define BOOST_PP_TUPLE_TO_SEQ_26
- # define BOOST_PP_TUPLE_TO_SEQ_27
- # define BOOST_PP_TUPLE_TO_SEQ_28
- # define BOOST_PP_TUPLE_TO_SEQ_29
- # define BOOST_PP_TUPLE_TO_SEQ_30
- # define BOOST_PP_TUPLE_TO_SEQ_31
- # define BOOST_PP_TUPLE_TO_SEQ_32
- # define BOOST_PP_TUPLE_TO_SEQ_33
- # define BOOST_PP_TUPLE_TO_SEQ_34
- # define BOOST_PP_TUPLE_TO_SEQ_35
- # define BOOST_PP_TUPLE_TO_SEQ_36
- # define BOOST_PP_TUPLE_TO_SEQ_37
- # define BOOST_PP_TUPLE_TO_SEQ_38
- # define BOOST_PP_TUPLE_TO_SEQ_39
- # define BOOST_PP_TUPLE_TO_SEQ_40
- # define BOOST_PP_TUPLE_TO_SEQ_41
- # define BOOST_PP_TUPLE_TO_SEQ_42
- # define BOOST_PP_TUPLE_TO_SEQ_43
- # define BOOST_PP_TUPLE_TO_SEQ_44
- # define BOOST_PP_TUPLE_TO_SEQ_45
- # define BOOST_PP_TUPLE_TO_SEQ_46
- # define BOOST_PP_TUPLE_TO_SEQ_47
- # define BOOST_PP_TUPLE_TO_SEQ_48
- # define BOOST_PP_TUPLE_TO_SEQ_49
- # define BOOST_PP_TUPLE_TO_SEQ_50
- # define BOOST_PP_TUPLE_TO_SEQ_51
- # define BOOST_PP_TUPLE_TO_SEQ_52
- # define BOOST_PP_TUPLE_TO_SEQ_53
- # define BOOST_PP_TUPLE_TO_SEQ_54
- # define BOOST_PP_TUPLE_TO_SEQ_55
- # define BOOST_PP_TUPLE_TO_SEQ_56
- # define BOOST_PP_TUPLE_TO_SEQ_57
- # define BOOST_PP_TUPLE_TO_SEQ_58
- # define BOOST_PP_TUPLE_TO_SEQ_59
- # define BOOST_PP_TUPLE_TO_SEQ_60
- # define BOOST_PP_TUPLE_TO_SEQ_61
- # define BOOST_PP_TUPLE_TO_SEQ_62
- # define BOOST_PP_TUPLE_TO_SEQ_63
- # define BOOST_PP_TUPLE_TO_SEQ_64
- #
- # else
- #
- # include <boost/preprocessor/config/limits.hpp>
- #
- # if BOOST_PP_LIMIT_TUPLE == 64
- # include <boost/preprocessor/tuple/limits/to_seq_64.hpp>
- # elif BOOST_PP_LIMIT_TUPLE == 128
- # include <boost/preprocessor/tuple/limits/to_seq_64.hpp>
- # include <boost/preprocessor/tuple/limits/to_seq_128.hpp>
- # elif BOOST_PP_LIMIT_TUPLE == 256
- # include <boost/preprocessor/tuple/limits/to_seq_64.hpp>
- # include <boost/preprocessor/tuple/limits/to_seq_128.hpp>
- # include <boost/preprocessor/tuple/limits/to_seq_256.hpp>
- # else
- # error Incorrect value for the BOOST_PP_LIMIT_TUPLE limit
- # endif
- #
- # endif
- #
- # endif
|