Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkPPSeqForEachProduct.h
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 #/* **************************************************************************
17 # * *
18 # * (C) Copyright Paul Mensonides 2002.
19 # * Distributed under the Boost Software License, Version 1.0. (See
20 # * accompanying file LICENSE_1_0.txt or copy at
21 # * http://www.boost.org/LICENSE_1_0.txt)
22 # * *
23 # ************************************************************************** */
24 #
25 #/* See http://www.boost.org for most recent version. */
26 #
27 #ifndef MITK_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP
28 #define MITK_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP
29 #
30 #include "mitkPPArithmeticDec.h"
31 #include "mitkPPConfig.h"
32 #include "mitkPPControlIf.h"
33 #include "mitkPPRepetitionFor.h"
34 #include "mitkPPSeq.h"
35 #include "mitkPPSeqSize.h"
36 #include "mitkPPTupleElem.h"
37 #include "mitkPPTupleRem.h"
38 #
39 #/* MITK_PP_SEQ_FOR_EACH_PRODUCT */
40 #
41 #define MITK_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) MITK_PP_SEQ_FOR_EACH_PRODUCT_E(MITK_PP_FOR, macro, sets)
42 #
43 #/* MITK_PP_SEQ_FOR_EACH_PRODUCT_R */
44 #
45 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) MITK_PP_SEQ_FOR_EACH_PRODUCT_E(MITK_PP_FOR_##r, macro, sets)
46 #
47 #if ~MITK_PP_CONFIG_FLAGS() & MITK_PP_CONFIG_EDG()
48 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) \
49  impl((MITK_PP_SEQ_HEAD(sets)(nil), MITK_PP_SEQ_TAIL(sets)(nil), (nil), macro), \
50  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
51  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
52  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_0)
53 #else
54 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) MITK_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets)
55 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) \
56  impl((MITK_PP_SEQ_HEAD(sets)(nil), MITK_PP_SEQ_TAIL(sets)(nil), (nil), macro), \
57  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
58  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
59  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_0)
60 #endif
61 #
62 #if MITK_PP_CONFIG_FLAGS() & MITK_PP_CONFIG_STRICT()
63 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_P_I data
64 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) MITK_PP_DEC(MITK_PP_SEQ_SIZE(cset))
65 #else
66 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) MITK_PP_DEC(MITK_PP_SEQ_SIZE(MITK_PP_TUPLE_ELEM(4, 0, data)))
67 #endif
68 #
69 #if ~MITK_PP_CONFIG_FLAGS() & MITK_PP_CONFIG_MWCC()
70 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_O_I data
71 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (MITK_PP_SEQ_TAIL(cset), rset, res, macro)
72 #else
73 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) \
74  (MITK_PP_SEQ_TAIL(MITK_PP_TUPLE_ELEM(4, 0, data)), \
75  MITK_PP_TUPLE_ELEM(4, 1, data), \
76  MITK_PP_TUPLE_ELEM(4, 2, data), \
77  MITK_PP_TUPLE_ELEM(4, 3, data))
78 #endif
79 #
80 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) \
81  MITK_PP_IF(MITK_PP_DEC(MITK_PP_SEQ_SIZE(MITK_PP_TUPLE_ELEM(4, 1, data))), \
82  MITK_PP_SEQ_FOR_EACH_PRODUCT_N_##i, \
83  MITK_PP_SEQ_FOR_EACH_PRODUCT_I)
84 #
85 #if ~MITK_PP_CONFIG_FLAGS() & MITK_PP_CONFIG_EDG()
86 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) \
87  MITK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, \
88  MITK_PP_TUPLE_ELEM(4, 0, data), \
89  MITK_PP_TUPLE_ELEM(4, 1, data), \
90  MITK_PP_TUPLE_ELEM(4, 2, data), \
91  MITK_PP_TUPLE_ELEM(4, 3, data))
92 #else
93 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, MITK_PP_TUPLE_REM_4 data)
94 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) MITK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im)
95 #endif
96 #
97 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) \
98  macro(r, MITK_PP_SEQ_TAIL(res(MITK_PP_SEQ_HEAD(cset))))
99 #
100 #if ~MITK_PP_CONFIG_FLAGS() & MITK_PP_CONFIG_MWCC()
101 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data) MITK_PP_SEQ_FOR_EACH_PRODUCT_H_I data
102 #else
103 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data) \
104  MITK_PP_SEQ_FOR_EACH_PRODUCT_H_I(MITK_PP_TUPLE_ELEM(4, 0, data), \
105  MITK_PP_TUPLE_ELEM(4, 1, data), \
106  MITK_PP_TUPLE_ELEM(4, 2, data), \
107  MITK_PP_TUPLE_ELEM(4, 3, data))
108 #endif
109 #
110 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) \
111  (MITK_PP_SEQ_HEAD(rset)(nil), MITK_PP_SEQ_TAIL(rset), res(MITK_PP_SEQ_HEAD(cset)), macro)
112 #
113 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data)
114 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data)
115 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data)
116 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data)
117 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data)
118 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data)
119 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data)
120 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data)
121 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data)
122 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data)
123 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data)
124 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data)
125 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data)
126 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data)
127 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data)
128 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data)
129 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data)
130 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data)
131 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data)
132 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data)
133 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data)
134 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data)
135 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data)
136 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data)
137 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data)
138 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) MITK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data)
139 #
140 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) \
141  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
142  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
143  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
144  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_1)
145 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) \
146  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
147  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
148  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
149  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_2)
150 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) \
151  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
152  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
153  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
154  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_3)
155 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) \
156  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
157  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
158  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
159  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_4)
160 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) \
161  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
162  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
163  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
164  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_5)
165 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) \
166  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
167  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
168  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
169  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_6)
170 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) \
171  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
172  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
173  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
174  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_7)
175 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) \
176  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
177  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
178  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
179  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_8)
180 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) \
181  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
182  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
183  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
184  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_9)
185 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) \
186  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
187  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
188  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
189  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_10)
190 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) \
191  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
192  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
193  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
194  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_11)
195 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) \
196  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
197  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
198  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
199  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_12)
200 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) \
201  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
202  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
203  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
204  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_13)
205 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) \
206  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
207  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
208  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
209  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_14)
210 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) \
211  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
212  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
213  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
214  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_15)
215 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) \
216  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
217  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
218  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
219  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_16)
220 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) \
221  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
222  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
223  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
224  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_17)
225 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) \
226  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
227  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
228  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
229  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_18)
230 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) \
231  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
232  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
233  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
234  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_19)
235 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) \
236  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
237  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
238  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
239  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_20)
240 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) \
241  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
242  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
243  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
244  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_21)
245 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) \
246  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
247  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
248  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
249  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_22)
250 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) \
251  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
252  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
253  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
254  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_23)
255 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) \
256  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
257  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
258  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
259  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_24)
260 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) \
261  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
262  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
263  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
264  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_25)
265 #define MITK_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) \
266  MITK_PP_FOR_##r(MITK_PP_SEQ_FOR_EACH_PRODUCT_H(data), \
267  MITK_PP_SEQ_FOR_EACH_PRODUCT_P, \
268  MITK_PP_SEQ_FOR_EACH_PRODUCT_O, \
269  MITK_PP_SEQ_FOR_EACH_PRODUCT_M_26)
270 #
271 #endif