Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
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