Loading...
Searching...
No Matches
preprocessorUtilsLite.h
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// boost. Do not add any includes of boost headers, such as
29// <boost/preprocessor/...> or <boost/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
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
46#define TF_PP_STRINGIZE(x) TF_PP_STRINGIZE_IMPL(x)
47
48#ifdef ARCH_COMPILER_MSVC
49
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
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
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
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
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
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
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
340// We can't use
341// BOOST_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
398#define TF_PP_IS_TUPLE(arg) _TF_PP_IS_PARENS(arg)
399
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
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
1144#define TF_PP_SEQ_SIZE(seq) _TF_PP_SEQ_SIZE_IMPL(seq)
1145
1146#endif // PXR_BASE_TF_PREPROCESSOR_UTILS_LITE_H