Milena (Olena)
User documentation 2.0a Id
Main Page
Related Pages
Modules
Namespaces
Classes
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerator
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
Generated on Thu Nov 8 2012 10:58:13 for Milena (Olena) by
1.8.2-20120930