MessagePack for C++
remove.hpp
Go to the documentation of this file.
1 # /* **************************************************************************
2 # * *
3 # * (C) Copyright Edward Diener 2013.
4 # * Distributed under the Boost Software License, Version 1.0. (See
5 # * accompanying file LICENSE_1_0.txt or copy at
6 # * http://www.boost.org/LICENSE_1_0.txt)
7 # * *
8 # ************************************************************************** */
9 #
10 # /* See http://www.boost.org for most recent version. */
11 #
12 # ifndef MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP
13 # define MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP
14 #
16 #
17 # if MSGPACK_PP_VARIADICS
18 #
25 #
26 # /* MSGPACK_PP_TUPLE_REMOVE */
27 #
28 # define MSGPACK_PP_TUPLE_REMOVE(tuple, i) \
29  MSGPACK_PP_IIF \
30  ( \
31  MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
32  MSGPACK_PP_TUPLE_REMOVE_EXEC, \
33  MSGPACK_PP_TUPLE_REMOVE_RETURN \
34  ) \
35  (tuple, i) \
36 
37 #
38 # define MSGPACK_PP_TUPLE_REMOVE_EXEC(tuple, i) \
39  MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REMOVE(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i)) \
40 
41 #
42 # define MSGPACK_PP_TUPLE_REMOVE_RETURN(tuple, i) tuple
43 #
44 # /* MSGPACK_PP_TUPLE_REMOVE_D */
45 #
46 # define MSGPACK_PP_TUPLE_REMOVE_D(d, tuple, i) \
47  MSGPACK_PP_IIF \
48  ( \
49  MSGPACK_PP_GREATER_D(d, MSGPACK_PP_TUPLE_SIZE(tuple), 1), \
50  MSGPACK_PP_TUPLE_REMOVE_D_EXEC, \
51  MSGPACK_PP_TUPLE_REMOVE_D_RETURN \
52  ) \
53  (d, tuple, i) \
54 
55 #
56 # define MSGPACK_PP_TUPLE_REMOVE_D_EXEC(d, tuple, i) \
57  MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REMOVE_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i)) \
58 
59 #
60 # define MSGPACK_PP_TUPLE_REMOVE_D_RETURN(d, tuple, i) tuple
61 #
62 # endif // MSGPACK_PP_VARIADICS
63 #
64 # endif // MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP