HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
preprocessorUtilsLite.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef PXR_BASE_TF_PREPROCESSOR_UTILS_LITE_H
25 #define PXR_BASE_TF_PREPROCESSOR_UTILS_LITE_H
26 
27 // This "lite" version of preprocessorUtils exists to avoid dependencies on
28 // hboost. Do not add any includes of hboost headers, such as
29 // <hboost/preprocessor/...> or <hboost/vmd/...> to this file.
30 
31 #include "pxr/base/arch/defines.h"
32 
33 // Helper for TF_PP_CAT. This extra indirection is required so that macros get
34 // expanded before the pasting occurs.
35 #define TF_PP_CAT_IMPL(x, y) x ## y
36 
37 /// Paste concatenate preprocessor expressions x and y after expansion. This
38 /// is similar to HBOOST_PP_CAT but doesn't require including the hboost config
39 /// header which is somewhat heavy.
40 #define TF_PP_CAT(x, y) TF_PP_CAT_IMPL(x, y)
41 
42 // Helper for TF_PP_STRINGIZE supplying macro expansion before pasting
43 #define TF_PP_STRINGIZE_IMPL(x) #x
44 
45 /// Expand and convert the argument to a string, using a most minimal macro.
46 #define TF_PP_STRINGIZE(x) TF_PP_STRINGIZE_IMPL(x)
47 
48 #ifdef ARCH_COMPILER_MSVC
49 
50 /// Expand to the number of arguments passed. For example,
51 /// TF_PP_VARIADIC_SIZE(foo, bar, baz) expands to 3. Supports up to 64
52 /// arguments.
53 #define TF_PP_VARIADIC_SIZE(...) TF_PP_CAT(TF_PP_VARIADIC_SIZE_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,),)
54 
55 /// Expand to the \p n'th argument of the arguments following \p n,
56 /// zero-indexed. For example, TF_PP_VARIADIC_ELEM(0, a, b, c) expands to a,
57 /// and TF_PP_VARIADIC_ELEM(1, a, b, c) expands to b.
58 #define TF_PP_VARIADIC_ELEM(n, ...) TF_PP_VARIADIC_ELEM_IMPL(n,__VA_ARGS__)
59 #define TF_PP_VARIADIC_ELEM_IMPL(n, ...) TF_PP_CAT(TF_PP_CAT(TF_PP_VAE_, n)(__VA_ARGS__,),)
60 
61 #else // NOT MSVC
62 
63 /// Expand to the number of arguments passed. For example,
64 /// TF_PP_VARIADIC_SIZE(foo, bar, baz) expands to 3. Supports up to 64
65 /// arguments. Does not work for zero arguments, which is trickier.
66 #define TF_PP_VARIADIC_SIZE(...) TF_PP_VARIADIC_SIZE_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,)
67 
68 /// Expand to the \p n'th argument of the arguments following \p n,
69 /// zero-indexed. For example, TF_PP_VARIADIC_ELEM(0, a, b, c) expands to a,
70 /// and TF_PP_VARIADIC_ELEM(1, a, b, c) expands to b.
71 #define TF_PP_VARIADIC_ELEM(n, ...) TF_PP_CAT(TF_PP_VAE_, n)(__VA_ARGS__,)
72 
73 #endif // ARCH_COMPILER_MSVC
74 
75 #define TF_PP_VARIADIC_SIZE_IMPL(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, size, ...) size
76 
77 #define TF_PP_VAE_0(a0, ...) a0
78 #define TF_PP_VAE_1(a0, a1, ...) a1
79 #define TF_PP_VAE_2(a0, a1, a2, ...) a2
80 #define TF_PP_VAE_3(a0, a1, a2, a3, ...) a3
81 #define TF_PP_VAE_4(a0, a1, a2, a3, a4, ...) a4
82 #define TF_PP_VAE_5(a0, a1, a2, a3, a4, a5, ...) a5
83 #define TF_PP_VAE_6(a0, a1, a2, a3, a4, a5, a6, ...) a6
84 #define TF_PP_VAE_7(a0, a1, a2, a3, a4, a5, a6, a7, ...) a7
85 #define TF_PP_VAE_8(a0, a1, a2, a3, a4, a5, a6, a7, a8, ...) a8
86 #define TF_PP_VAE_9(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, ...) a9
87 #define TF_PP_VAE_10(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ...) a10
88 #define TF_PP_VAE_11(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ...) a11
89 #define TF_PP_VAE_12(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, ...) a12
90 #define TF_PP_VAE_13(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, ...) a13
91 #define TF_PP_VAE_14(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, ...) a14
92 #define TF_PP_VAE_15(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, ...) a15
93 #define TF_PP_VAE_16(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, ...) a16
94 #define TF_PP_VAE_17(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, ...) a17
95 #define TF_PP_VAE_18(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, ...) a18
96 #define TF_PP_VAE_19(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, ...) a19
97 #define TF_PP_VAE_20(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, ...) a20
98 #define TF_PP_VAE_21(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, ...) a21
99 #define TF_PP_VAE_22(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, ...) a22
100 #define TF_PP_VAE_23(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, ...) a23
101 #define TF_PP_VAE_24(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, ...) a24
102 #define TF_PP_VAE_25(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, ...) a25
103 #define TF_PP_VAE_26(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, ...) a26
104 #define TF_PP_VAE_27(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, ...) a27
105 #define TF_PP_VAE_28(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, ...) a28
106 #define TF_PP_VAE_29(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, ...) a29
107 #define TF_PP_VAE_30(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, ...) a30
108 #define TF_PP_VAE_31(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, ...) a31
109 #define TF_PP_VAE_32(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, ...) a32
110 #define TF_PP_VAE_33(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, ...) a33
111 #define TF_PP_VAE_34(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, ...) a34
112 #define TF_PP_VAE_35(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, ...) a35
113 #define TF_PP_VAE_36(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, ...) a36
114 #define TF_PP_VAE_37(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, ...) a37
115 #define TF_PP_VAE_38(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, ...) a38
116 #define TF_PP_VAE_39(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, ...) a39
117 #define TF_PP_VAE_40(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, ...) a40
118 #define TF_PP_VAE_41(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, ...) a41
119 #define TF_PP_VAE_42(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, ...) a42
120 #define TF_PP_VAE_43(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, ...) a43
121 #define TF_PP_VAE_44(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, ...) a44
122 #define TF_PP_VAE_45(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, ...) a45
123 #define TF_PP_VAE_46(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, ...) a46
124 #define TF_PP_VAE_47(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, ...) a47
125 #define TF_PP_VAE_48(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, ...) a48
126 #define TF_PP_VAE_49(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, ...) a49
127 #define TF_PP_VAE_50(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, ...) a50
128 #define TF_PP_VAE_51(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, ...) a51
129 #define TF_PP_VAE_52(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, ...) a52
130 #define TF_PP_VAE_53(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, ...) a53
131 #define TF_PP_VAE_54(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, ...) a54
132 #define TF_PP_VAE_55(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, ...) a55
133 #define TF_PP_VAE_56(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, ...) a56
134 #define TF_PP_VAE_57(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, ...) a57
135 #define TF_PP_VAE_58(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, ...) a58
136 #define TF_PP_VAE_59(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, ...) a59
137 #define TF_PP_VAE_60(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, ...) a60
138 #define TF_PP_VAE_61(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, ...) a61
139 #define TF_PP_VAE_62(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, ...) a62
140 #define TF_PP_VAE_63(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, ...) a63
141 
142 #ifdef ARCH_COMPILER_MSVC
143 
144 #define TF_PP_FE_0(_macro, ...)
145 #define TF_PP_FE_1(_macro, a) _macro(a)
146 #define TF_PP_FE_2(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_1,(_macro, __VA_ARGS__))
147 #define TF_PP_FE_3(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_2,(_macro, __VA_ARGS__))
148 #define TF_PP_FE_4(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_3,(_macro, __VA_ARGS__))
149 #define TF_PP_FE_5(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_4,(_macro, __VA_ARGS__))
150 #define TF_PP_FE_6(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_5,(_macro, __VA_ARGS__))
151 #define TF_PP_FE_7(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_6,(_macro, __VA_ARGS__))
152 #define TF_PP_FE_8(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_7,(_macro, __VA_ARGS__))
153 #define TF_PP_FE_9(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_8,(_macro, __VA_ARGS__))
154 #define TF_PP_FE_10(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_9,(_macro, __VA_ARGS__))
155 #define TF_PP_FE_11(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_10,(_macro, __VA_ARGS__))
156 #define TF_PP_FE_12(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_11,(_macro, __VA_ARGS__))
157 #define TF_PP_FE_13(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_12,(_macro, __VA_ARGS__))
158 #define TF_PP_FE_14(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_13,(_macro, __VA_ARGS__))
159 #define TF_PP_FE_15(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_14,(_macro, __VA_ARGS__))
160 #define TF_PP_FE_16(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_15,(_macro, __VA_ARGS__))
161 #define TF_PP_FE_17(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_16,(_macro, __VA_ARGS__))
162 #define TF_PP_FE_18(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_17,(_macro, __VA_ARGS__))
163 #define TF_PP_FE_19(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_18,(_macro, __VA_ARGS__))
164 #define TF_PP_FE_20(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_19,(_macro, __VA_ARGS__))
165 #define TF_PP_FE_21(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_20,(_macro, __VA_ARGS__))
166 #define TF_PP_FE_22(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_21,(_macro, __VA_ARGS__))
167 #define TF_PP_FE_23(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_22,(_macro, __VA_ARGS__))
168 #define TF_PP_FE_24(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_23,(_macro, __VA_ARGS__))
169 #define TF_PP_FE_25(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_24,(_macro, __VA_ARGS__))
170 #define TF_PP_FE_26(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_25,(_macro, __VA_ARGS__))
171 #define TF_PP_FE_27(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_26,(_macro, __VA_ARGS__))
172 #define TF_PP_FE_28(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_27,(_macro, __VA_ARGS__))
173 #define TF_PP_FE_29(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_28,(_macro, __VA_ARGS__))
174 #define TF_PP_FE_30(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_29,(_macro, __VA_ARGS__))
175 #define TF_PP_FE_31(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_30,(_macro, __VA_ARGS__))
176 #define TF_PP_FE_32(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_31,(_macro, __VA_ARGS__))
177 #define TF_PP_FE_33(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_32,(_macro, __VA_ARGS__))
178 #define TF_PP_FE_34(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_33,(_macro, __VA_ARGS__))
179 #define TF_PP_FE_35(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_34,(_macro, __VA_ARGS__))
180 #define TF_PP_FE_36(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_35,(_macro, __VA_ARGS__))
181 #define TF_PP_FE_37(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_36,(_macro, __VA_ARGS__))
182 #define TF_PP_FE_38(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_37,(_macro, __VA_ARGS__))
183 #define TF_PP_FE_39(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_38,(_macro, __VA_ARGS__))
184 #define TF_PP_FE_40(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_39,(_macro, __VA_ARGS__))
185 #define TF_PP_FE_41(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_40,(_macro, __VA_ARGS__))
186 #define TF_PP_FE_42(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_41,(_macro, __VA_ARGS__))
187 #define TF_PP_FE_43(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_42,(_macro, __VA_ARGS__))
188 #define TF_PP_FE_44(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_43,(_macro, __VA_ARGS__))
189 #define TF_PP_FE_45(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_44,(_macro, __VA_ARGS__))
190 #define TF_PP_FE_46(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_45,(_macro, __VA_ARGS__))
191 #define TF_PP_FE_47(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_46,(_macro, __VA_ARGS__))
192 #define TF_PP_FE_48(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_47,(_macro, __VA_ARGS__))
193 #define TF_PP_FE_49(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_48,(_macro, __VA_ARGS__))
194 #define TF_PP_FE_50(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_49,(_macro, __VA_ARGS__))
195 #define TF_PP_FE_51(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_50,(_macro, __VA_ARGS__))
196 #define TF_PP_FE_52(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_51,(_macro, __VA_ARGS__))
197 #define TF_PP_FE_53(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_52,(_macro, __VA_ARGS__))
198 #define TF_PP_FE_54(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_53,(_macro, __VA_ARGS__))
199 #define TF_PP_FE_55(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_54,(_macro, __VA_ARGS__))
200 #define TF_PP_FE_56(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_55,(_macro, __VA_ARGS__))
201 #define TF_PP_FE_57(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_56,(_macro, __VA_ARGS__))
202 #define TF_PP_FE_58(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_57,(_macro, __VA_ARGS__))
203 #define TF_PP_FE_59(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_58,(_macro, __VA_ARGS__))
204 #define TF_PP_FE_60(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_59,(_macro, __VA_ARGS__))
205 #define TF_PP_FE_61(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_60,(_macro, __VA_ARGS__))
206 #define TF_PP_FE_62(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_61,(_macro, __VA_ARGS__))
207 #define TF_PP_FE_63(_macro, a, ...) _macro(a) TF_PP_CAT(TF_PP_FE_62,(_macro, __VA_ARGS__))
208 
209 #else // not MSVC
210 
211 #define TF_PP_FE_0(_macro, ...)
212 #define TF_PP_FE_1(_macro, a) _macro(a)
213 #define TF_PP_FE_2(_macro, a, ...) _macro(a) TF_PP_FE_1(_macro, __VA_ARGS__)
214 #define TF_PP_FE_3(_macro, a, ...) _macro(a) TF_PP_FE_2(_macro, __VA_ARGS__)
215 #define TF_PP_FE_4(_macro, a, ...) _macro(a) TF_PP_FE_3(_macro, __VA_ARGS__)
216 #define TF_PP_FE_5(_macro, a, ...) _macro(a) TF_PP_FE_4(_macro, __VA_ARGS__)
217 #define TF_PP_FE_6(_macro, a, ...) _macro(a) TF_PP_FE_5(_macro, __VA_ARGS__)
218 #define TF_PP_FE_7(_macro, a, ...) _macro(a) TF_PP_FE_6(_macro, __VA_ARGS__)
219 #define TF_PP_FE_8(_macro, a, ...) _macro(a) TF_PP_FE_7(_macro, __VA_ARGS__)
220 #define TF_PP_FE_9(_macro, a, ...) _macro(a) TF_PP_FE_8(_macro, __VA_ARGS__)
221 #define TF_PP_FE_10(_macro, a, ...) _macro(a) TF_PP_FE_9(_macro, __VA_ARGS__)
222 #define TF_PP_FE_11(_macro, a, ...) _macro(a) TF_PP_FE_10(_macro, __VA_ARGS__)
223 #define TF_PP_FE_12(_macro, a, ...) _macro(a) TF_PP_FE_11(_macro, __VA_ARGS__)
224 #define TF_PP_FE_13(_macro, a, ...) _macro(a) TF_PP_FE_12(_macro, __VA_ARGS__)
225 #define TF_PP_FE_14(_macro, a, ...) _macro(a) TF_PP_FE_13(_macro, __VA_ARGS__)
226 #define TF_PP_FE_15(_macro, a, ...) _macro(a) TF_PP_FE_14(_macro, __VA_ARGS__)
227 #define TF_PP_FE_16(_macro, a, ...) _macro(a) TF_PP_FE_15(_macro, __VA_ARGS__)
228 #define TF_PP_FE_17(_macro, a, ...) _macro(a) TF_PP_FE_16(_macro, __VA_ARGS__)
229 #define TF_PP_FE_18(_macro, a, ...) _macro(a) TF_PP_FE_17(_macro, __VA_ARGS__)
230 #define TF_PP_FE_19(_macro, a, ...) _macro(a) TF_PP_FE_18(_macro, __VA_ARGS__)
231 #define TF_PP_FE_20(_macro, a, ...) _macro(a) TF_PP_FE_19(_macro, __VA_ARGS__)
232 #define TF_PP_FE_21(_macro, a, ...) _macro(a) TF_PP_FE_20(_macro, __VA_ARGS__)
233 #define TF_PP_FE_22(_macro, a, ...) _macro(a) TF_PP_FE_21(_macro, __VA_ARGS__)
234 #define TF_PP_FE_23(_macro, a, ...) _macro(a) TF_PP_FE_22(_macro, __VA_ARGS__)
235 #define TF_PP_FE_24(_macro, a, ...) _macro(a) TF_PP_FE_23(_macro, __VA_ARGS__)
236 #define TF_PP_FE_25(_macro, a, ...) _macro(a) TF_PP_FE_24(_macro, __VA_ARGS__)
237 #define TF_PP_FE_26(_macro, a, ...) _macro(a) TF_PP_FE_25(_macro, __VA_ARGS__)
238 #define TF_PP_FE_27(_macro, a, ...) _macro(a) TF_PP_FE_26(_macro, __VA_ARGS__)
239 #define TF_PP_FE_28(_macro, a, ...) _macro(a) TF_PP_FE_27(_macro, __VA_ARGS__)
240 #define TF_PP_FE_29(_macro, a, ...) _macro(a) TF_PP_FE_28(_macro, __VA_ARGS__)
241 #define TF_PP_FE_30(_macro, a, ...) _macro(a) TF_PP_FE_29(_macro, __VA_ARGS__)
242 #define TF_PP_FE_31(_macro, a, ...) _macro(a) TF_PP_FE_30(_macro, __VA_ARGS__)
243 #define TF_PP_FE_32(_macro, a, ...) _macro(a) TF_PP_FE_31(_macro, __VA_ARGS__)
244 #define TF_PP_FE_33(_macro, a, ...) _macro(a) TF_PP_FE_32(_macro, __VA_ARGS__)
245 #define TF_PP_FE_34(_macro, a, ...) _macro(a) TF_PP_FE_33(_macro, __VA_ARGS__)
246 #define TF_PP_FE_35(_macro, a, ...) _macro(a) TF_PP_FE_34(_macro, __VA_ARGS__)
247 #define TF_PP_FE_36(_macro, a, ...) _macro(a) TF_PP_FE_35(_macro, __VA_ARGS__)
248 #define TF_PP_FE_37(_macro, a, ...) _macro(a) TF_PP_FE_36(_macro, __VA_ARGS__)
249 #define TF_PP_FE_38(_macro, a, ...) _macro(a) TF_PP_FE_37(_macro, __VA_ARGS__)
250 #define TF_PP_FE_39(_macro, a, ...) _macro(a) TF_PP_FE_38(_macro, __VA_ARGS__)
251 #define TF_PP_FE_40(_macro, a, ...) _macro(a) TF_PP_FE_39(_macro, __VA_ARGS__)
252 #define TF_PP_FE_41(_macro, a, ...) _macro(a) TF_PP_FE_40(_macro, __VA_ARGS__)
253 #define TF_PP_FE_42(_macro, a, ...) _macro(a) TF_PP_FE_41(_macro, __VA_ARGS__)
254 #define TF_PP_FE_43(_macro, a, ...) _macro(a) TF_PP_FE_42(_macro, __VA_ARGS__)
255 #define TF_PP_FE_44(_macro, a, ...) _macro(a) TF_PP_FE_43(_macro, __VA_ARGS__)
256 #define TF_PP_FE_45(_macro, a, ...) _macro(a) TF_PP_FE_44(_macro, __VA_ARGS__)
257 #define TF_PP_FE_46(_macro, a, ...) _macro(a) TF_PP_FE_45(_macro, __VA_ARGS__)
258 #define TF_PP_FE_47(_macro, a, ...) _macro(a) TF_PP_FE_46(_macro, __VA_ARGS__)
259 #define TF_PP_FE_48(_macro, a, ...) _macro(a) TF_PP_FE_47(_macro, __VA_ARGS__)
260 #define TF_PP_FE_49(_macro, a, ...) _macro(a) TF_PP_FE_48(_macro, __VA_ARGS__)
261 #define TF_PP_FE_50(_macro, a, ...) _macro(a) TF_PP_FE_49(_macro, __VA_ARGS__)
262 #define TF_PP_FE_51(_macro, a, ...) _macro(a) TF_PP_FE_50(_macro, __VA_ARGS__)
263 #define TF_PP_FE_52(_macro, a, ...) _macro(a) TF_PP_FE_51(_macro, __VA_ARGS__)
264 #define TF_PP_FE_53(_macro, a, ...) _macro(a) TF_PP_FE_52(_macro, __VA_ARGS__)
265 #define TF_PP_FE_54(_macro, a, ...) _macro(a) TF_PP_FE_53(_macro, __VA_ARGS__)
266 #define TF_PP_FE_55(_macro, a, ...) _macro(a) TF_PP_FE_54(_macro, __VA_ARGS__)
267 #define TF_PP_FE_56(_macro, a, ...) _macro(a) TF_PP_FE_55(_macro, __VA_ARGS__)
268 #define TF_PP_FE_57(_macro, a, ...) _macro(a) TF_PP_FE_56(_macro, __VA_ARGS__)
269 #define TF_PP_FE_58(_macro, a, ...) _macro(a) TF_PP_FE_57(_macro, __VA_ARGS__)
270 #define TF_PP_FE_59(_macro, a, ...) _macro(a) TF_PP_FE_58(_macro, __VA_ARGS__)
271 #define TF_PP_FE_60(_macro, a, ...) _macro(a) TF_PP_FE_59(_macro, __VA_ARGS__)
272 #define TF_PP_FE_61(_macro, a, ...) _macro(a) TF_PP_FE_60(_macro, __VA_ARGS__)
273 #define TF_PP_FE_62(_macro, a, ...) _macro(a) TF_PP_FE_61(_macro, __VA_ARGS__)
274 #define TF_PP_FE_63(_macro, a, ...) _macro(a) TF_PP_FE_62(_macro, __VA_ARGS__)
275 
276 #endif
277 
278 #ifdef ARCH_COMPILER_MSVC
279 
280 /// Expand the macro \p x on every variadic argument. For example
281 /// TF_PP_FOR_EACH(MACRO, foo, bar, baz) expands to MACRO(foo) MACRO(bar)
282 /// MACRO(baz). Supports up to 64 variadic arguments.
283 #define TF_PP_FOR_EACH(x, ...) \
284  TF_PP_CAT(TF_PP_VARIADIC_ELEM(TF_PP_VARIADIC_SIZE(__VA_ARGS__), \
285  TF_PP_FE_0, TF_PP_FE_1, TF_PP_FE_2, TF_PP_FE_3, TF_PP_FE_4, \
286  TF_PP_FE_5, TF_PP_FE_6, TF_PP_FE_7, TF_PP_FE_8, TF_PP_FE_9, \
287  TF_PP_FE_10, TF_PP_FE_11, TF_PP_FE_12, TF_PP_FE_13, TF_PP_FE_14, \
288  TF_PP_FE_15, TF_PP_FE_16, TF_PP_FE_17, TF_PP_FE_18, TF_PP_FE_19, \
289  TF_PP_FE_20, TF_PP_FE_21, TF_PP_FE_22, TF_PP_FE_23, TF_PP_FE_24, \
290  TF_PP_FE_25, TF_PP_FE_26, TF_PP_FE_27, TF_PP_FE_28, TF_PP_FE_29, \
291  TF_PP_FE_30, TF_PP_FE_31, TF_PP_FE_32, TF_PP_FE_33, TF_PP_FE_34, \
292  TF_PP_FE_35, TF_PP_FE_36, TF_PP_FE_37, TF_PP_FE_38, TF_PP_FE_39, \
293  TF_PP_FE_40, TF_PP_FE_41, TF_PP_FE_42, TF_PP_FE_43, TF_PP_FE_44, \
294  TF_PP_FE_45, TF_PP_FE_46, TF_PP_FE_47, TF_PP_FE_48, TF_PP_FE_49, \
295  TF_PP_FE_50, TF_PP_FE_51, TF_PP_FE_52, TF_PP_FE_53, TF_PP_FE_54, \
296  TF_PP_FE_55, TF_PP_FE_56, TF_PP_FE_57, TF_PP_FE_58, TF_PP_FE_59, \
297  TF_PP_FE_60, TF_PP_FE_61, TF_PP_FE_62, TF_PP_FE_63)(x, ##__VA_ARGS__),)
298 
299 #else // Not MSVC.
300 
301 /// Expand the macro \p x on every variadic argument. For example
302 /// TF_PP_FOR_EACH(MACRO, foo, bar, baz) expands to MACRO(foo) MACRO(bar)
303 /// MACRO(baz). Supports up to 64 variadic arguments.
304 #define TF_PP_FOR_EACH(x, ...) \
305  TF_PP_VARIADIC_ELEM(TF_PP_VARIADIC_SIZE(__VA_ARGS__), \
306  TF_PP_FE_0, TF_PP_FE_1, TF_PP_FE_2, TF_PP_FE_3, TF_PP_FE_4, \
307  TF_PP_FE_5, TF_PP_FE_6, TF_PP_FE_7, TF_PP_FE_8, TF_PP_FE_9, \
308  TF_PP_FE_10, TF_PP_FE_11, TF_PP_FE_12, TF_PP_FE_13, TF_PP_FE_14, \
309  TF_PP_FE_15, TF_PP_FE_16, TF_PP_FE_17, TF_PP_FE_18, TF_PP_FE_19, \
310  TF_PP_FE_20, TF_PP_FE_21, TF_PP_FE_22, TF_PP_FE_23, TF_PP_FE_24, \
311  TF_PP_FE_25, TF_PP_FE_26, TF_PP_FE_27, TF_PP_FE_28, TF_PP_FE_29, \
312  TF_PP_FE_30, TF_PP_FE_31, TF_PP_FE_32, TF_PP_FE_33, TF_PP_FE_34, \
313  TF_PP_FE_35, TF_PP_FE_36, TF_PP_FE_37, TF_PP_FE_38, TF_PP_FE_39, \
314  TF_PP_FE_40, TF_PP_FE_41, TF_PP_FE_42, TF_PP_FE_43, TF_PP_FE_44, \
315  TF_PP_FE_45, TF_PP_FE_46, TF_PP_FE_47, TF_PP_FE_48, TF_PP_FE_49, \
316  TF_PP_FE_50, TF_PP_FE_51, TF_PP_FE_52, TF_PP_FE_53, TF_PP_FE_54, \
317  TF_PP_FE_55, TF_PP_FE_56, TF_PP_FE_57, TF_PP_FE_58, TF_PP_FE_59, \
318  TF_PP_FE_60, TF_PP_FE_61, TF_PP_FE_62, TF_PP_FE_63)(x, ##__VA_ARGS__)
319 
320 #endif
321 
322 /// Return the arguments as is except if the first argument starts with a
323 /// matched parenthesis then remove those parentheses.
324 /// \ingroup group_tf_Preprocessor
325 /// \hideinitializer
326 //
327 // If the arguments satisfy _TF_PP_IS_PARENS() then we expand to
328 // _TF_PP_PARENS_EXPAND1, otherwise to _TF_PP_PARENS_EXPAND. The
329 // former eats the parentheses while the latter passes the arguments
330 // unchanged.
331 //
332 // We add the ~ after the first __VA_ARGS__ in case there are zero
333 // arguments. MSVC will complain about insufficient arguments otherwise.
334 // The ~ will be discarded in any case.
335 #define TF_PP_EAT_PARENS(...) \
336  _TF_PP_IFF(_TF_PP_IS_PARENS(__VA_ARGS__ ~),\
337  _TF_PP_PARENS_EXPAND1,_TF_PP_PARENS_EXPAND)(__VA_ARGS__)
338 
339 /// Expand the arguments and make the result a string.
340 // We can't use
341 // HBOOST_PP_STRINGIZE because on MSVC passing no arguments will report "not
342 // enough actual parameters" and yield nothing. We want no warnings and an
343 // empty string. We do that by passing an unused first argument to the inner
344 // macro (we need an inner macro to cause expansion). This causes MSVC to
345 // yield "" for an empty __VA_ARGS__ list.
346 #define TF_PP_EAT_PARENS_STR(...) _TF_PP_EAT_PARENS_STR2(~, __VA_ARGS__)
347 #define _TF_PP_EAT_PARENS_STR2(x, ...) #__VA_ARGS__
348 
349 // Expands to the second argument if c is 1 and the third argument if c is
350 // 0. No other values of c are allowed.
351 #define _TF_PP_IFF(c, t, f) \
352  TF_PP_CAT(_TF_PP_IFF_, c)(t, f)
353 #define _TF_PP_IFF_0(t, f) f
354 #define _TF_PP_IFF_1(t, f) t
355 
356 // Force expansion of the arguments.
357 #define _TF_PP_PARENS_EXPAND(...) __VA_ARGS__
358 
359 // Similar to expand except it will eat the first matching pair of
360 // parentheses. For example, _TF_PP_PARENS_EXPAND1((x)(y)) yields x(y).
361 // The outer _TF_PP_PARENS_EXPAND() is needed for MSVC, which otherwise
362 // would stringizing to "_TF_PP_PARENS_EXPAND " plus the literal
363 // substitution of the arguments.
364 #define _TF_PP_PARENS_EXPAND1(...) \
365  _TF_PP_PARENS_EXPAND(_TF_PP_PARENS_EXPAND __VA_ARGS__)
366 
367 // This works around a MSVC bug. When a macro expands to FOO(__VA_ARGS__,bar),
368 // MSVC will separate the arguments of __VA_ARGS__ even if they're inside
369 // matching parentheses. So, for example, if __VA_ARGS__ is (x,y) then we'll
370 // expand to FOO(x,y,bar) instead of FOO((x,y),bar). This macro works around
371 // that. Use: _TF_PP_PARENS_CALL(FOO,(__VA_ARGS__,bar)).
372 //
373 // We need the _TF_PP_PARENS_EXPAND() here otherwise stringizing will
374 // stringize the literal replacements, not the result of the expansion of x y.
375 // If FOO(x,y) expands to x+y then we'd get "FOO ((x,y),bar)" without
376 // _TF_PP_PARENS_EXPAND() instead of the correct "(x,y)+bar".
377 #define _TF_PP_PARENS_CALL(x, y) _TF_PP_PARENS_EXPAND(x y)
378 
379 // Expands to 1 if x starts with a matched parenthesis, otherwise expands to
380 // 0. "_TF_PP_IS_PARENS2 x" eats the parentheses if they exist and
381 // expands to "x, 1,", otherwise it expands to _TF_PP_IS_PARENS2
382 // and the literal expansion of x. This result goes to
383 // _TF_PP_IS_PARENS_CHECK_N() which extracts the 1 expanded from
384 // _TF_PP_IS_PARENS2 or a 0 passed as a final argument. In either
385 // case the desired result is the second argument to
386 // _TF_PP_IS_PARENS_CHECK_N.
387 #define _TF_PP_IS_PARENS(x) \
388  _TF_PP_IS_PARENS_CHECK(_TF_PP_IS_PARENS2 x)
389 #define _TF_PP_IS_PARENS_CHECK(...) \
390  _TF_PP_PARENS_CALL(_TF_PP_IS_PARENS_CHECK_N,(__VA_ARGS__,0,))
391 #define _TF_PP_IS_PARENS_CHECK_N(x, n, ...) n
392 #define _TF_PP_IS_PARENS_TRUE(x) x, 1,
393 #define _TF_PP_IS_PARENS2(...) _TF_PP_IS_PARENS_TRUE(~)
394 
395 /// Exapnds to 1 if the argument is a tuple, and 0 otherwise.
396 /// \ingroup group_tf_Preprocessor
397 /// \hideinitializer
398 #define TF_PP_IS_TUPLE(arg) _TF_PP_IS_PARENS(arg)
399 
400 /// Expands to the 'index' element of a non-empty 'tuple'.
401 #define TF_PP_TUPLE_ELEM(index, tuple) \
402  TF_PP_VARIADIC_ELEM(index, TF_PP_EAT_PARENS(tuple))
403 
404 // Sequence helpers designed to partion a sequence into a head and tail
405 #define _TF_PP_SEQ_PARTITION_WRAP(...) (__VA_ARGS__)
406 #define _TF_PP_SEQ_PARTITION_COMMA(elem) elem,
407 #define _TF_PP_SEQ_PARTITION_HEAD(seq) \
408  _TF_PP_SEQ_PARTITION_WRAP(_TF_PP_SEQ_PARTITION_COMMA seq)
409 #define _TF_PP_SEQ_DISCARD_TAIL(head, ...) head
410 #define _TF_PP_SEQ_DISCARD_HEAD(head, ...) __VA_ARGS__
411 #define _TF_PP_SEQ_EXPAND(...) __VA_ARGS__
412 #define _TF_PP_SEQ_HEAD(seq) \
413  _TF_PP_SEQ_EXPAND(_TF_PP_SEQ_DISCARD_TAIL _TF_PP_SEQ_PARTITION_HEAD(seq))
414 #define _TF_PP_SEQ_TAIL(seq) \
415  _TF_PP_SEQ_EXPAND(_TF_PP_SEQ_DISCARD_HEAD _TF_PP_SEQ_PARTITION_HEAD(seq))
416 
417 #define _TF_PP_SEQ_FE_0(_macro, ...)
418 #ifdef ARCH_COMPILER_MSVC
419 #define _TF_PP_SEQ_FE_1(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),)
420 // # Generates _TF_PP_SEQ_FE_{2:229} (MSVC)
421 // python3 -c 'print("\n".join(f"#define _TF_PP_SEQ_FE_{i}(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_{i-1}(_macro, data, _TF_PP_SEQ_TAIL(seq)),)" for i in range(2, 230)))'
422 #define _TF_PP_SEQ_FE_2(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_1(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
423 #define _TF_PP_SEQ_FE_3(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_2(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
424 #define _TF_PP_SEQ_FE_4(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_3(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
425 #define _TF_PP_SEQ_FE_5(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_4(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
426 #define _TF_PP_SEQ_FE_6(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_5(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
427 #define _TF_PP_SEQ_FE_7(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_6(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
428 #define _TF_PP_SEQ_FE_8(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_7(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
429 #define _TF_PP_SEQ_FE_9(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_8(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
430 #define _TF_PP_SEQ_FE_10(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_9(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
431 #define _TF_PP_SEQ_FE_11(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_10(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
432 #define _TF_PP_SEQ_FE_12(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_11(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
433 #define _TF_PP_SEQ_FE_13(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_12(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
434 #define _TF_PP_SEQ_FE_14(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_13(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
435 #define _TF_PP_SEQ_FE_15(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_14(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
436 #define _TF_PP_SEQ_FE_16(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_15(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
437 #define _TF_PP_SEQ_FE_17(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_16(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
438 #define _TF_PP_SEQ_FE_18(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_17(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
439 #define _TF_PP_SEQ_FE_19(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_18(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
440 #define _TF_PP_SEQ_FE_20(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_19(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
441 #define _TF_PP_SEQ_FE_21(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_20(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
442 #define _TF_PP_SEQ_FE_22(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_21(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
443 #define _TF_PP_SEQ_FE_23(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_22(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
444 #define _TF_PP_SEQ_FE_24(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_23(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
445 #define _TF_PP_SEQ_FE_25(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_24(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
446 #define _TF_PP_SEQ_FE_26(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_25(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
447 #define _TF_PP_SEQ_FE_27(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_26(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
448 #define _TF_PP_SEQ_FE_28(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_27(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
449 #define _TF_PP_SEQ_FE_29(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_28(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
450 #define _TF_PP_SEQ_FE_30(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_29(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
451 #define _TF_PP_SEQ_FE_31(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_30(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
452 #define _TF_PP_SEQ_FE_32(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_31(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
453 #define _TF_PP_SEQ_FE_33(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_32(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
454 #define _TF_PP_SEQ_FE_34(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_33(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
455 #define _TF_PP_SEQ_FE_35(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_34(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
456 #define _TF_PP_SEQ_FE_36(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_35(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
457 #define _TF_PP_SEQ_FE_37(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_36(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
458 #define _TF_PP_SEQ_FE_38(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_37(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
459 #define _TF_PP_SEQ_FE_39(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_38(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
460 #define _TF_PP_SEQ_FE_40(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_39(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
461 #define _TF_PP_SEQ_FE_41(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_40(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
462 #define _TF_PP_SEQ_FE_42(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_41(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
463 #define _TF_PP_SEQ_FE_43(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_42(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
464 #define _TF_PP_SEQ_FE_44(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_43(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
465 #define _TF_PP_SEQ_FE_45(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_44(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
466 #define _TF_PP_SEQ_FE_46(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_45(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
467 #define _TF_PP_SEQ_FE_47(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_46(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
468 #define _TF_PP_SEQ_FE_48(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_47(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
469 #define _TF_PP_SEQ_FE_49(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_48(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
470 #define _TF_PP_SEQ_FE_50(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_49(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
471 #define _TF_PP_SEQ_FE_51(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_50(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
472 #define _TF_PP_SEQ_FE_52(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_51(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
473 #define _TF_PP_SEQ_FE_53(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_52(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
474 #define _TF_PP_SEQ_FE_54(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_53(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
475 #define _TF_PP_SEQ_FE_55(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_54(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
476 #define _TF_PP_SEQ_FE_56(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_55(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
477 #define _TF_PP_SEQ_FE_57(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_56(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
478 #define _TF_PP_SEQ_FE_58(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_57(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
479 #define _TF_PP_SEQ_FE_59(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_58(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
480 #define _TF_PP_SEQ_FE_60(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_59(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
481 #define _TF_PP_SEQ_FE_61(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_60(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
482 #define _TF_PP_SEQ_FE_62(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_61(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
483 #define _TF_PP_SEQ_FE_63(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_62(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
484 #define _TF_PP_SEQ_FE_64(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_63(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
485 #define _TF_PP_SEQ_FE_65(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_64(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
486 #define _TF_PP_SEQ_FE_66(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_65(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
487 #define _TF_PP_SEQ_FE_67(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_66(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
488 #define _TF_PP_SEQ_FE_68(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_67(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
489 #define _TF_PP_SEQ_FE_69(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_68(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
490 #define _TF_PP_SEQ_FE_70(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_69(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
491 #define _TF_PP_SEQ_FE_71(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_70(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
492 #define _TF_PP_SEQ_FE_72(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_71(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
493 #define _TF_PP_SEQ_FE_73(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_72(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
494 #define _TF_PP_SEQ_FE_74(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_73(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
495 #define _TF_PP_SEQ_FE_75(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_74(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
496 #define _TF_PP_SEQ_FE_76(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_75(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
497 #define _TF_PP_SEQ_FE_77(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_76(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
498 #define _TF_PP_SEQ_FE_78(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_77(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
499 #define _TF_PP_SEQ_FE_79(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_78(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
500 #define _TF_PP_SEQ_FE_80(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_79(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
501 #define _TF_PP_SEQ_FE_81(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_80(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
502 #define _TF_PP_SEQ_FE_82(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_81(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
503 #define _TF_PP_SEQ_FE_83(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_82(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
504 #define _TF_PP_SEQ_FE_84(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_83(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
505 #define _TF_PP_SEQ_FE_85(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_84(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
506 #define _TF_PP_SEQ_FE_86(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_85(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
507 #define _TF_PP_SEQ_FE_87(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_86(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
508 #define _TF_PP_SEQ_FE_88(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_87(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
509 #define _TF_PP_SEQ_FE_89(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_88(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
510 #define _TF_PP_SEQ_FE_90(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_89(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
511 #define _TF_PP_SEQ_FE_91(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_90(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
512 #define _TF_PP_SEQ_FE_92(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_91(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
513 #define _TF_PP_SEQ_FE_93(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_92(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
514 #define _TF_PP_SEQ_FE_94(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_93(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
515 #define _TF_PP_SEQ_FE_95(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_94(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
516 #define _TF_PP_SEQ_FE_96(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_95(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
517 #define _TF_PP_SEQ_FE_97(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_96(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
518 #define _TF_PP_SEQ_FE_98(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_97(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
519 #define _TF_PP_SEQ_FE_99(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_98(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
520 #define _TF_PP_SEQ_FE_100(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_99(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
521 #define _TF_PP_SEQ_FE_101(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_100(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
522 #define _TF_PP_SEQ_FE_102(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_101(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
523 #define _TF_PP_SEQ_FE_103(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_102(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
524 #define _TF_PP_SEQ_FE_104(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_103(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
525 #define _TF_PP_SEQ_FE_105(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_104(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
526 #define _TF_PP_SEQ_FE_106(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_105(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
527 #define _TF_PP_SEQ_FE_107(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_106(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
528 #define _TF_PP_SEQ_FE_108(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_107(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
529 #define _TF_PP_SEQ_FE_109(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_108(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
530 #define _TF_PP_SEQ_FE_110(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_109(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
531 #define _TF_PP_SEQ_FE_111(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_110(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
532 #define _TF_PP_SEQ_FE_112(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_111(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
533 #define _TF_PP_SEQ_FE_113(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_112(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
534 #define _TF_PP_SEQ_FE_114(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_113(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
535 #define _TF_PP_SEQ_FE_115(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_114(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
536 #define _TF_PP_SEQ_FE_116(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_115(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
537 #define _TF_PP_SEQ_FE_117(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_116(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
538 #define _TF_PP_SEQ_FE_118(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_117(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
539 #define _TF_PP_SEQ_FE_119(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_118(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
540 #define _TF_PP_SEQ_FE_120(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_119(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
541 #define _TF_PP_SEQ_FE_121(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_120(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
542 #define _TF_PP_SEQ_FE_122(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_121(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
543 #define _TF_PP_SEQ_FE_123(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_122(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
544 #define _TF_PP_SEQ_FE_124(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_123(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
545 #define _TF_PP_SEQ_FE_125(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_124(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
546 #define _TF_PP_SEQ_FE_126(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_125(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
547 #define _TF_PP_SEQ_FE_127(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_126(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
548 #define _TF_PP_SEQ_FE_128(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_127(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
549 #define _TF_PP_SEQ_FE_129(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_128(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
550 #define _TF_PP_SEQ_FE_130(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_129(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
551 #define _TF_PP_SEQ_FE_131(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_130(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
552 #define _TF_PP_SEQ_FE_132(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_131(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
553 #define _TF_PP_SEQ_FE_133(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_132(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
554 #define _TF_PP_SEQ_FE_134(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_133(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
555 #define _TF_PP_SEQ_FE_135(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_134(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
556 #define _TF_PP_SEQ_FE_136(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_135(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
557 #define _TF_PP_SEQ_FE_137(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_136(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
558 #define _TF_PP_SEQ_FE_138(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_137(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
559 #define _TF_PP_SEQ_FE_139(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_138(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
560 #define _TF_PP_SEQ_FE_140(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_139(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
561 #define _TF_PP_SEQ_FE_141(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_140(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
562 #define _TF_PP_SEQ_FE_142(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_141(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
563 #define _TF_PP_SEQ_FE_143(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_142(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
564 #define _TF_PP_SEQ_FE_144(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_143(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
565 #define _TF_PP_SEQ_FE_145(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_144(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
566 #define _TF_PP_SEQ_FE_146(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_145(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
567 #define _TF_PP_SEQ_FE_147(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_146(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
568 #define _TF_PP_SEQ_FE_148(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_147(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
569 #define _TF_PP_SEQ_FE_149(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_148(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
570 #define _TF_PP_SEQ_FE_150(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_149(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
571 #define _TF_PP_SEQ_FE_151(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_150(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
572 #define _TF_PP_SEQ_FE_152(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_151(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
573 #define _TF_PP_SEQ_FE_153(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_152(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
574 #define _TF_PP_SEQ_FE_154(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_153(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
575 #define _TF_PP_SEQ_FE_155(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_154(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
576 #define _TF_PP_SEQ_FE_156(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_155(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
577 #define _TF_PP_SEQ_FE_157(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_156(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
578 #define _TF_PP_SEQ_FE_158(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_157(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
579 #define _TF_PP_SEQ_FE_159(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_158(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
580 #define _TF_PP_SEQ_FE_160(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_159(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
581 #define _TF_PP_SEQ_FE_161(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_160(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
582 #define _TF_PP_SEQ_FE_162(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_161(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
583 #define _TF_PP_SEQ_FE_163(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_162(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
584 #define _TF_PP_SEQ_FE_164(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_163(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
585 #define _TF_PP_SEQ_FE_165(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_164(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
586 #define _TF_PP_SEQ_FE_166(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_165(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
587 #define _TF_PP_SEQ_FE_167(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_166(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
588 #define _TF_PP_SEQ_FE_168(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_167(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
589 #define _TF_PP_SEQ_FE_169(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_168(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
590 #define _TF_PP_SEQ_FE_170(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_169(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
591 #define _TF_PP_SEQ_FE_171(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_170(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
592 #define _TF_PP_SEQ_FE_172(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_171(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
593 #define _TF_PP_SEQ_FE_173(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_172(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
594 #define _TF_PP_SEQ_FE_174(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_173(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
595 #define _TF_PP_SEQ_FE_175(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_174(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
596 #define _TF_PP_SEQ_FE_176(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_175(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
597 #define _TF_PP_SEQ_FE_177(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_176(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
598 #define _TF_PP_SEQ_FE_178(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_177(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
599 #define _TF_PP_SEQ_FE_179(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_178(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
600 #define _TF_PP_SEQ_FE_180(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_179(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
601 #define _TF_PP_SEQ_FE_181(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_180(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
602 #define _TF_PP_SEQ_FE_182(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_181(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
603 #define _TF_PP_SEQ_FE_183(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_182(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
604 #define _TF_PP_SEQ_FE_184(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_183(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
605 #define _TF_PP_SEQ_FE_185(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_184(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
606 #define _TF_PP_SEQ_FE_186(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_185(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
607 #define _TF_PP_SEQ_FE_187(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_186(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
608 #define _TF_PP_SEQ_FE_188(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_187(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
609 #define _TF_PP_SEQ_FE_189(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_188(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
610 #define _TF_PP_SEQ_FE_190(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_189(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
611 #define _TF_PP_SEQ_FE_191(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_190(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
612 #define _TF_PP_SEQ_FE_192(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_191(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
613 #define _TF_PP_SEQ_FE_193(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_192(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
614 #define _TF_PP_SEQ_FE_194(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_193(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
615 #define _TF_PP_SEQ_FE_195(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_194(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
616 #define _TF_PP_SEQ_FE_196(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_195(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
617 #define _TF_PP_SEQ_FE_197(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_196(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
618 #define _TF_PP_SEQ_FE_198(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_197(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
619 #define _TF_PP_SEQ_FE_199(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_198(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
620 #define _TF_PP_SEQ_FE_200(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_199(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
621 #define _TF_PP_SEQ_FE_201(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_200(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
622 #define _TF_PP_SEQ_FE_202(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_201(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
623 #define _TF_PP_SEQ_FE_203(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_202(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
624 #define _TF_PP_SEQ_FE_204(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_203(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
625 #define _TF_PP_SEQ_FE_205(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_204(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
626 #define _TF_PP_SEQ_FE_206(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_205(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
627 #define _TF_PP_SEQ_FE_207(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_206(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
628 #define _TF_PP_SEQ_FE_208(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_207(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
629 #define _TF_PP_SEQ_FE_209(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_208(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
630 #define _TF_PP_SEQ_FE_210(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_209(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
631 #define _TF_PP_SEQ_FE_211(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_210(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
632 #define _TF_PP_SEQ_FE_212(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_211(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
633 #define _TF_PP_SEQ_FE_213(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_212(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
634 #define _TF_PP_SEQ_FE_214(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_213(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
635 #define _TF_PP_SEQ_FE_215(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_214(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
636 #define _TF_PP_SEQ_FE_216(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_215(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
637 #define _TF_PP_SEQ_FE_217(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_216(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
638 #define _TF_PP_SEQ_FE_218(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_217(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
639 #define _TF_PP_SEQ_FE_219(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_218(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
640 #define _TF_PP_SEQ_FE_220(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_219(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
641 #define _TF_PP_SEQ_FE_221(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_220(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
642 #define _TF_PP_SEQ_FE_222(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_221(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
643 #define _TF_PP_SEQ_FE_223(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_222(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
644 #define _TF_PP_SEQ_FE_224(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_223(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
645 #define _TF_PP_SEQ_FE_225(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_224(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
646 #define _TF_PP_SEQ_FE_226(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_225(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
647 #define _TF_PP_SEQ_FE_227(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_226(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
648 #define _TF_PP_SEQ_FE_228(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_227(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
649 #define _TF_PP_SEQ_FE_229(_macro, data, seq) TF_PP_CAT(_macro(data, _TF_PP_SEQ_HEAD(seq)),) TF_PP_CAT(_TF_PP_SEQ_FE_228(_macro, data, _TF_PP_SEQ_TAIL(seq)),)
650 #else // not MSVC
651 #define _TF_PP_SEQ_FE_1(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq))
652 // # Generates _TF_PP_SEQ_FE{2:229} (GCC/CLANG)
653 // python3 -c 'print("\n".join(f"#define _TF_PP_SEQ_FE_{i}(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_{i-1}(_macro, data, _TF_PP_SEQ_TAIL(seq))" for i in range(2, 230)))'
654 #define _TF_PP_SEQ_FE_2(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_1(_macro, data, _TF_PP_SEQ_TAIL(seq))
655 #define _TF_PP_SEQ_FE_3(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_2(_macro, data, _TF_PP_SEQ_TAIL(seq))
656 #define _TF_PP_SEQ_FE_4(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_3(_macro, data, _TF_PP_SEQ_TAIL(seq))
657 #define _TF_PP_SEQ_FE_5(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_4(_macro, data, _TF_PP_SEQ_TAIL(seq))
658 #define _TF_PP_SEQ_FE_6(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_5(_macro, data, _TF_PP_SEQ_TAIL(seq))
659 #define _TF_PP_SEQ_FE_7(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_6(_macro, data, _TF_PP_SEQ_TAIL(seq))
660 #define _TF_PP_SEQ_FE_8(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_7(_macro, data, _TF_PP_SEQ_TAIL(seq))
661 #define _TF_PP_SEQ_FE_9(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_8(_macro, data, _TF_PP_SEQ_TAIL(seq))
662 #define _TF_PP_SEQ_FE_10(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_9(_macro, data, _TF_PP_SEQ_TAIL(seq))
663 #define _TF_PP_SEQ_FE_11(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_10(_macro, data, _TF_PP_SEQ_TAIL(seq))
664 #define _TF_PP_SEQ_FE_12(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_11(_macro, data, _TF_PP_SEQ_TAIL(seq))
665 #define _TF_PP_SEQ_FE_13(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_12(_macro, data, _TF_PP_SEQ_TAIL(seq))
666 #define _TF_PP_SEQ_FE_14(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_13(_macro, data, _TF_PP_SEQ_TAIL(seq))
667 #define _TF_PP_SEQ_FE_15(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_14(_macro, data, _TF_PP_SEQ_TAIL(seq))
668 #define _TF_PP_SEQ_FE_16(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_15(_macro, data, _TF_PP_SEQ_TAIL(seq))
669 #define _TF_PP_SEQ_FE_17(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_16(_macro, data, _TF_PP_SEQ_TAIL(seq))
670 #define _TF_PP_SEQ_FE_18(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_17(_macro, data, _TF_PP_SEQ_TAIL(seq))
671 #define _TF_PP_SEQ_FE_19(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_18(_macro, data, _TF_PP_SEQ_TAIL(seq))
672 #define _TF_PP_SEQ_FE_20(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_19(_macro, data, _TF_PP_SEQ_TAIL(seq))
673 #define _TF_PP_SEQ_FE_21(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_20(_macro, data, _TF_PP_SEQ_TAIL(seq))
674 #define _TF_PP_SEQ_FE_22(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_21(_macro, data, _TF_PP_SEQ_TAIL(seq))
675 #define _TF_PP_SEQ_FE_23(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_22(_macro, data, _TF_PP_SEQ_TAIL(seq))
676 #define _TF_PP_SEQ_FE_24(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_23(_macro, data, _TF_PP_SEQ_TAIL(seq))
677 #define _TF_PP_SEQ_FE_25(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_24(_macro, data, _TF_PP_SEQ_TAIL(seq))
678 #define _TF_PP_SEQ_FE_26(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_25(_macro, data, _TF_PP_SEQ_TAIL(seq))
679 #define _TF_PP_SEQ_FE_27(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_26(_macro, data, _TF_PP_SEQ_TAIL(seq))
680 #define _TF_PP_SEQ_FE_28(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_27(_macro, data, _TF_PP_SEQ_TAIL(seq))
681 #define _TF_PP_SEQ_FE_29(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_28(_macro, data, _TF_PP_SEQ_TAIL(seq))
682 #define _TF_PP_SEQ_FE_30(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_29(_macro, data, _TF_PP_SEQ_TAIL(seq))
683 #define _TF_PP_SEQ_FE_31(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_30(_macro, data, _TF_PP_SEQ_TAIL(seq))
684 #define _TF_PP_SEQ_FE_32(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_31(_macro, data, _TF_PP_SEQ_TAIL(seq))
685 #define _TF_PP_SEQ_FE_33(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_32(_macro, data, _TF_PP_SEQ_TAIL(seq))
686 #define _TF_PP_SEQ_FE_34(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_33(_macro, data, _TF_PP_SEQ_TAIL(seq))
687 #define _TF_PP_SEQ_FE_35(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_34(_macro, data, _TF_PP_SEQ_TAIL(seq))
688 #define _TF_PP_SEQ_FE_36(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_35(_macro, data, _TF_PP_SEQ_TAIL(seq))
689 #define _TF_PP_SEQ_FE_37(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_36(_macro, data, _TF_PP_SEQ_TAIL(seq))
690 #define _TF_PP_SEQ_FE_38(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_37(_macro, data, _TF_PP_SEQ_TAIL(seq))
691 #define _TF_PP_SEQ_FE_39(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_38(_macro, data, _TF_PP_SEQ_TAIL(seq))
692 #define _TF_PP_SEQ_FE_40(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_39(_macro, data, _TF_PP_SEQ_TAIL(seq))
693 #define _TF_PP_SEQ_FE_41(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_40(_macro, data, _TF_PP_SEQ_TAIL(seq))
694 #define _TF_PP_SEQ_FE_42(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_41(_macro, data, _TF_PP_SEQ_TAIL(seq))
695 #define _TF_PP_SEQ_FE_43(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_42(_macro, data, _TF_PP_SEQ_TAIL(seq))
696 #define _TF_PP_SEQ_FE_44(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_43(_macro, data, _TF_PP_SEQ_TAIL(seq))
697 #define _TF_PP_SEQ_FE_45(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_44(_macro, data, _TF_PP_SEQ_TAIL(seq))
698 #define _TF_PP_SEQ_FE_46(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_45(_macro, data, _TF_PP_SEQ_TAIL(seq))
699 #define _TF_PP_SEQ_FE_47(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_46(_macro, data, _TF_PP_SEQ_TAIL(seq))
700 #define _TF_PP_SEQ_FE_48(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_47(_macro, data, _TF_PP_SEQ_TAIL(seq))
701 #define _TF_PP_SEQ_FE_49(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_48(_macro, data, _TF_PP_SEQ_TAIL(seq))
702 #define _TF_PP_SEQ_FE_50(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_49(_macro, data, _TF_PP_SEQ_TAIL(seq))
703 #define _TF_PP_SEQ_FE_51(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_50(_macro, data, _TF_PP_SEQ_TAIL(seq))
704 #define _TF_PP_SEQ_FE_52(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_51(_macro, data, _TF_PP_SEQ_TAIL(seq))
705 #define _TF_PP_SEQ_FE_53(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_52(_macro, data, _TF_PP_SEQ_TAIL(seq))
706 #define _TF_PP_SEQ_FE_54(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_53(_macro, data, _TF_PP_SEQ_TAIL(seq))
707 #define _TF_PP_SEQ_FE_55(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_54(_macro, data, _TF_PP_SEQ_TAIL(seq))
708 #define _TF_PP_SEQ_FE_56(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_55(_macro, data, _TF_PP_SEQ_TAIL(seq))
709 #define _TF_PP_SEQ_FE_57(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_56(_macro, data, _TF_PP_SEQ_TAIL(seq))
710 #define _TF_PP_SEQ_FE_58(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_57(_macro, data, _TF_PP_SEQ_TAIL(seq))
711 #define _TF_PP_SEQ_FE_59(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_58(_macro, data, _TF_PP_SEQ_TAIL(seq))
712 #define _TF_PP_SEQ_FE_60(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_59(_macro, data, _TF_PP_SEQ_TAIL(seq))
713 #define _TF_PP_SEQ_FE_61(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_60(_macro, data, _TF_PP_SEQ_TAIL(seq))
714 #define _TF_PP_SEQ_FE_62(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_61(_macro, data, _TF_PP_SEQ_TAIL(seq))
715 #define _TF_PP_SEQ_FE_63(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_62(_macro, data, _TF_PP_SEQ_TAIL(seq))
716 #define _TF_PP_SEQ_FE_64(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_63(_macro, data, _TF_PP_SEQ_TAIL(seq))
717 #define _TF_PP_SEQ_FE_65(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_64(_macro, data, _TF_PP_SEQ_TAIL(seq))
718 #define _TF_PP_SEQ_FE_66(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_65(_macro, data, _TF_PP_SEQ_TAIL(seq))
719 #define _TF_PP_SEQ_FE_67(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_66(_macro, data, _TF_PP_SEQ_TAIL(seq))
720 #define _TF_PP_SEQ_FE_68(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_67(_macro, data, _TF_PP_SEQ_TAIL(seq))
721 #define _TF_PP_SEQ_FE_69(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_68(_macro, data, _TF_PP_SEQ_TAIL(seq))
722 #define _TF_PP_SEQ_FE_70(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_69(_macro, data, _TF_PP_SEQ_TAIL(seq))
723 #define _TF_PP_SEQ_FE_71(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_70(_macro, data, _TF_PP_SEQ_TAIL(seq))
724 #define _TF_PP_SEQ_FE_72(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_71(_macro, data, _TF_PP_SEQ_TAIL(seq))
725 #define _TF_PP_SEQ_FE_73(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_72(_macro, data, _TF_PP_SEQ_TAIL(seq))
726 #define _TF_PP_SEQ_FE_74(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_73(_macro, data, _TF_PP_SEQ_TAIL(seq))
727 #define _TF_PP_SEQ_FE_75(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_74(_macro, data, _TF_PP_SEQ_TAIL(seq))
728 #define _TF_PP_SEQ_FE_76(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_75(_macro, data, _TF_PP_SEQ_TAIL(seq))
729 #define _TF_PP_SEQ_FE_77(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_76(_macro, data, _TF_PP_SEQ_TAIL(seq))
730 #define _TF_PP_SEQ_FE_78(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_77(_macro, data, _TF_PP_SEQ_TAIL(seq))
731 #define _TF_PP_SEQ_FE_79(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_78(_macro, data, _TF_PP_SEQ_TAIL(seq))
732 #define _TF_PP_SEQ_FE_80(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_79(_macro, data, _TF_PP_SEQ_TAIL(seq))
733 #define _TF_PP_SEQ_FE_81(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_80(_macro, data, _TF_PP_SEQ_TAIL(seq))
734 #define _TF_PP_SEQ_FE_82(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_81(_macro, data, _TF_PP_SEQ_TAIL(seq))
735 #define _TF_PP_SEQ_FE_83(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_82(_macro, data, _TF_PP_SEQ_TAIL(seq))
736 #define _TF_PP_SEQ_FE_84(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_83(_macro, data, _TF_PP_SEQ_TAIL(seq))
737 #define _TF_PP_SEQ_FE_85(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_84(_macro, data, _TF_PP_SEQ_TAIL(seq))
738 #define _TF_PP_SEQ_FE_86(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_85(_macro, data, _TF_PP_SEQ_TAIL(seq))
739 #define _TF_PP_SEQ_FE_87(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_86(_macro, data, _TF_PP_SEQ_TAIL(seq))
740 #define _TF_PP_SEQ_FE_88(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_87(_macro, data, _TF_PP_SEQ_TAIL(seq))
741 #define _TF_PP_SEQ_FE_89(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_88(_macro, data, _TF_PP_SEQ_TAIL(seq))
742 #define _TF_PP_SEQ_FE_90(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_89(_macro, data, _TF_PP_SEQ_TAIL(seq))
743 #define _TF_PP_SEQ_FE_91(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_90(_macro, data, _TF_PP_SEQ_TAIL(seq))
744 #define _TF_PP_SEQ_FE_92(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_91(_macro, data, _TF_PP_SEQ_TAIL(seq))
745 #define _TF_PP_SEQ_FE_93(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_92(_macro, data, _TF_PP_SEQ_TAIL(seq))
746 #define _TF_PP_SEQ_FE_94(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_93(_macro, data, _TF_PP_SEQ_TAIL(seq))
747 #define _TF_PP_SEQ_FE_95(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_94(_macro, data, _TF_PP_SEQ_TAIL(seq))
748 #define _TF_PP_SEQ_FE_96(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_95(_macro, data, _TF_PP_SEQ_TAIL(seq))
749 #define _TF_PP_SEQ_FE_97(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_96(_macro, data, _TF_PP_SEQ_TAIL(seq))
750 #define _TF_PP_SEQ_FE_98(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_97(_macro, data, _TF_PP_SEQ_TAIL(seq))
751 #define _TF_PP_SEQ_FE_99(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_98(_macro, data, _TF_PP_SEQ_TAIL(seq))
752 #define _TF_PP_SEQ_FE_100(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_99(_macro, data, _TF_PP_SEQ_TAIL(seq))
753 #define _TF_PP_SEQ_FE_101(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_100(_macro, data, _TF_PP_SEQ_TAIL(seq))
754 #define _TF_PP_SEQ_FE_102(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_101(_macro, data, _TF_PP_SEQ_TAIL(seq))
755 #define _TF_PP_SEQ_FE_103(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_102(_macro, data, _TF_PP_SEQ_TAIL(seq))
756 #define _TF_PP_SEQ_FE_104(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_103(_macro, data, _TF_PP_SEQ_TAIL(seq))
757 #define _TF_PP_SEQ_FE_105(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_104(_macro, data, _TF_PP_SEQ_TAIL(seq))
758 #define _TF_PP_SEQ_FE_106(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_105(_macro, data, _TF_PP_SEQ_TAIL(seq))
759 #define _TF_PP_SEQ_FE_107(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_106(_macro, data, _TF_PP_SEQ_TAIL(seq))
760 #define _TF_PP_SEQ_FE_108(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_107(_macro, data, _TF_PP_SEQ_TAIL(seq))
761 #define _TF_PP_SEQ_FE_109(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_108(_macro, data, _TF_PP_SEQ_TAIL(seq))
762 #define _TF_PP_SEQ_FE_110(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_109(_macro, data, _TF_PP_SEQ_TAIL(seq))
763 #define _TF_PP_SEQ_FE_111(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_110(_macro, data, _TF_PP_SEQ_TAIL(seq))
764 #define _TF_PP_SEQ_FE_112(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_111(_macro, data, _TF_PP_SEQ_TAIL(seq))
765 #define _TF_PP_SEQ_FE_113(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_112(_macro, data, _TF_PP_SEQ_TAIL(seq))
766 #define _TF_PP_SEQ_FE_114(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_113(_macro, data, _TF_PP_SEQ_TAIL(seq))
767 #define _TF_PP_SEQ_FE_115(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_114(_macro, data, _TF_PP_SEQ_TAIL(seq))
768 #define _TF_PP_SEQ_FE_116(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_115(_macro, data, _TF_PP_SEQ_TAIL(seq))
769 #define _TF_PP_SEQ_FE_117(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_116(_macro, data, _TF_PP_SEQ_TAIL(seq))
770 #define _TF_PP_SEQ_FE_118(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_117(_macro, data, _TF_PP_SEQ_TAIL(seq))
771 #define _TF_PP_SEQ_FE_119(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_118(_macro, data, _TF_PP_SEQ_TAIL(seq))
772 #define _TF_PP_SEQ_FE_120(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_119(_macro, data, _TF_PP_SEQ_TAIL(seq))
773 #define _TF_PP_SEQ_FE_121(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_120(_macro, data, _TF_PP_SEQ_TAIL(seq))
774 #define _TF_PP_SEQ_FE_122(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_121(_macro, data, _TF_PP_SEQ_TAIL(seq))
775 #define _TF_PP_SEQ_FE_123(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_122(_macro, data, _TF_PP_SEQ_TAIL(seq))
776 #define _TF_PP_SEQ_FE_124(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_123(_macro, data, _TF_PP_SEQ_TAIL(seq))
777 #define _TF_PP_SEQ_FE_125(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_124(_macro, data, _TF_PP_SEQ_TAIL(seq))
778 #define _TF_PP_SEQ_FE_126(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_125(_macro, data, _TF_PP_SEQ_TAIL(seq))
779 #define _TF_PP_SEQ_FE_127(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_126(_macro, data, _TF_PP_SEQ_TAIL(seq))
780 #define _TF_PP_SEQ_FE_128(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_127(_macro, data, _TF_PP_SEQ_TAIL(seq))
781 #define _TF_PP_SEQ_FE_129(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_128(_macro, data, _TF_PP_SEQ_TAIL(seq))
782 #define _TF_PP_SEQ_FE_130(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_129(_macro, data, _TF_PP_SEQ_TAIL(seq))
783 #define _TF_PP_SEQ_FE_131(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_130(_macro, data, _TF_PP_SEQ_TAIL(seq))
784 #define _TF_PP_SEQ_FE_132(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_131(_macro, data, _TF_PP_SEQ_TAIL(seq))
785 #define _TF_PP_SEQ_FE_133(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_132(_macro, data, _TF_PP_SEQ_TAIL(seq))
786 #define _TF_PP_SEQ_FE_134(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_133(_macro, data, _TF_PP_SEQ_TAIL(seq))
787 #define _TF_PP_SEQ_FE_135(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_134(_macro, data, _TF_PP_SEQ_TAIL(seq))
788 #define _TF_PP_SEQ_FE_136(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_135(_macro, data, _TF_PP_SEQ_TAIL(seq))
789 #define _TF_PP_SEQ_FE_137(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_136(_macro, data, _TF_PP_SEQ_TAIL(seq))
790 #define _TF_PP_SEQ_FE_138(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_137(_macro, data, _TF_PP_SEQ_TAIL(seq))
791 #define _TF_PP_SEQ_FE_139(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_138(_macro, data, _TF_PP_SEQ_TAIL(seq))
792 #define _TF_PP_SEQ_FE_140(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_139(_macro, data, _TF_PP_SEQ_TAIL(seq))
793 #define _TF_PP_SEQ_FE_141(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_140(_macro, data, _TF_PP_SEQ_TAIL(seq))
794 #define _TF_PP_SEQ_FE_142(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_141(_macro, data, _TF_PP_SEQ_TAIL(seq))
795 #define _TF_PP_SEQ_FE_143(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_142(_macro, data, _TF_PP_SEQ_TAIL(seq))
796 #define _TF_PP_SEQ_FE_144(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_143(_macro, data, _TF_PP_SEQ_TAIL(seq))
797 #define _TF_PP_SEQ_FE_145(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_144(_macro, data, _TF_PP_SEQ_TAIL(seq))
798 #define _TF_PP_SEQ_FE_146(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_145(_macro, data, _TF_PP_SEQ_TAIL(seq))
799 #define _TF_PP_SEQ_FE_147(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_146(_macro, data, _TF_PP_SEQ_TAIL(seq))
800 #define _TF_PP_SEQ_FE_148(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_147(_macro, data, _TF_PP_SEQ_TAIL(seq))
801 #define _TF_PP_SEQ_FE_149(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_148(_macro, data, _TF_PP_SEQ_TAIL(seq))
802 #define _TF_PP_SEQ_FE_150(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_149(_macro, data, _TF_PP_SEQ_TAIL(seq))
803 #define _TF_PP_SEQ_FE_151(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_150(_macro, data, _TF_PP_SEQ_TAIL(seq))
804 #define _TF_PP_SEQ_FE_152(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_151(_macro, data, _TF_PP_SEQ_TAIL(seq))
805 #define _TF_PP_SEQ_FE_153(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_152(_macro, data, _TF_PP_SEQ_TAIL(seq))
806 #define _TF_PP_SEQ_FE_154(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_153(_macro, data, _TF_PP_SEQ_TAIL(seq))
807 #define _TF_PP_SEQ_FE_155(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_154(_macro, data, _TF_PP_SEQ_TAIL(seq))
808 #define _TF_PP_SEQ_FE_156(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_155(_macro, data, _TF_PP_SEQ_TAIL(seq))
809 #define _TF_PP_SEQ_FE_157(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_156(_macro, data, _TF_PP_SEQ_TAIL(seq))
810 #define _TF_PP_SEQ_FE_158(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_157(_macro, data, _TF_PP_SEQ_TAIL(seq))
811 #define _TF_PP_SEQ_FE_159(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_158(_macro, data, _TF_PP_SEQ_TAIL(seq))
812 #define _TF_PP_SEQ_FE_160(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_159(_macro, data, _TF_PP_SEQ_TAIL(seq))
813 #define _TF_PP_SEQ_FE_161(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_160(_macro, data, _TF_PP_SEQ_TAIL(seq))
814 #define _TF_PP_SEQ_FE_162(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_161(_macro, data, _TF_PP_SEQ_TAIL(seq))
815 #define _TF_PP_SEQ_FE_163(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_162(_macro, data, _TF_PP_SEQ_TAIL(seq))
816 #define _TF_PP_SEQ_FE_164(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_163(_macro, data, _TF_PP_SEQ_TAIL(seq))
817 #define _TF_PP_SEQ_FE_165(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_164(_macro, data, _TF_PP_SEQ_TAIL(seq))
818 #define _TF_PP_SEQ_FE_166(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_165(_macro, data, _TF_PP_SEQ_TAIL(seq))
819 #define _TF_PP_SEQ_FE_167(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_166(_macro, data, _TF_PP_SEQ_TAIL(seq))
820 #define _TF_PP_SEQ_FE_168(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_167(_macro, data, _TF_PP_SEQ_TAIL(seq))
821 #define _TF_PP_SEQ_FE_169(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_168(_macro, data, _TF_PP_SEQ_TAIL(seq))
822 #define _TF_PP_SEQ_FE_170(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_169(_macro, data, _TF_PP_SEQ_TAIL(seq))
823 #define _TF_PP_SEQ_FE_171(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_170(_macro, data, _TF_PP_SEQ_TAIL(seq))
824 #define _TF_PP_SEQ_FE_172(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_171(_macro, data, _TF_PP_SEQ_TAIL(seq))
825 #define _TF_PP_SEQ_FE_173(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_172(_macro, data, _TF_PP_SEQ_TAIL(seq))
826 #define _TF_PP_SEQ_FE_174(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_173(_macro, data, _TF_PP_SEQ_TAIL(seq))
827 #define _TF_PP_SEQ_FE_175(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_174(_macro, data, _TF_PP_SEQ_TAIL(seq))
828 #define _TF_PP_SEQ_FE_176(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_175(_macro, data, _TF_PP_SEQ_TAIL(seq))
829 #define _TF_PP_SEQ_FE_177(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_176(_macro, data, _TF_PP_SEQ_TAIL(seq))
830 #define _TF_PP_SEQ_FE_178(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_177(_macro, data, _TF_PP_SEQ_TAIL(seq))
831 #define _TF_PP_SEQ_FE_179(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_178(_macro, data, _TF_PP_SEQ_TAIL(seq))
832 #define _TF_PP_SEQ_FE_180(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_179(_macro, data, _TF_PP_SEQ_TAIL(seq))
833 #define _TF_PP_SEQ_FE_181(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_180(_macro, data, _TF_PP_SEQ_TAIL(seq))
834 #define _TF_PP_SEQ_FE_182(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_181(_macro, data, _TF_PP_SEQ_TAIL(seq))
835 #define _TF_PP_SEQ_FE_183(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_182(_macro, data, _TF_PP_SEQ_TAIL(seq))
836 #define _TF_PP_SEQ_FE_184(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_183(_macro, data, _TF_PP_SEQ_TAIL(seq))
837 #define _TF_PP_SEQ_FE_185(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_184(_macro, data, _TF_PP_SEQ_TAIL(seq))
838 #define _TF_PP_SEQ_FE_186(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_185(_macro, data, _TF_PP_SEQ_TAIL(seq))
839 #define _TF_PP_SEQ_FE_187(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_186(_macro, data, _TF_PP_SEQ_TAIL(seq))
840 #define _TF_PP_SEQ_FE_188(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_187(_macro, data, _TF_PP_SEQ_TAIL(seq))
841 #define _TF_PP_SEQ_FE_189(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_188(_macro, data, _TF_PP_SEQ_TAIL(seq))
842 #define _TF_PP_SEQ_FE_190(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_189(_macro, data, _TF_PP_SEQ_TAIL(seq))
843 #define _TF_PP_SEQ_FE_191(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_190(_macro, data, _TF_PP_SEQ_TAIL(seq))
844 #define _TF_PP_SEQ_FE_192(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_191(_macro, data, _TF_PP_SEQ_TAIL(seq))
845 #define _TF_PP_SEQ_FE_193(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_192(_macro, data, _TF_PP_SEQ_TAIL(seq))
846 #define _TF_PP_SEQ_FE_194(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_193(_macro, data, _TF_PP_SEQ_TAIL(seq))
847 #define _TF_PP_SEQ_FE_195(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_194(_macro, data, _TF_PP_SEQ_TAIL(seq))
848 #define _TF_PP_SEQ_FE_196(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_195(_macro, data, _TF_PP_SEQ_TAIL(seq))
849 #define _TF_PP_SEQ_FE_197(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_196(_macro, data, _TF_PP_SEQ_TAIL(seq))
850 #define _TF_PP_SEQ_FE_198(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_197(_macro, data, _TF_PP_SEQ_TAIL(seq))
851 #define _TF_PP_SEQ_FE_199(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_198(_macro, data, _TF_PP_SEQ_TAIL(seq))
852 #define _TF_PP_SEQ_FE_200(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_199(_macro, data, _TF_PP_SEQ_TAIL(seq))
853 #define _TF_PP_SEQ_FE_201(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_200(_macro, data, _TF_PP_SEQ_TAIL(seq))
854 #define _TF_PP_SEQ_FE_202(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_201(_macro, data, _TF_PP_SEQ_TAIL(seq))
855 #define _TF_PP_SEQ_FE_203(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_202(_macro, data, _TF_PP_SEQ_TAIL(seq))
856 #define _TF_PP_SEQ_FE_204(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_203(_macro, data, _TF_PP_SEQ_TAIL(seq))
857 #define _TF_PP_SEQ_FE_205(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_204(_macro, data, _TF_PP_SEQ_TAIL(seq))
858 #define _TF_PP_SEQ_FE_206(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_205(_macro, data, _TF_PP_SEQ_TAIL(seq))
859 #define _TF_PP_SEQ_FE_207(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_206(_macro, data, _TF_PP_SEQ_TAIL(seq))
860 #define _TF_PP_SEQ_FE_208(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_207(_macro, data, _TF_PP_SEQ_TAIL(seq))
861 #define _TF_PP_SEQ_FE_209(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_208(_macro, data, _TF_PP_SEQ_TAIL(seq))
862 #define _TF_PP_SEQ_FE_210(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_209(_macro, data, _TF_PP_SEQ_TAIL(seq))
863 #define _TF_PP_SEQ_FE_211(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_210(_macro, data, _TF_PP_SEQ_TAIL(seq))
864 #define _TF_PP_SEQ_FE_212(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_211(_macro, data, _TF_PP_SEQ_TAIL(seq))
865 #define _TF_PP_SEQ_FE_213(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_212(_macro, data, _TF_PP_SEQ_TAIL(seq))
866 #define _TF_PP_SEQ_FE_214(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_213(_macro, data, _TF_PP_SEQ_TAIL(seq))
867 #define _TF_PP_SEQ_FE_215(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_214(_macro, data, _TF_PP_SEQ_TAIL(seq))
868 #define _TF_PP_SEQ_FE_216(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_215(_macro, data, _TF_PP_SEQ_TAIL(seq))
869 #define _TF_PP_SEQ_FE_217(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_216(_macro, data, _TF_PP_SEQ_TAIL(seq))
870 #define _TF_PP_SEQ_FE_218(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_217(_macro, data, _TF_PP_SEQ_TAIL(seq))
871 #define _TF_PP_SEQ_FE_219(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_218(_macro, data, _TF_PP_SEQ_TAIL(seq))
872 #define _TF_PP_SEQ_FE_220(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_219(_macro, data, _TF_PP_SEQ_TAIL(seq))
873 #define _TF_PP_SEQ_FE_221(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_220(_macro, data, _TF_PP_SEQ_TAIL(seq))
874 #define _TF_PP_SEQ_FE_222(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_221(_macro, data, _TF_PP_SEQ_TAIL(seq))
875 #define _TF_PP_SEQ_FE_223(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_222(_macro, data, _TF_PP_SEQ_TAIL(seq))
876 #define _TF_PP_SEQ_FE_224(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_223(_macro, data, _TF_PP_SEQ_TAIL(seq))
877 #define _TF_PP_SEQ_FE_225(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_224(_macro, data, _TF_PP_SEQ_TAIL(seq))
878 #define _TF_PP_SEQ_FE_226(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_225(_macro, data, _TF_PP_SEQ_TAIL(seq))
879 #define _TF_PP_SEQ_FE_227(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_226(_macro, data, _TF_PP_SEQ_TAIL(seq))
880 #define _TF_PP_SEQ_FE_228(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_227(_macro, data, _TF_PP_SEQ_TAIL(seq))
881 #define _TF_PP_SEQ_FE_229(_macro, data, seq) _macro(data, _TF_PP_SEQ_HEAD(seq)) _TF_PP_SEQ_FE_228(_macro, data, _TF_PP_SEQ_TAIL(seq))
882 #endif
883 
884 /// Apply a macro to each element in the sequence of the form (x)(y)(z)(w)
885 /// \code{cpp}
886 /// // This should print out 'x y z w'.
887 /// #define _PRINT(elem) std::cout << elem
888 /// TF_PP_SEQ_FOR_EACH(_PRINT, ~, ("x")("y")("z")("w"))
889 /// #undef _PRINT
890 /// \endcode
891 /// Limited to sequences of up to 229 elements
892 #ifdef ARCH_COMPILER_MSVC
893 #define _TF_PP_SEQ_FOR_EACH_IMPL(_macro, size, data, seq) \
894  TF_PP_CAT(TF_PP_CAT(_TF_PP_SEQ_FE_, size),(_macro, data, seq))
895 #define TF_PP_SEQ_FOR_EACH(_macro, data, seq) \
896  _TF_PP_SEQ_FOR_EACH_IMPL(_macro, TF_PP_SEQ_SIZE(seq), data, seq)
897 #else
898 #define TF_PP_SEQ_FOR_EACH(_macro, data, seq) \
899  TF_PP_CAT(_TF_PP_SEQ_FE_, TF_PP_SEQ_SIZE(seq))(_macro, data, seq)
900 #endif
901 
902 #define _TF_PP_SEQ_SIZE_0(seq) _TF_PP_SEQ_HEAD(seq)
903 // # Generates the _TF_PP_SEQ_SIZE_{1:229}
904 // python3 -c 'print("\n".join(f"#define _TF_PP_SEQ_SIZE_{i}(seq) _TF_PP_SEQ_SIZE_{i-1}(_TF_PP_SEQ_TAIL(seq))" for i in range(1, 230)))'
905 #define _TF_PP_SEQ_SIZE_1(seq) _TF_PP_SEQ_SIZE_0(_TF_PP_SEQ_TAIL(seq))
906 #define _TF_PP_SEQ_SIZE_2(seq) _TF_PP_SEQ_SIZE_1(_TF_PP_SEQ_TAIL(seq))
907 #define _TF_PP_SEQ_SIZE_3(seq) _TF_PP_SEQ_SIZE_2(_TF_PP_SEQ_TAIL(seq))
908 #define _TF_PP_SEQ_SIZE_4(seq) _TF_PP_SEQ_SIZE_3(_TF_PP_SEQ_TAIL(seq))
909 #define _TF_PP_SEQ_SIZE_5(seq) _TF_PP_SEQ_SIZE_4(_TF_PP_SEQ_TAIL(seq))
910 #define _TF_PP_SEQ_SIZE_6(seq) _TF_PP_SEQ_SIZE_5(_TF_PP_SEQ_TAIL(seq))
911 #define _TF_PP_SEQ_SIZE_7(seq) _TF_PP_SEQ_SIZE_6(_TF_PP_SEQ_TAIL(seq))
912 #define _TF_PP_SEQ_SIZE_8(seq) _TF_PP_SEQ_SIZE_7(_TF_PP_SEQ_TAIL(seq))
913 #define _TF_PP_SEQ_SIZE_9(seq) _TF_PP_SEQ_SIZE_8(_TF_PP_SEQ_TAIL(seq))
914 #define _TF_PP_SEQ_SIZE_10(seq) _TF_PP_SEQ_SIZE_9(_TF_PP_SEQ_TAIL(seq))
915 #define _TF_PP_SEQ_SIZE_11(seq) _TF_PP_SEQ_SIZE_10(_TF_PP_SEQ_TAIL(seq))
916 #define _TF_PP_SEQ_SIZE_12(seq) _TF_PP_SEQ_SIZE_11(_TF_PP_SEQ_TAIL(seq))
917 #define _TF_PP_SEQ_SIZE_13(seq) _TF_PP_SEQ_SIZE_12(_TF_PP_SEQ_TAIL(seq))
918 #define _TF_PP_SEQ_SIZE_14(seq) _TF_PP_SEQ_SIZE_13(_TF_PP_SEQ_TAIL(seq))
919 #define _TF_PP_SEQ_SIZE_15(seq) _TF_PP_SEQ_SIZE_14(_TF_PP_SEQ_TAIL(seq))
920 #define _TF_PP_SEQ_SIZE_16(seq) _TF_PP_SEQ_SIZE_15(_TF_PP_SEQ_TAIL(seq))
921 #define _TF_PP_SEQ_SIZE_17(seq) _TF_PP_SEQ_SIZE_16(_TF_PP_SEQ_TAIL(seq))
922 #define _TF_PP_SEQ_SIZE_18(seq) _TF_PP_SEQ_SIZE_17(_TF_PP_SEQ_TAIL(seq))
923 #define _TF_PP_SEQ_SIZE_19(seq) _TF_PP_SEQ_SIZE_18(_TF_PP_SEQ_TAIL(seq))
924 #define _TF_PP_SEQ_SIZE_20(seq) _TF_PP_SEQ_SIZE_19(_TF_PP_SEQ_TAIL(seq))
925 #define _TF_PP_SEQ_SIZE_21(seq) _TF_PP_SEQ_SIZE_20(_TF_PP_SEQ_TAIL(seq))
926 #define _TF_PP_SEQ_SIZE_22(seq) _TF_PP_SEQ_SIZE_21(_TF_PP_SEQ_TAIL(seq))
927 #define _TF_PP_SEQ_SIZE_23(seq) _TF_PP_SEQ_SIZE_22(_TF_PP_SEQ_TAIL(seq))
928 #define _TF_PP_SEQ_SIZE_24(seq) _TF_PP_SEQ_SIZE_23(_TF_PP_SEQ_TAIL(seq))
929 #define _TF_PP_SEQ_SIZE_25(seq) _TF_PP_SEQ_SIZE_24(_TF_PP_SEQ_TAIL(seq))
930 #define _TF_PP_SEQ_SIZE_26(seq) _TF_PP_SEQ_SIZE_25(_TF_PP_SEQ_TAIL(seq))
931 #define _TF_PP_SEQ_SIZE_27(seq) _TF_PP_SEQ_SIZE_26(_TF_PP_SEQ_TAIL(seq))
932 #define _TF_PP_SEQ_SIZE_28(seq) _TF_PP_SEQ_SIZE_27(_TF_PP_SEQ_TAIL(seq))
933 #define _TF_PP_SEQ_SIZE_29(seq) _TF_PP_SEQ_SIZE_28(_TF_PP_SEQ_TAIL(seq))
934 #define _TF_PP_SEQ_SIZE_30(seq) _TF_PP_SEQ_SIZE_29(_TF_PP_SEQ_TAIL(seq))
935 #define _TF_PP_SEQ_SIZE_31(seq) _TF_PP_SEQ_SIZE_30(_TF_PP_SEQ_TAIL(seq))
936 #define _TF_PP_SEQ_SIZE_32(seq) _TF_PP_SEQ_SIZE_31(_TF_PP_SEQ_TAIL(seq))
937 #define _TF_PP_SEQ_SIZE_33(seq) _TF_PP_SEQ_SIZE_32(_TF_PP_SEQ_TAIL(seq))
938 #define _TF_PP_SEQ_SIZE_34(seq) _TF_PP_SEQ_SIZE_33(_TF_PP_SEQ_TAIL(seq))
939 #define _TF_PP_SEQ_SIZE_35(seq) _TF_PP_SEQ_SIZE_34(_TF_PP_SEQ_TAIL(seq))
940 #define _TF_PP_SEQ_SIZE_36(seq) _TF_PP_SEQ_SIZE_35(_TF_PP_SEQ_TAIL(seq))
941 #define _TF_PP_SEQ_SIZE_37(seq) _TF_PP_SEQ_SIZE_36(_TF_PP_SEQ_TAIL(seq))
942 #define _TF_PP_SEQ_SIZE_38(seq) _TF_PP_SEQ_SIZE_37(_TF_PP_SEQ_TAIL(seq))
943 #define _TF_PP_SEQ_SIZE_39(seq) _TF_PP_SEQ_SIZE_38(_TF_PP_SEQ_TAIL(seq))
944 #define _TF_PP_SEQ_SIZE_40(seq) _TF_PP_SEQ_SIZE_39(_TF_PP_SEQ_TAIL(seq))
945 #define _TF_PP_SEQ_SIZE_41(seq) _TF_PP_SEQ_SIZE_40(_TF_PP_SEQ_TAIL(seq))
946 #define _TF_PP_SEQ_SIZE_42(seq) _TF_PP_SEQ_SIZE_41(_TF_PP_SEQ_TAIL(seq))
947 #define _TF_PP_SEQ_SIZE_43(seq) _TF_PP_SEQ_SIZE_42(_TF_PP_SEQ_TAIL(seq))
948 #define _TF_PP_SEQ_SIZE_44(seq) _TF_PP_SEQ_SIZE_43(_TF_PP_SEQ_TAIL(seq))
949 #define _TF_PP_SEQ_SIZE_45(seq) _TF_PP_SEQ_SIZE_44(_TF_PP_SEQ_TAIL(seq))
950 #define _TF_PP_SEQ_SIZE_46(seq) _TF_PP_SEQ_SIZE_45(_TF_PP_SEQ_TAIL(seq))
951 #define _TF_PP_SEQ_SIZE_47(seq) _TF_PP_SEQ_SIZE_46(_TF_PP_SEQ_TAIL(seq))
952 #define _TF_PP_SEQ_SIZE_48(seq) _TF_PP_SEQ_SIZE_47(_TF_PP_SEQ_TAIL(seq))
953 #define _TF_PP_SEQ_SIZE_49(seq) _TF_PP_SEQ_SIZE_48(_TF_PP_SEQ_TAIL(seq))
954 #define _TF_PP_SEQ_SIZE_50(seq) _TF_PP_SEQ_SIZE_49(_TF_PP_SEQ_TAIL(seq))
955 #define _TF_PP_SEQ_SIZE_51(seq) _TF_PP_SEQ_SIZE_50(_TF_PP_SEQ_TAIL(seq))
956 #define _TF_PP_SEQ_SIZE_52(seq) _TF_PP_SEQ_SIZE_51(_TF_PP_SEQ_TAIL(seq))
957 #define _TF_PP_SEQ_SIZE_53(seq) _TF_PP_SEQ_SIZE_52(_TF_PP_SEQ_TAIL(seq))
958 #define _TF_PP_SEQ_SIZE_54(seq) _TF_PP_SEQ_SIZE_53(_TF_PP_SEQ_TAIL(seq))
959 #define _TF_PP_SEQ_SIZE_55(seq) _TF_PP_SEQ_SIZE_54(_TF_PP_SEQ_TAIL(seq))
960 #define _TF_PP_SEQ_SIZE_56(seq) _TF_PP_SEQ_SIZE_55(_TF_PP_SEQ_TAIL(seq))
961 #define _TF_PP_SEQ_SIZE_57(seq) _TF_PP_SEQ_SIZE_56(_TF_PP_SEQ_TAIL(seq))
962 #define _TF_PP_SEQ_SIZE_58(seq) _TF_PP_SEQ_SIZE_57(_TF_PP_SEQ_TAIL(seq))
963 #define _TF_PP_SEQ_SIZE_59(seq) _TF_PP_SEQ_SIZE_58(_TF_PP_SEQ_TAIL(seq))
964 #define _TF_PP_SEQ_SIZE_60(seq) _TF_PP_SEQ_SIZE_59(_TF_PP_SEQ_TAIL(seq))
965 #define _TF_PP_SEQ_SIZE_61(seq) _TF_PP_SEQ_SIZE_60(_TF_PP_SEQ_TAIL(seq))
966 #define _TF_PP_SEQ_SIZE_62(seq) _TF_PP_SEQ_SIZE_61(_TF_PP_SEQ_TAIL(seq))
967 #define _TF_PP_SEQ_SIZE_63(seq) _TF_PP_SEQ_SIZE_62(_TF_PP_SEQ_TAIL(seq))
968 #define _TF_PP_SEQ_SIZE_64(seq) _TF_PP_SEQ_SIZE_63(_TF_PP_SEQ_TAIL(seq))
969 #define _TF_PP_SEQ_SIZE_65(seq) _TF_PP_SEQ_SIZE_64(_TF_PP_SEQ_TAIL(seq))
970 #define _TF_PP_SEQ_SIZE_66(seq) _TF_PP_SEQ_SIZE_65(_TF_PP_SEQ_TAIL(seq))
971 #define _TF_PP_SEQ_SIZE_67(seq) _TF_PP_SEQ_SIZE_66(_TF_PP_SEQ_TAIL(seq))
972 #define _TF_PP_SEQ_SIZE_68(seq) _TF_PP_SEQ_SIZE_67(_TF_PP_SEQ_TAIL(seq))
973 #define _TF_PP_SEQ_SIZE_69(seq) _TF_PP_SEQ_SIZE_68(_TF_PP_SEQ_TAIL(seq))
974 #define _TF_PP_SEQ_SIZE_70(seq) _TF_PP_SEQ_SIZE_69(_TF_PP_SEQ_TAIL(seq))
975 #define _TF_PP_SEQ_SIZE_71(seq) _TF_PP_SEQ_SIZE_70(_TF_PP_SEQ_TAIL(seq))
976 #define _TF_PP_SEQ_SIZE_72(seq) _TF_PP_SEQ_SIZE_71(_TF_PP_SEQ_TAIL(seq))
977 #define _TF_PP_SEQ_SIZE_73(seq) _TF_PP_SEQ_SIZE_72(_TF_PP_SEQ_TAIL(seq))
978 #define _TF_PP_SEQ_SIZE_74(seq) _TF_PP_SEQ_SIZE_73(_TF_PP_SEQ_TAIL(seq))
979 #define _TF_PP_SEQ_SIZE_75(seq) _TF_PP_SEQ_SIZE_74(_TF_PP_SEQ_TAIL(seq))
980 #define _TF_PP_SEQ_SIZE_76(seq) _TF_PP_SEQ_SIZE_75(_TF_PP_SEQ_TAIL(seq))
981 #define _TF_PP_SEQ_SIZE_77(seq) _TF_PP_SEQ_SIZE_76(_TF_PP_SEQ_TAIL(seq))
982 #define _TF_PP_SEQ_SIZE_78(seq) _TF_PP_SEQ_SIZE_77(_TF_PP_SEQ_TAIL(seq))
983 #define _TF_PP_SEQ_SIZE_79(seq) _TF_PP_SEQ_SIZE_78(_TF_PP_SEQ_TAIL(seq))
984 #define _TF_PP_SEQ_SIZE_80(seq) _TF_PP_SEQ_SIZE_79(_TF_PP_SEQ_TAIL(seq))
985 #define _TF_PP_SEQ_SIZE_81(seq) _TF_PP_SEQ_SIZE_80(_TF_PP_SEQ_TAIL(seq))
986 #define _TF_PP_SEQ_SIZE_82(seq) _TF_PP_SEQ_SIZE_81(_TF_PP_SEQ_TAIL(seq))
987 #define _TF_PP_SEQ_SIZE_83(seq) _TF_PP_SEQ_SIZE_82(_TF_PP_SEQ_TAIL(seq))
988 #define _TF_PP_SEQ_SIZE_84(seq) _TF_PP_SEQ_SIZE_83(_TF_PP_SEQ_TAIL(seq))
989 #define _TF_PP_SEQ_SIZE_85(seq) _TF_PP_SEQ_SIZE_84(_TF_PP_SEQ_TAIL(seq))
990 #define _TF_PP_SEQ_SIZE_86(seq) _TF_PP_SEQ_SIZE_85(_TF_PP_SEQ_TAIL(seq))
991 #define _TF_PP_SEQ_SIZE_87(seq) _TF_PP_SEQ_SIZE_86(_TF_PP_SEQ_TAIL(seq))
992 #define _TF_PP_SEQ_SIZE_88(seq) _TF_PP_SEQ_SIZE_87(_TF_PP_SEQ_TAIL(seq))
993 #define _TF_PP_SEQ_SIZE_89(seq) _TF_PP_SEQ_SIZE_88(_TF_PP_SEQ_TAIL(seq))
994 #define _TF_PP_SEQ_SIZE_90(seq) _TF_PP_SEQ_SIZE_89(_TF_PP_SEQ_TAIL(seq))
995 #define _TF_PP_SEQ_SIZE_91(seq) _TF_PP_SEQ_SIZE_90(_TF_PP_SEQ_TAIL(seq))
996 #define _TF_PP_SEQ_SIZE_92(seq) _TF_PP_SEQ_SIZE_91(_TF_PP_SEQ_TAIL(seq))
997 #define _TF_PP_SEQ_SIZE_93(seq) _TF_PP_SEQ_SIZE_92(_TF_PP_SEQ_TAIL(seq))
998 #define _TF_PP_SEQ_SIZE_94(seq) _TF_PP_SEQ_SIZE_93(_TF_PP_SEQ_TAIL(seq))
999 #define _TF_PP_SEQ_SIZE_95(seq) _TF_PP_SEQ_SIZE_94(_TF_PP_SEQ_TAIL(seq))
1000 #define _TF_PP_SEQ_SIZE_96(seq) _TF_PP_SEQ_SIZE_95(_TF_PP_SEQ_TAIL(seq))
1001 #define _TF_PP_SEQ_SIZE_97(seq) _TF_PP_SEQ_SIZE_96(_TF_PP_SEQ_TAIL(seq))
1002 #define _TF_PP_SEQ_SIZE_98(seq) _TF_PP_SEQ_SIZE_97(_TF_PP_SEQ_TAIL(seq))
1003 #define _TF_PP_SEQ_SIZE_99(seq) _TF_PP_SEQ_SIZE_98(_TF_PP_SEQ_TAIL(seq))
1004 #define _TF_PP_SEQ_SIZE_100(seq) _TF_PP_SEQ_SIZE_99(_TF_PP_SEQ_TAIL(seq))
1005 #define _TF_PP_SEQ_SIZE_101(seq) _TF_PP_SEQ_SIZE_100(_TF_PP_SEQ_TAIL(seq))
1006 #define _TF_PP_SEQ_SIZE_102(seq) _TF_PP_SEQ_SIZE_101(_TF_PP_SEQ_TAIL(seq))
1007 #define _TF_PP_SEQ_SIZE_103(seq) _TF_PP_SEQ_SIZE_102(_TF_PP_SEQ_TAIL(seq))
1008 #define _TF_PP_SEQ_SIZE_104(seq) _TF_PP_SEQ_SIZE_103(_TF_PP_SEQ_TAIL(seq))
1009 #define _TF_PP_SEQ_SIZE_105(seq) _TF_PP_SEQ_SIZE_104(_TF_PP_SEQ_TAIL(seq))
1010 #define _TF_PP_SEQ_SIZE_106(seq) _TF_PP_SEQ_SIZE_105(_TF_PP_SEQ_TAIL(seq))
1011 #define _TF_PP_SEQ_SIZE_107(seq) _TF_PP_SEQ_SIZE_106(_TF_PP_SEQ_TAIL(seq))
1012 #define _TF_PP_SEQ_SIZE_108(seq) _TF_PP_SEQ_SIZE_107(_TF_PP_SEQ_TAIL(seq))
1013 #define _TF_PP_SEQ_SIZE_109(seq) _TF_PP_SEQ_SIZE_108(_TF_PP_SEQ_TAIL(seq))
1014 #define _TF_PP_SEQ_SIZE_110(seq) _TF_PP_SEQ_SIZE_109(_TF_PP_SEQ_TAIL(seq))
1015 #define _TF_PP_SEQ_SIZE_111(seq) _TF_PP_SEQ_SIZE_110(_TF_PP_SEQ_TAIL(seq))
1016 #define _TF_PP_SEQ_SIZE_112(seq) _TF_PP_SEQ_SIZE_111(_TF_PP_SEQ_TAIL(seq))
1017 #define _TF_PP_SEQ_SIZE_113(seq) _TF_PP_SEQ_SIZE_112(_TF_PP_SEQ_TAIL(seq))
1018 #define _TF_PP_SEQ_SIZE_114(seq) _TF_PP_SEQ_SIZE_113(_TF_PP_SEQ_TAIL(seq))
1019 #define _TF_PP_SEQ_SIZE_115(seq) _TF_PP_SEQ_SIZE_114(_TF_PP_SEQ_TAIL(seq))
1020 #define _TF_PP_SEQ_SIZE_116(seq) _TF_PP_SEQ_SIZE_115(_TF_PP_SEQ_TAIL(seq))
1021 #define _TF_PP_SEQ_SIZE_117(seq) _TF_PP_SEQ_SIZE_116(_TF_PP_SEQ_TAIL(seq))
1022 #define _TF_PP_SEQ_SIZE_118(seq) _TF_PP_SEQ_SIZE_117(_TF_PP_SEQ_TAIL(seq))
1023 #define _TF_PP_SEQ_SIZE_119(seq) _TF_PP_SEQ_SIZE_118(_TF_PP_SEQ_TAIL(seq))
1024 #define _TF_PP_SEQ_SIZE_120(seq) _TF_PP_SEQ_SIZE_119(_TF_PP_SEQ_TAIL(seq))
1025 #define _TF_PP_SEQ_SIZE_121(seq) _TF_PP_SEQ_SIZE_120(_TF_PP_SEQ_TAIL(seq))
1026 #define _TF_PP_SEQ_SIZE_122(seq) _TF_PP_SEQ_SIZE_121(_TF_PP_SEQ_TAIL(seq))
1027 #define _TF_PP_SEQ_SIZE_123(seq) _TF_PP_SEQ_SIZE_122(_TF_PP_SEQ_TAIL(seq))
1028 #define _TF_PP_SEQ_SIZE_124(seq) _TF_PP_SEQ_SIZE_123(_TF_PP_SEQ_TAIL(seq))
1029 #define _TF_PP_SEQ_SIZE_125(seq) _TF_PP_SEQ_SIZE_124(_TF_PP_SEQ_TAIL(seq))
1030 #define _TF_PP_SEQ_SIZE_126(seq) _TF_PP_SEQ_SIZE_125(_TF_PP_SEQ_TAIL(seq))
1031 #define _TF_PP_SEQ_SIZE_127(seq) _TF_PP_SEQ_SIZE_126(_TF_PP_SEQ_TAIL(seq))
1032 #define _TF_PP_SEQ_SIZE_128(seq) _TF_PP_SEQ_SIZE_127(_TF_PP_SEQ_TAIL(seq))
1033 #define _TF_PP_SEQ_SIZE_129(seq) _TF_PP_SEQ_SIZE_128(_TF_PP_SEQ_TAIL(seq))
1034 #define _TF_PP_SEQ_SIZE_130(seq) _TF_PP_SEQ_SIZE_129(_TF_PP_SEQ_TAIL(seq))
1035 #define _TF_PP_SEQ_SIZE_131(seq) _TF_PP_SEQ_SIZE_130(_TF_PP_SEQ_TAIL(seq))
1036 #define _TF_PP_SEQ_SIZE_132(seq) _TF_PP_SEQ_SIZE_131(_TF_PP_SEQ_TAIL(seq))
1037 #define _TF_PP_SEQ_SIZE_133(seq) _TF_PP_SEQ_SIZE_132(_TF_PP_SEQ_TAIL(seq))
1038 #define _TF_PP_SEQ_SIZE_134(seq) _TF_PP_SEQ_SIZE_133(_TF_PP_SEQ_TAIL(seq))
1039 #define _TF_PP_SEQ_SIZE_135(seq) _TF_PP_SEQ_SIZE_134(_TF_PP_SEQ_TAIL(seq))
1040 #define _TF_PP_SEQ_SIZE_136(seq) _TF_PP_SEQ_SIZE_135(_TF_PP_SEQ_TAIL(seq))
1041 #define _TF_PP_SEQ_SIZE_137(seq) _TF_PP_SEQ_SIZE_136(_TF_PP_SEQ_TAIL(seq))
1042 #define _TF_PP_SEQ_SIZE_138(seq) _TF_PP_SEQ_SIZE_137(_TF_PP_SEQ_TAIL(seq))
1043 #define _TF_PP_SEQ_SIZE_139(seq) _TF_PP_SEQ_SIZE_138(_TF_PP_SEQ_TAIL(seq))
1044 #define _TF_PP_SEQ_SIZE_140(seq) _TF_PP_SEQ_SIZE_139(_TF_PP_SEQ_TAIL(seq))
1045 #define _TF_PP_SEQ_SIZE_141(seq) _TF_PP_SEQ_SIZE_140(_TF_PP_SEQ_TAIL(seq))
1046 #define _TF_PP_SEQ_SIZE_142(seq) _TF_PP_SEQ_SIZE_141(_TF_PP_SEQ_TAIL(seq))
1047 #define _TF_PP_SEQ_SIZE_143(seq) _TF_PP_SEQ_SIZE_142(_TF_PP_SEQ_TAIL(seq))
1048 #define _TF_PP_SEQ_SIZE_144(seq) _TF_PP_SEQ_SIZE_143(_TF_PP_SEQ_TAIL(seq))
1049 #define _TF_PP_SEQ_SIZE_145(seq) _TF_PP_SEQ_SIZE_144(_TF_PP_SEQ_TAIL(seq))
1050 #define _TF_PP_SEQ_SIZE_146(seq) _TF_PP_SEQ_SIZE_145(_TF_PP_SEQ_TAIL(seq))
1051 #define _TF_PP_SEQ_SIZE_147(seq) _TF_PP_SEQ_SIZE_146(_TF_PP_SEQ_TAIL(seq))
1052 #define _TF_PP_SEQ_SIZE_148(seq) _TF_PP_SEQ_SIZE_147(_TF_PP_SEQ_TAIL(seq))
1053 #define _TF_PP_SEQ_SIZE_149(seq) _TF_PP_SEQ_SIZE_148(_TF_PP_SEQ_TAIL(seq))
1054 #define _TF_PP_SEQ_SIZE_150(seq) _TF_PP_SEQ_SIZE_149(_TF_PP_SEQ_TAIL(seq))
1055 #define _TF_PP_SEQ_SIZE_151(seq) _TF_PP_SEQ_SIZE_150(_TF_PP_SEQ_TAIL(seq))
1056 #define _TF_PP_SEQ_SIZE_152(seq) _TF_PP_SEQ_SIZE_151(_TF_PP_SEQ_TAIL(seq))
1057 #define _TF_PP_SEQ_SIZE_153(seq) _TF_PP_SEQ_SIZE_152(_TF_PP_SEQ_TAIL(seq))
1058 #define _TF_PP_SEQ_SIZE_154(seq) _TF_PP_SEQ_SIZE_153(_TF_PP_SEQ_TAIL(seq))
1059 #define _TF_PP_SEQ_SIZE_155(seq) _TF_PP_SEQ_SIZE_154(_TF_PP_SEQ_TAIL(seq))
1060 #define _TF_PP_SEQ_SIZE_156(seq) _TF_PP_SEQ_SIZE_155(_TF_PP_SEQ_TAIL(seq))
1061 #define _TF_PP_SEQ_SIZE_157(seq) _TF_PP_SEQ_SIZE_156(_TF_PP_SEQ_TAIL(seq))
1062 #define _TF_PP_SEQ_SIZE_158(seq) _TF_PP_SEQ_SIZE_157(_TF_PP_SEQ_TAIL(seq))
1063 #define _TF_PP_SEQ_SIZE_159(seq) _TF_PP_SEQ_SIZE_158(_TF_PP_SEQ_TAIL(seq))
1064 #define _TF_PP_SEQ_SIZE_160(seq) _TF_PP_SEQ_SIZE_159(_TF_PP_SEQ_TAIL(seq))
1065 #define _TF_PP_SEQ_SIZE_161(seq) _TF_PP_SEQ_SIZE_160(_TF_PP_SEQ_TAIL(seq))
1066 #define _TF_PP_SEQ_SIZE_162(seq) _TF_PP_SEQ_SIZE_161(_TF_PP_SEQ_TAIL(seq))
1067 #define _TF_PP_SEQ_SIZE_163(seq) _TF_PP_SEQ_SIZE_162(_TF_PP_SEQ_TAIL(seq))
1068 #define _TF_PP_SEQ_SIZE_164(seq) _TF_PP_SEQ_SIZE_163(_TF_PP_SEQ_TAIL(seq))
1069 #define _TF_PP_SEQ_SIZE_165(seq) _TF_PP_SEQ_SIZE_164(_TF_PP_SEQ_TAIL(seq))
1070 #define _TF_PP_SEQ_SIZE_166(seq) _TF_PP_SEQ_SIZE_165(_TF_PP_SEQ_TAIL(seq))
1071 #define _TF_PP_SEQ_SIZE_167(seq) _TF_PP_SEQ_SIZE_166(_TF_PP_SEQ_TAIL(seq))
1072 #define _TF_PP_SEQ_SIZE_168(seq) _TF_PP_SEQ_SIZE_167(_TF_PP_SEQ_TAIL(seq))
1073 #define _TF_PP_SEQ_SIZE_169(seq) _TF_PP_SEQ_SIZE_168(_TF_PP_SEQ_TAIL(seq))
1074 #define _TF_PP_SEQ_SIZE_170(seq) _TF_PP_SEQ_SIZE_169(_TF_PP_SEQ_TAIL(seq))
1075 #define _TF_PP_SEQ_SIZE_171(seq) _TF_PP_SEQ_SIZE_170(_TF_PP_SEQ_TAIL(seq))
1076 #define _TF_PP_SEQ_SIZE_172(seq) _TF_PP_SEQ_SIZE_171(_TF_PP_SEQ_TAIL(seq))
1077 #define _TF_PP_SEQ_SIZE_173(seq) _TF_PP_SEQ_SIZE_172(_TF_PP_SEQ_TAIL(seq))
1078 #define _TF_PP_SEQ_SIZE_174(seq) _TF_PP_SEQ_SIZE_173(_TF_PP_SEQ_TAIL(seq))
1079 #define _TF_PP_SEQ_SIZE_175(seq) _TF_PP_SEQ_SIZE_174(_TF_PP_SEQ_TAIL(seq))
1080 #define _TF_PP_SEQ_SIZE_176(seq) _TF_PP_SEQ_SIZE_175(_TF_PP_SEQ_TAIL(seq))
1081 #define _TF_PP_SEQ_SIZE_177(seq) _TF_PP_SEQ_SIZE_176(_TF_PP_SEQ_TAIL(seq))
1082 #define _TF_PP_SEQ_SIZE_178(seq) _TF_PP_SEQ_SIZE_177(_TF_PP_SEQ_TAIL(seq))
1083 #define _TF_PP_SEQ_SIZE_179(seq) _TF_PP_SEQ_SIZE_178(_TF_PP_SEQ_TAIL(seq))
1084 #define _TF_PP_SEQ_SIZE_180(seq) _TF_PP_SEQ_SIZE_179(_TF_PP_SEQ_TAIL(seq))
1085 #define _TF_PP_SEQ_SIZE_181(seq) _TF_PP_SEQ_SIZE_180(_TF_PP_SEQ_TAIL(seq))
1086 #define _TF_PP_SEQ_SIZE_182(seq) _TF_PP_SEQ_SIZE_181(_TF_PP_SEQ_TAIL(seq))
1087 #define _TF_PP_SEQ_SIZE_183(seq) _TF_PP_SEQ_SIZE_182(_TF_PP_SEQ_TAIL(seq))
1088 #define _TF_PP_SEQ_SIZE_184(seq) _TF_PP_SEQ_SIZE_183(_TF_PP_SEQ_TAIL(seq))
1089 #define _TF_PP_SEQ_SIZE_185(seq) _TF_PP_SEQ_SIZE_184(_TF_PP_SEQ_TAIL(seq))
1090 #define _TF_PP_SEQ_SIZE_186(seq) _TF_PP_SEQ_SIZE_185(_TF_PP_SEQ_TAIL(seq))
1091 #define _TF_PP_SEQ_SIZE_187(seq) _TF_PP_SEQ_SIZE_186(_TF_PP_SEQ_TAIL(seq))
1092 #define _TF_PP_SEQ_SIZE_188(seq) _TF_PP_SEQ_SIZE_187(_TF_PP_SEQ_TAIL(seq))
1093 #define _TF_PP_SEQ_SIZE_189(seq) _TF_PP_SEQ_SIZE_188(_TF_PP_SEQ_TAIL(seq))
1094 #define _TF_PP_SEQ_SIZE_190(seq) _TF_PP_SEQ_SIZE_189(_TF_PP_SEQ_TAIL(seq))
1095 #define _TF_PP_SEQ_SIZE_191(seq) _TF_PP_SEQ_SIZE_190(_TF_PP_SEQ_TAIL(seq))
1096 #define _TF_PP_SEQ_SIZE_192(seq) _TF_PP_SEQ_SIZE_191(_TF_PP_SEQ_TAIL(seq))
1097 #define _TF_PP_SEQ_SIZE_193(seq) _TF_PP_SEQ_SIZE_192(_TF_PP_SEQ_TAIL(seq))
1098 #define _TF_PP_SEQ_SIZE_194(seq) _TF_PP_SEQ_SIZE_193(_TF_PP_SEQ_TAIL(seq))
1099 #define _TF_PP_SEQ_SIZE_195(seq) _TF_PP_SEQ_SIZE_194(_TF_PP_SEQ_TAIL(seq))
1100 #define _TF_PP_SEQ_SIZE_196(seq) _TF_PP_SEQ_SIZE_195(_TF_PP_SEQ_TAIL(seq))
1101 #define _TF_PP_SEQ_SIZE_197(seq) _TF_PP_SEQ_SIZE_196(_TF_PP_SEQ_TAIL(seq))
1102 #define _TF_PP_SEQ_SIZE_198(seq) _TF_PP_SEQ_SIZE_197(_TF_PP_SEQ_TAIL(seq))
1103 #define _TF_PP_SEQ_SIZE_199(seq) _TF_PP_SEQ_SIZE_198(_TF_PP_SEQ_TAIL(seq))
1104 #define _TF_PP_SEQ_SIZE_200(seq) _TF_PP_SEQ_SIZE_199(_TF_PP_SEQ_TAIL(seq))
1105 #define _TF_PP_SEQ_SIZE_201(seq) _TF_PP_SEQ_SIZE_200(_TF_PP_SEQ_TAIL(seq))
1106 #define _TF_PP_SEQ_SIZE_202(seq) _TF_PP_SEQ_SIZE_201(_TF_PP_SEQ_TAIL(seq))
1107 #define _TF_PP_SEQ_SIZE_203(seq) _TF_PP_SEQ_SIZE_202(_TF_PP_SEQ_TAIL(seq))
1108 #define _TF_PP_SEQ_SIZE_204(seq) _TF_PP_SEQ_SIZE_203(_TF_PP_SEQ_TAIL(seq))
1109 #define _TF_PP_SEQ_SIZE_205(seq) _TF_PP_SEQ_SIZE_204(_TF_PP_SEQ_TAIL(seq))
1110 #define _TF_PP_SEQ_SIZE_206(seq) _TF_PP_SEQ_SIZE_205(_TF_PP_SEQ_TAIL(seq))
1111 #define _TF_PP_SEQ_SIZE_207(seq) _TF_PP_SEQ_SIZE_206(_TF_PP_SEQ_TAIL(seq))
1112 #define _TF_PP_SEQ_SIZE_208(seq) _TF_PP_SEQ_SIZE_207(_TF_PP_SEQ_TAIL(seq))
1113 #define _TF_PP_SEQ_SIZE_209(seq) _TF_PP_SEQ_SIZE_208(_TF_PP_SEQ_TAIL(seq))
1114 #define _TF_PP_SEQ_SIZE_210(seq) _TF_PP_SEQ_SIZE_209(_TF_PP_SEQ_TAIL(seq))
1115 #define _TF_PP_SEQ_SIZE_211(seq) _TF_PP_SEQ_SIZE_210(_TF_PP_SEQ_TAIL(seq))
1116 #define _TF_PP_SEQ_SIZE_212(seq) _TF_PP_SEQ_SIZE_211(_TF_PP_SEQ_TAIL(seq))
1117 #define _TF_PP_SEQ_SIZE_213(seq) _TF_PP_SEQ_SIZE_212(_TF_PP_SEQ_TAIL(seq))
1118 #define _TF_PP_SEQ_SIZE_214(seq) _TF_PP_SEQ_SIZE_213(_TF_PP_SEQ_TAIL(seq))
1119 #define _TF_PP_SEQ_SIZE_215(seq) _TF_PP_SEQ_SIZE_214(_TF_PP_SEQ_TAIL(seq))
1120 #define _TF_PP_SEQ_SIZE_216(seq) _TF_PP_SEQ_SIZE_215(_TF_PP_SEQ_TAIL(seq))
1121 #define _TF_PP_SEQ_SIZE_217(seq) _TF_PP_SEQ_SIZE_216(_TF_PP_SEQ_TAIL(seq))
1122 #define _TF_PP_SEQ_SIZE_218(seq) _TF_PP_SEQ_SIZE_217(_TF_PP_SEQ_TAIL(seq))
1123 #define _TF_PP_SEQ_SIZE_219(seq) _TF_PP_SEQ_SIZE_218(_TF_PP_SEQ_TAIL(seq))
1124 #define _TF_PP_SEQ_SIZE_220(seq) _TF_PP_SEQ_SIZE_219(_TF_PP_SEQ_TAIL(seq))
1125 #define _TF_PP_SEQ_SIZE_221(seq) _TF_PP_SEQ_SIZE_220(_TF_PP_SEQ_TAIL(seq))
1126 #define _TF_PP_SEQ_SIZE_222(seq) _TF_PP_SEQ_SIZE_221(_TF_PP_SEQ_TAIL(seq))
1127 #define _TF_PP_SEQ_SIZE_223(seq) _TF_PP_SEQ_SIZE_222(_TF_PP_SEQ_TAIL(seq))
1128 #define _TF_PP_SEQ_SIZE_224(seq) _TF_PP_SEQ_SIZE_223(_TF_PP_SEQ_TAIL(seq))
1129 #define _TF_PP_SEQ_SIZE_225(seq) _TF_PP_SEQ_SIZE_224(_TF_PP_SEQ_TAIL(seq))
1130 #define _TF_PP_SEQ_SIZE_226(seq) _TF_PP_SEQ_SIZE_225(_TF_PP_SEQ_TAIL(seq))
1131 #define _TF_PP_SEQ_SIZE_227(seq) _TF_PP_SEQ_SIZE_226(_TF_PP_SEQ_TAIL(seq))
1132 #define _TF_PP_SEQ_SIZE_228(seq) _TF_PP_SEQ_SIZE_227(_TF_PP_SEQ_TAIL(seq))
1133 #define _TF_PP_SEQ_SIZE_229(seq) _TF_PP_SEQ_SIZE_228(_TF_PP_SEQ_TAIL(seq))
1134 // # Generates _TF_PP_SEQ_SIZE_IMPL for up to 229 elements
1135 // python3 -c 'print("#define _TF_PP_SEQ_SIZE_IMPL(seq) _TF_PP_SEQ_SIZE_229(seq{})".format("".join(f"({i})" for i in reversed(range(0, 230)))))'
1136 #define _TF_PP_SEQ_SIZE_IMPL(seq) _TF_PP_SEQ_SIZE_229(seq(229)(228)(227)(226)(225)(224)(223)(222)(221)(220)(219)(218)(217)(216)(215)(214)(213)(212)(211)(210)(209)(208)(207)(206)(205)(204)(203)(202)(201)(200)(199)(198)(197)(196)(195)(194)(193)(192)(191)(190)(189)(188)(187)(186)(185)(184)(183)(182)(181)(180)(179)(178)(177)(176)(175)(174)(173)(172)(171)(170)(169)(168)(167)(166)(165)(164)(163)(162)(161)(160)(159)(158)(157)(156)(155)(154)(153)(152)(151)(150)(149)(148)(147)(146)(145)(144)(143)(142)(141)(140)(139)(138)(137)(136)(135)(134)(133)(132)(131)(130)(129)(128)(127)(126)(125)(124)(123)(122)(121)(120)(119)(118)(117)(116)(115)(114)(113)(112)(111)(110)(109)(108)(107)(106)(105)(104)(103)(102)(101)(100)(99)(98)(97)(96)(95)(94)(93)(92)(91)(90)(89)(88)(87)(86)(85)(84)(83)(82)(81)(80)(79)(78)(77)(76)(75)(74)(73)(72)(71)(70)(69)(68)(67)(66)(65)(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)(0))
1137 
1138 /// Compute the size of a sequence of the form (x)(y)(z)(w)
1139 /// \code{cpp}
1140 /// // The macro should evaluate to 4
1141 /// TF_PP_SEQ_SIZE((x)(y)(z)(w))
1142 /// \endcode
1143 /// Limited to sequences of up to 229 elements
1144 #define TF_PP_SEQ_SIZE(seq) _TF_PP_SEQ_SIZE_IMPL(seq)
1145 
1146 #endif // PXR_BASE_TF_PREPROCESSOR_UTILS_LITE_H