$extrastylesheet
Olena
User documentation 2.1
An Image Processing Platform
Milena
Getting started
API Reference Manual
All Classes
Examples
Demos
Publications
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
mln/core/macros.hh
1
// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
2
//
3
// This file is part of Olena.
4
//
5
// Olena is free software: you can redistribute it and/or modify it under
6
// the terms of the GNU General Public License as published by the Free
7
// Software Foundation, version 2 of the License.
8
//
9
// Olena is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
16
//
17
// As a special exception, you may use this file as part of a free
18
// software project without restriction. Specifically, if other files
19
// instantiate templates or use macros or inline functions from this
20
// file, or you compile this file and link it with other files to produce
21
// an executable, this file does not by itself cause the resulting
22
// executable to be covered by the GNU General Public License. This
23
// exception does not however invalidate any other reasons why the
24
// executable file might be covered by the GNU General Public License.
25
26
#ifndef MLN_CORE_MACROS_HH
27
# define MLN_CORE_MACROS_HH
28
32
33
34
# define mln_deduce(T, A1, A2) typename T::A1::A2
35
36
37
// a
38
41
# define mln_argument(T) typename T::argument
42
# define mln_argument_(T) T::argument
43
44
45
46
// b
47
51
# define mln_bkd_eiter(T) typename T::bkd_eiter
52
# define mln_bkd_eiter_(T) T::bkd_eiter
53
54
57
# define mln_bkd_niter(T) typename T::bkd_niter
58
# define mln_bkd_niter_(T) T::bkd_niter
59
60
63
# define mln_bkd_piter(T) typename T::bkd_piter
64
# define mln_bkd_piter_(T) T::bkd_piter
65
66
69
# define mln_bkd_qiter(T) typename T::bkd_qiter
70
# define mln_bkd_qiter_(T) T::bkd_qiter
71
72
75
# define mln_bkd_viter(T) typename T::bkd_viter
76
# define mln_bkd_viter_(T) T::bkd_viter
77
78
81
# define mln_box(T) typename mln::box<mln_psite(T)>
82
# define mln_box_(T) mln::box<mln_psite(T)>
83
84
85
86
// c
87
90
# define mln_coord(T) typename T::coord
91
# define mln_coord_(T) T::coord
92
93
94
95
// d
96
99
# define mln_delta(T) typename T::delta
100
# define mln_delta_(T) T::delta
101
102
105
# define mln_dpoint(T) typename T::dpoint
106
# define mln_dpoint_(T) T::dpoint
107
108
111
# define mln_dpsite(T) typename T::dpsite
112
# define mln_dpsite_(T) T::dpsite
113
114
115
116
// e
117
120
# define mln_eiter(T) typename T::eiter
121
# define mln_eiter_(T) T::eiter
122
123
126
# define mln_graph(T) typename T::graph_t
127
# define mln_graph_(T) T::graph_t
128
129
132
# define mln_element(T) typename T::element
133
# define mln_element_(T) T::element
134
135
138
# define mln_graph_element(T) typename T::graph_element
139
# define mln_graph_element_(T) T::graph_element
140
141
144
# define mln_enc(T) typename T::enc
145
# define mln_enc_(T) T::enc
146
147
150
# define mln_equiv(T) typename T::equiv
151
# define mln_equiv_(T) T::equiv
152
153
154
155
// f
156
160
# define mln_fwd_eiter(T) typename T::fwd_eiter
161
# define mln_fwd_eiter_(T) T::fwd_eiter
162
163
166
# define mln_fwd_niter(T) typename T::fwd_niter
167
# define mln_fwd_niter_(T) T::fwd_niter
168
169
172
# define mln_fwd_piter(T) typename T::fwd_piter
173
# define mln_fwd_piter_(T) T::fwd_piter
174
175
178
# define mln_fwd_qiter(T) typename T::fwd_qiter
179
# define mln_fwd_qiter_(T) T::fwd_qiter
180
181
184
# define mln_fwd_viter(T) typename T::fwd_viter
185
# define mln_fwd_viter_(T) T::fwd_viter
186
187
188
189
// g
190
193
# define mln_geom(T) typename T::geom
194
# define mln_geom_(T) T::geom
195
196
199
# define mln_grid(T) typename T::grid
200
# define mln_grid_(T) T::grid
201
202
203
204
// i
205
208
# define mln_i_element(T) typename T::i_element
209
# define mln_i_element_(T) T::i_element
210
211
214
# define mln_image(T) typename T::image
215
# define mln_image_(T) T::image
216
217
220
# define mln_invert(T) typename T::invert
221
# define mln_invert_(T) T::invert
222
223
224
225
// l
226
229
# define mln_lvalue(T) typename T::lvalue
230
# define mln_lvalue_(T) T::lvalue
231
232
233
234
// m
235
238
# define mln_mesh(T) typename T::mesh
239
# define mln_mesh_(T) T::mesh
240
241
242
243
// p
244
247
# define mln_piter(T) typename T::piter
248
# define mln_piter_(T) T::piter
249
250
254
# define mln_line_piter(T) typename T::line_piter
255
# define mln_line_piter_(T) T::line_piter
256
257
260
# define mln_domain(T) typename T::domain_t
261
# define mln_domain_(T) T::domain_t
262
263
266
# define mln_pset(T) typename T::pset
267
# define mln_pset_(T) T::pset
268
269
272
# define mln_psite(T) typename T::psite
273
# define mln_psite_(T) T::psite
274
275
278
# define mln_point(T) typename T::point
279
# define mln_point_(T) T::point
280
281
282
283
// q
284
288
# define mln_qlf_value(T) typename mln::trait::qlf_value< T >::ret
289
# define mln_qlf_value_(T) mln::trait::qlf_value< T >::ret
290
291
294
# define mln_qiter(T) typename T::fwd_qiter
295
# define mln_qiter_(T) T::fwd_qiter
296
297
300
# define mln_q_result(T) typename T::q_result
301
# define mln_q_result_(T) T::q_result
302
303
306
# define mln_q_subject(T) typename T::q_subject
307
# define mln_q_subject_(T) T::q_subject
308
309
310
311
// n
312
315
# define mln_niter(T) typename T::fwd_niter
316
# define mln_niter_(T) T::fwd_niter
317
318
319
320
// r
321
324
# define mln_r_element(T) typename T::r_element
325
# define mln_r_element_(T) T::r_element
326
327
330
# define mln_regular(T) typename T::regular
331
# define mln_regular_(T) T::regular
332
333
336
# define mln_result(T) typename T::result
337
# define mln_result_(T) T::result
338
339
342
# define mln_rvalue(T) typename T::rvalue
343
# define mln_rvalue_(T) T::rvalue
344
345
346
347
// s
348
351
# define mln_site(T) typename T::site
352
# define mln_site_(T) T::site
353
354
355
// /// Shortcuts to access the subject type associated to T.
356
// /// \{
357
// # define mln_subject(T) typename T::subject
358
// # define mln_subject_(T) T::subject
359
// /// \}
360
361
362
// t
363
366
# define mln_target(T) typename T::target
367
# define mln_target_(T) T::target
368
369
370
371
372
// u
373
376
# define mln_unmorph(T) typename T::unmorph
377
# define mln_unmorph_(T) T::unmorph
378
379
380
381
382
// v
383
386
# define mln_value(T) typename T::value
387
# define mln_value_(T) T::value
388
389
392
# define mln_vec(T) typename T::vec
393
# define mln_vec_(T) T::vec
394
395
398
# define mln_vset(T) typename T::t_eligible_values_set
399
# define mln_vset_(T) T::t_eligible_values_set
400
401
404
# define mln_viter(T) typename T::fwd_viter
405
# define mln_viter_(T) T::fwd_viter
406
407
408
409
// w
410
413
# define mln_weight(T) typename T::weight
414
# define mln_weight_(T) T::weight
415
416
419
# define mln_window(T) typename T::window
420
# define mln_window_(T) T::window
421
422
423
424
425
426
// FIXME: Just include trait/all.hh !!!
427
428
# define mln_fwd_pixter(I) typename mln::trait::fwd_pixter< I >::ret
429
# define mln_fwd_pixter_(I) mln::trait::fwd_pixter< I >::ret
430
431
# define mln_bkd_pixter(I) typename mln::trait::bkd_pixter< I >::ret
432
# define mln_bkd_pixter_(I) mln::trait::bkd_pixter< I >::ret
433
434
# define mln_pixter(I) mln_fwd_pixter(I)
435
# define mln_pixter_(I) mln_fwd_pixter_(I)
436
437
438
# define mln_fwd_qixter(I, W) typename mln::trait::fwd_qixter< I, W >::ret
439
# define mln_fwd_qixter_(I, W) mln::trait::fwd_qixter< I, W >::ret
440
441
# define mln_bkd_qixter(I, W) typename mln::trait::bkd_qixter< I, W >::ret
442
# define mln_bkd_qixter_(I, W) mln::trait::bkd_qixter< I, W >::ret
443
444
# define mln_qixter(I, W) mln_fwd_qixter(I, W)
445
# define mln_qixter_(I, W) mln_fwd_qixter_(I, W)
446
447
448
# define mln_fwd_nixter(I, N) typename mln::trait::fwd_nixter< I, N >::ret
449
# define mln_fwd_nixter_(I, N) mln::trait::fwd_nixter< I, N >::ret
450
451
# define mln_bkd_nixter(I, N) typename mln::trait::bkd_nixter< I, N >::ret
452
# define mln_bkd_nixter_(I, N) mln::trait::bkd_nixter< I, N >::ret
453
454
# define mln_nixter(I, N) mln_fwd_nixter(I, N)
455
# define mln_nixter_(I, N) mln_fwd_nixter_(I, N)
456
459
# define mln_vertex_iter(G) typename G::vertex_iter
460
# define mln_vertex_iter_(G) G::vertex_iter
461
# define mln_vertex_fwd_iter(G) typename G::vertex_fwd_iter
462
# define mln_vertex_fwd_iter_(G) G::vertex_fwd_iter
463
# define mln_vertex_bkd_iter(G) typename G::vertex_bkd_iter
464
# define mln_vertex_bkd_iter_(G) G::vertex_bkd_iter
465
466
469
# define mln_edge_iter(G) typename G::edge_iter
470
# define mln_edge_iter_(G) G::edge_iter
471
# define mln_edge_fwd_iter(G) typename G::edge_fwd_iter
472
# define mln_edge_fwd_iter_(G) G::edge_fwd_iter
473
# define mln_edge_bkd_iter(G) typename G::edge_bkd_iter
474
# define mln_edge_bkd_iter_(G) G::edge_bkd_iter
475
476
480
# define mln_vertex_nbh_vertex_iter(G) typename G::vertex_nbh_vertex_iter
481
# define mln_vertex_nbh_vertex_iter_(G) G::vertex_nbh_vertex_iter
482
# define mln_vertex_nbh_vertex_fwd_iter(G) typename G::vertex_nbh_vertex_fwd_iter
483
# define mln_vertex_nbh_vertex_fwd_iter_(G) G::vertex_nbh_vertex_fwd_iter
484
# define mln_vertex_nbh_vertex_bkd_iter(G) typename G::vertex_nbh_vertex_bkd_iter
485
# define mln_vertex_nbh_vertex_bkd_iter_(G) G::vertex_nbh_vertex_bkd_iter
486
487
491
# define mln_vertex_nbh_edge_iter(G) typename G::vertex_nbh_edge_iter
492
# define mln_vertex_nbh_edge_iter_(G) G::vertex_nbh_edge_iter
493
# define mln_vertex_nbh_edge_fwd_iter(G) typename G::vertex_nbh_edge_fwd_iter
494
# define mln_vertex_nbh_edge_fwd_iter_(G) G::vertex_nbh_edge_fwd_iter
495
# define mln_vertex_nbh_edge_bkd_iter(G) typename G::vertex_nbh_edge_bkd_iter
496
# define mln_vertex_nbh_edge_bkd_iter_(G) G::vertex_nbh_edge_bkd_iter
497
498
502
# define mln_edge_nbh_edge_iter(G) typename G::edge_nbh_edge_iter
503
# define mln_edge_nbh_edge_iter_(G) G::edge_nbh_edge_iter
504
# define mln_edge_nbh_edge_fwd_iter(G) typename G::edge_nbh_edge_fwd_iter
505
# define mln_edge_nbh_edge_fwd_iter_(G) G::edge_nbh_edge_fwd_iter
506
# define mln_edge_nbh_edge_bkd_iter(G) typename G::edge_nbh_edge_bkd_iter
507
# define mln_edge_nbh_edge_bkd_iter_(G) G::edge_nbh_edge_bkd_iter
508
509
510
#endif // ! MLN_CORE_MACROS_HH
mln
core
macros.hh
Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)