MessagePack for C++
to_seq.hpp
Go to the documentation of this file.
1 # /* **************************************************************************
2 # * *
3 # * (C) Copyright Edward Diener 2011. *
4 # * (C) Copyright Paul Mensonides 2011. *
5 # * Distributed under the Boost Software License, Version 1.0. (See *
6 # * accompanying file LICENSE_1_0.txt or copy at *
7 # * http://www.boost.org/LICENSE_1_0.txt) *
8 # * *
9 # ************************************************************************** */
10 #
11 # /* See http://www.boost.org for most recent version. */
12 #
13 # ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_SEQ_HPP
14 # define MSGPACK_PREPROCESSOR_ARRAY_TO_SEQ_HPP
15 #
21 #
22 # /* MSGPACK_PP_ARRAY_TO_SEQ */
23 #
24 # define MSGPACK_PP_ARRAY_TO_SEQ(array) \
25  MSGPACK_PP_IF \
26  ( \
27  MSGPACK_PP_ARRAY_SIZE(array), \
28  MSGPACK_PP_ARRAY_TO_SEQ_DO, \
29  MSGPACK_PP_ARRAY_TO_SEQ_EMPTY \
30  ) \
31  (array) \
32 
33 # define MSGPACK_PP_ARRAY_TO_SEQ_EMPTY(array)
34 #
35 # if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
36 # define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_ARRAY_TO_SEQ_I(MSGPACK_PP_TUPLE_TO_SEQ, array)
37 # define MSGPACK_PP_ARRAY_TO_SEQ_I(m, args) MSGPACK_PP_ARRAY_TO_SEQ_II(m, args)
38 # define MSGPACK_PP_ARRAY_TO_SEQ_II(m, args) MSGPACK_PP_CAT(m ## args,)
39 # elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
40 # define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_ARRAY_TO_SEQ_I(array)
41 # define MSGPACK_PP_ARRAY_TO_SEQ_I(array) MSGPACK_PP_TUPLE_TO_SEQ ## array
42 # else
43 # define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_TUPLE_TO_SEQ array
44 # endif
45 #
46 # endif