@@ -10,16 +10,6 @@ Distributed under the Boost Software License, Version 1.0.
10
10
#ifndef BOOST_HANA_DETAIL_PREPROCESSOR_HPP
11
11
#define BOOST_HANA_DETAIL_PREPROCESSOR_HPP
12
12
13
- // ! @ingroup group-details
14
- // ! Macro expanding to the number of arguments it is passed.
15
- // !
16
- // ! Specifically, `BOOST_HANA_PP_NARG(x1, ..., xn)` expands to `n`.
17
- // ! It is undefined behavior if `n > 64` or if `n == 0`.
18
- #define BOOST_HANA_PP_NARG (...) \
19
- BOOST_HANA_PP_NARG_IMPL (__VA_ARGS__, 64 , 63 , 62 , 61 , 60 , 59 , 58 , 57 , 56 , 55 , 54 , 53 , 52 , 51 , 50 , 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 , 32 , 31 , 30 , 29 , 28 , 27 , 26 , 25 , 24 , 23 , 22 , 21 , 20 , 19 , 18 , 17 , 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ,)
20
-
21
- #define BOOST_HANA_PP_NARG_IMPL (e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13 , e14 , e15 , e16 , e17 , e18 , e19 , e20 , e21 , e22 , e23 , e24 , e25 , e26 , e27 , e28 , e29 , e30 , e31 , e32 , e33 , e34 , e35 , e36 , e37 , e38 , e39 , e40 , e41 , e42 , e43 , e44 , e45 , e46 , e47 , e48 , e49 , e50 , e51 , e52 , e53 , e54 , e55 , e56 , e57 , e58 , e59 , e60 , e61 , e62 , e63 , N, ...) N
22
-
23
13
// ! @ingroup group-details
24
14
// ! Expands to the concatenation of its two arguments.
25
15
#define BOOST_HANA_PP_CONCAT (x, y ) BOOST_HANA_PP_CONCAT_PRIMITIVE(x, y)
@@ -30,68 +20,6 @@ Distributed under the Boost Software License, Version 1.0.
30
20
#define BOOST_HANA_PP_STRINGIZE (...) BOOST_HANA_PP_STRINGIZE_PRIMITIVE(__VA_ARGS__)
31
21
#define BOOST_HANA_PP_STRINGIZE_PRIMITIVE (...) #__VA_ARGS__
32
22
33
- // ! @ingroup group-details
34
- // ! Expands to its last argument.
35
- // !
36
- // ! This macro can be passed up to 20 arguments.
37
- #define BOOST_HANA_PP_BACK (...) \
38
- BOOST_HANA_PP_BACK_IMPL (BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
39
-
40
- #define BOOST_HANA_PP_BACK_IMPL (N, ...) \
41
- BOOST_HANA_PP_CONCAT (BOOST_HANA_PP_BACK_IMPL_, N)(__VA_ARGS__)
42
-
43
- #define BOOST_HANA_PP_BACK_IMPL_1 (e0 ) e0
44
- #define BOOST_HANA_PP_BACK_IMPL_2 (e0, e1 ) e1
45
- #define BOOST_HANA_PP_BACK_IMPL_3 (e0, e1, e2 ) e2
46
- #define BOOST_HANA_PP_BACK_IMPL_4 (e0, e1, e2, e3 ) e3
47
- #define BOOST_HANA_PP_BACK_IMPL_5 (e0, e1, e2, e3, e4 ) e4
48
- #define BOOST_HANA_PP_BACK_IMPL_6 (e0, e1, e2, e3, e4, e5 ) e5
49
- #define BOOST_HANA_PP_BACK_IMPL_7 (e0, e1, e2, e3, e4, e5, e6 ) e6
50
- #define BOOST_HANA_PP_BACK_IMPL_8 (e0, e1, e2, e3, e4, e5, e6, e7 ) e7
51
- #define BOOST_HANA_PP_BACK_IMPL_9 (e0, e1, e2, e3, e4, e5, e6, e7, e8 ) e8
52
- #define BOOST_HANA_PP_BACK_IMPL_10 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9 ) e9
53
- #define BOOST_HANA_PP_BACK_IMPL_11 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10 ) e10
54
- #define BOOST_HANA_PP_BACK_IMPL_12 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11 ) e11
55
- #define BOOST_HANA_PP_BACK_IMPL_13 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12 ) e12
56
- #define BOOST_HANA_PP_BACK_IMPL_14 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13 ) e13
57
- #define BOOST_HANA_PP_BACK_IMPL_15 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14 ) e14
58
- #define BOOST_HANA_PP_BACK_IMPL_16 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15 ) e15
59
- #define BOOST_HANA_PP_BACK_IMPL_17 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16 ) e16
60
- #define BOOST_HANA_PP_BACK_IMPL_18 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17 ) e17
61
- #define BOOST_HANA_PP_BACK_IMPL_19 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18 ) e18
62
- #define BOOST_HANA_PP_BACK_IMPL_20 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19 ) e19
63
-
64
- // ! @ingroup group-details
65
- // ! Expands to all of its arguments, except for the last one.
66
- // !
67
- // ! This macro can be given up to 20 arguments.
68
- #define BOOST_HANA_PP_DROP_BACK (...) \
69
- BOOST_HANA_PP_DROP_BACK_IMPL (BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__)
70
-
71
- #define BOOST_HANA_PP_DROP_BACK_IMPL (N, ...) \
72
- BOOST_HANA_PP_CONCAT (BOOST_HANA_PP_DROP_BACK_IMPL_, N)(__VA_ARGS__)
73
-
74
- #define BOOST_HANA_PP_DROP_BACK_IMPL_1 (e0 )
75
- #define BOOST_HANA_PP_DROP_BACK_IMPL_2 (e0, e1 ) e0
76
- #define BOOST_HANA_PP_DROP_BACK_IMPL_3 (e0, e1, e2 ) e0 , e1
77
- #define BOOST_HANA_PP_DROP_BACK_IMPL_4 (e0, e1, e2, e3 ) e0 , e1 , e2
78
- #define BOOST_HANA_PP_DROP_BACK_IMPL_5 (e0, e1, e2, e3, e4 ) e0 , e1 , e2 , e3
79
- #define BOOST_HANA_PP_DROP_BACK_IMPL_6 (e0, e1, e2, e3, e4, e5 ) e0 , e1 , e2 , e3 , e4
80
- #define BOOST_HANA_PP_DROP_BACK_IMPL_7 (e0, e1, e2, e3, e4, e5, e6 ) e0 , e1 , e2 , e3 , e4 , e5
81
- #define BOOST_HANA_PP_DROP_BACK_IMPL_8 (e0, e1, e2, e3, e4, e5, e6, e7 ) e0 , e1 , e2 , e3 , e4 , e5 , e6
82
- #define BOOST_HANA_PP_DROP_BACK_IMPL_9 (e0, e1, e2, e3, e4, e5, e6, e7, e8 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7
83
- #define BOOST_HANA_PP_DROP_BACK_IMPL_10 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8
84
- #define BOOST_HANA_PP_DROP_BACK_IMPL_11 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9
85
- #define BOOST_HANA_PP_DROP_BACK_IMPL_12 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10
86
- #define BOOST_HANA_PP_DROP_BACK_IMPL_13 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11
87
- #define BOOST_HANA_PP_DROP_BACK_IMPL_14 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12
88
- #define BOOST_HANA_PP_DROP_BACK_IMPL_15 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13
89
- #define BOOST_HANA_PP_DROP_BACK_IMPL_16 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13 , e14
90
- #define BOOST_HANA_PP_DROP_BACK_IMPL_17 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13 , e14 , e15
91
- #define BOOST_HANA_PP_DROP_BACK_IMPL_18 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13 , e14 , e15 , e16
92
- #define BOOST_HANA_PP_DROP_BACK_IMPL_19 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13 , e14 , e15 , e16 , e17
93
- #define BOOST_HANA_PP_DROP_BACK_IMPL_20 (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19 ) e0 , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8 , e9 , e10 , e11 , e12 , e13 , e14 , e15 , e16 , e17 , e18
94
-
95
23
// ! @ingroup group-details
96
24
// ! Expands to its first argument.
97
25
#define BOOST_HANA_PP_FRONT (...) BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, )
0 commit comments