MessagePack for C++
pop_front.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_POP_FRONT_HPP
13 # define MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP
14 #
16 #
17 # if MSGPACK_PP_VARIADICS
18 #
25 #
26 #
27 # /* MSGPACK_PP_TUPLE_POP_FRONT */
28 #
29 # define MSGPACK_PP_TUPLE_POP_FRONT(tuple) \
30  MSGPACK_PP_IIF \
31  ( \
32  MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
33  MSGPACK_PP_TUPLE_POP_FRONT_EXEC, \
34  MSGPACK_PP_TUPLE_POP_FRONT_RETURN \
35  ) \
36  (tuple) \
37 
38 #
39 # define MSGPACK_PP_TUPLE_POP_FRONT_EXEC(tuple) \
40  MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_FRONT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \
41 
42 #
43 # define MSGPACK_PP_TUPLE_POP_FRONT_RETURN(tuple) tuple
44 #
45 # /* MSGPACK_PP_TUPLE_POP_FRONT_Z */
46 #
47 # define MSGPACK_PP_TUPLE_POP_FRONT_Z(z, tuple) \
48  MSGPACK_PP_IIF \
49  ( \
50  MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
51  MSGPACK_PP_TUPLE_POP_FRONT_Z_EXEC, \
52  MSGPACK_PP_TUPLE_POP_FRONT_Z_RETURN \
53  ) \
54  (z, tuple) \
55 
56 #
57 # define MSGPACK_PP_TUPLE_POP_FRONT_Z_EXEC(z, tuple) \
58  MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_FRONT_Z(z, MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \
59 
60 #
61 # define MSGPACK_PP_TUPLE_POP_FRONT_Z_RETURN(z, tuple) tuple
62 #
63 # endif // MSGPACK_PP_VARIADICS
64 #
65 # endif // MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP