Milena (Olena)
User documentation 2.0a Id
|
00001 // Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) 00002 // 00003 // This file is part of Olena. 00004 // 00005 // Olena is free software: you can redistribute it and/or modify it under 00006 // the terms of the GNU General Public License as published by the Free 00007 // Software Foundation, version 2 of the License. 00008 // 00009 // Olena is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 // General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with Olena. If not, see <http://www.gnu.org/licenses/>. 00016 // 00017 // As a special exception, you may use this file as part of a free 00018 // software project without restriction. Specifically, if other files 00019 // instantiate templates or use macros or inline functions from this 00020 // file, or you compile this file and link it with other files to produce 00021 // an executable, this file does not by itself cause the resulting 00022 // executable to be covered by the GNU General Public License. This 00023 // exception does not however invalidate any other reasons why the 00024 // executable file might be covered by the GNU General Public License. 00025 00026 #ifndef MLN_CORE_MACROS_HH 00027 # define MLN_CORE_MACROS_HH 00028 00032 00033 00034 # define mln_deduce(T, A1, A2) typename T::A1::A2 00035 00036 00037 // a 00038 00041 # define mln_argument(T) typename T::argument 00042 # define mln_argument_(T) T::argument 00043 00044 00045 00046 // b 00047 00051 # define mln_bkd_eiter(T) typename T::bkd_eiter 00052 # define mln_bkd_eiter_(T) T::bkd_eiter 00053 00054 00057 # define mln_bkd_niter(T) typename T::bkd_niter 00058 # define mln_bkd_niter_(T) T::bkd_niter 00059 00060 00063 # define mln_bkd_piter(T) typename T::bkd_piter 00064 # define mln_bkd_piter_(T) T::bkd_piter 00065 00066 00069 # define mln_bkd_qiter(T) typename T::bkd_qiter 00070 # define mln_bkd_qiter_(T) T::bkd_qiter 00071 00072 00075 # define mln_bkd_viter(T) typename T::bkd_viter 00076 # define mln_bkd_viter_(T) T::bkd_viter 00077 00078 00081 # define mln_box(T) typename mln::box<mln_psite(T)> 00082 # define mln_box_(T) mln::box<mln_psite(T)> 00083 00084 00085 00086 // c 00087 00090 # define mln_coord(T) typename T::coord 00091 # define mln_coord_(T) T::coord 00092 00093 00094 00095 // d 00096 00099 # define mln_delta(T) typename T::delta 00100 # define mln_delta_(T) T::delta 00101 00102 00105 # define mln_dpoint(T) typename T::dpoint 00106 # define mln_dpoint_(T) T::dpoint 00107 00108 00111 # define mln_dpsite(T) typename T::dpsite 00112 # define mln_dpsite_(T) T::dpsite 00113 00114 00115 00116 // e 00117 00120 # define mln_eiter(T) typename T::eiter 00121 # define mln_eiter_(T) T::eiter 00122 00123 00126 # define mln_graph(T) typename T::graph_t 00127 # define mln_graph_(T) T::graph_t 00128 00129 00132 # define mln_element(T) typename T::element 00133 # define mln_element_(T) T::element 00134 00135 00138 # define mln_graph_element(T) typename T::graph_element 00139 # define mln_graph_element_(T) T::graph_element 00140 00141 00144 # define mln_enc(T) typename T::enc 00145 # define mln_enc_(T) T::enc 00146 00147 00150 # define mln_equiv(T) typename T::equiv 00151 # define mln_equiv_(T) T::equiv 00152 00153 00154 00155 // f 00156 00160 # define mln_fwd_eiter(T) typename T::fwd_eiter 00161 # define mln_fwd_eiter_(T) T::fwd_eiter 00162 00163 00166 # define mln_fwd_niter(T) typename T::fwd_niter 00167 # define mln_fwd_niter_(T) T::fwd_niter 00168 00169 00172 # define mln_fwd_piter(T) typename T::fwd_piter 00173 # define mln_fwd_piter_(T) T::fwd_piter 00174 00175 00178 # define mln_fwd_qiter(T) typename T::fwd_qiter 00179 # define mln_fwd_qiter_(T) T::fwd_qiter 00180 00181 00184 # define mln_fwd_viter(T) typename T::fwd_viter 00185 # define mln_fwd_viter_(T) T::fwd_viter 00186 00187 00188 00189 // g 00190 00193 # define mln_geom(T) typename T::geom 00194 # define mln_geom_(T) T::geom 00195 00196 00199 # define mln_grid(T) typename T::grid 00200 # define mln_grid_(T) T::grid 00201 00202 00203 00204 // i 00205 00208 # define mln_i_element(T) typename T::i_element 00209 # define mln_i_element_(T) T::i_element 00210 00211 00214 # define mln_image(T) typename T::image 00215 # define mln_image_(T) T::image 00216 00217 00220 # define mln_invert(T) typename T::invert 00221 # define mln_invert_(T) T::invert 00222 00223 00224 00225 // l 00226 00229 # define mln_lvalue(T) typename T::lvalue 00230 # define mln_lvalue_(T) T::lvalue 00231 00232 00233 00234 // m 00235 00238 # define mln_mesh(T) typename T::mesh 00239 # define mln_mesh_(T) T::mesh 00240 00241 00242 00243 // p 00244 00247 # define mln_piter(T) typename T::piter 00248 # define mln_piter_(T) T::piter 00249 00250 00254 # define mln_line_piter(T) typename T::line_piter 00255 # define mln_line_piter_(T) T::line_piter 00256 00257 00260 # define mln_domain(T) typename T::domain_t 00261 # define mln_domain_(T) T::domain_t 00262 00263 00266 # define mln_pset(T) typename T::pset 00267 # define mln_pset_(T) T::pset 00268 00269 00272 # define mln_psite(T) typename T::psite 00273 # define mln_psite_(T) T::psite 00274 00275 00278 # define mln_point(T) typename T::point 00279 # define mln_point_(T) T::point 00280 00281 00282 00283 // q 00284 00288 # define mln_qlf_value(T) typename mln::trait::qlf_value< T >::ret 00289 # define mln_qlf_value_(T) mln::trait::qlf_value< T >::ret 00290 00291 00294 # define mln_qiter(T) typename T::fwd_qiter 00295 # define mln_qiter_(T) T::fwd_qiter 00296 00297 00300 # define mln_q_result(T) typename T::q_result 00301 # define mln_q_result_(T) T::q_result 00302 00303 00306 # define mln_q_subject(T) typename T::q_subject 00307 # define mln_q_subject_(T) T::q_subject 00308 00309 00310 00311 // n 00312 00315 # define mln_niter(T) typename T::fwd_niter 00316 # define mln_niter_(T) T::fwd_niter 00317 00318 00319 00320 // r 00321 00324 # define mln_r_element(T) typename T::r_element 00325 # define mln_r_element_(T) T::r_element 00326 00327 00330 # define mln_regular(T) typename T::regular 00331 # define mln_regular_(T) T::regular 00332 00333 00336 # define mln_result(T) typename T::result 00337 # define mln_result_(T) T::result 00338 00339 00342 # define mln_rvalue(T) typename T::rvalue 00343 # define mln_rvalue_(T) T::rvalue 00344 00345 00346 00347 // s 00348 00351 # define mln_site(T) typename T::site 00352 # define mln_site_(T) T::site 00353 00354 00355 // /// Shortcuts to access the subject type associated to T. 00356 // /// \{ 00357 // # define mln_subject(T) typename T::subject 00358 // # define mln_subject_(T) T::subject 00359 // /// \} 00360 00361 00362 // t 00363 00366 # define mln_target(T) typename T::target 00367 # define mln_target_(T) T::target 00368 00369 00370 00371 00372 // u 00373 00376 # define mln_unmorph(T) typename T::unmorph 00377 # define mln_unmorph_(T) T::unmorph 00378 00379 00380 00381 00382 // v 00383 00386 # define mln_value(T) typename T::value 00387 # define mln_value_(T) T::value 00388 00389 00392 # define mln_vec(T) typename T::vec 00393 # define mln_vec_(T) T::vec 00394 00395 00398 # define mln_vset(T) typename T::t_eligible_values_set 00399 # define mln_vset_(T) T::t_eligible_values_set 00400 00401 00404 # define mln_viter(T) typename T::fwd_viter 00405 # define mln_viter_(T) T::fwd_viter 00406 00407 00408 00409 // w 00410 00413 # define mln_weight(T) typename T::weight 00414 # define mln_weight_(T) T::weight 00415 00416 00419 # define mln_window(T) typename T::window 00420 # define mln_window_(T) T::window 00421 00422 00423 00424 00425 00426 // FIXME: Just include trait/all.hh !!! 00427 00428 # define mln_fwd_pixter(I) typename mln::trait::fwd_pixter< I >::ret 00429 # define mln_fwd_pixter_(I) mln::trait::fwd_pixter< I >::ret 00430 00431 # define mln_bkd_pixter(I) typename mln::trait::bkd_pixter< I >::ret 00432 # define mln_bkd_pixter_(I) mln::trait::bkd_pixter< I >::ret 00433 00434 # define mln_pixter(I) mln_fwd_pixter(I) 00435 # define mln_pixter_(I) mln_fwd_pixter_(I) 00436 00437 00438 # define mln_fwd_qixter(I, W) typename mln::trait::fwd_qixter< I, W >::ret 00439 # define mln_fwd_qixter_(I, W) mln::trait::fwd_qixter< I, W >::ret 00440 00441 # define mln_bkd_qixter(I, W) typename mln::trait::bkd_qixter< I, W >::ret 00442 # define mln_bkd_qixter_(I, W) mln::trait::bkd_qixter< I, W >::ret 00443 00444 # define mln_qixter(I, W) mln_fwd_qixter(I, W) 00445 # define mln_qixter_(I, W) mln_fwd_qixter_(I, W) 00446 00447 00448 # define mln_fwd_nixter(I, N) typename mln::trait::fwd_nixter< I, N >::ret 00449 # define mln_fwd_nixter_(I, N) mln::trait::fwd_nixter< I, N >::ret 00450 00451 # define mln_bkd_nixter(I, N) typename mln::trait::bkd_nixter< I, N >::ret 00452 # define mln_bkd_nixter_(I, N) mln::trait::bkd_nixter< I, N >::ret 00453 00454 # define mln_nixter(I, N) mln_fwd_nixter(I, N) 00455 # define mln_nixter_(I, N) mln_fwd_nixter_(I, N) 00456 00459 # define mln_vertex_iter(G) typename G::vertex_iter 00460 # define mln_vertex_iter_(G) G::vertex_iter 00461 # define mln_vertex_fwd_iter(G) typename G::vertex_fwd_iter 00462 # define mln_vertex_fwd_iter_(G) G::vertex_fwd_iter 00463 # define mln_vertex_bkd_iter(G) typename G::vertex_bkd_iter 00464 # define mln_vertex_bkd_iter_(G) G::vertex_bkd_iter 00465 00466 00469 # define mln_edge_iter(G) typename G::edge_iter 00470 # define mln_edge_iter_(G) G::edge_iter 00471 # define mln_edge_fwd_iter(G) typename G::edge_fwd_iter 00472 # define mln_edge_fwd_iter_(G) G::edge_fwd_iter 00473 # define mln_edge_bkd_iter(G) typename G::edge_bkd_iter 00474 # define mln_edge_bkd_iter_(G) G::edge_bkd_iter 00475 00476 00480 # define mln_vertex_nbh_vertex_iter(G) typename G::vertex_nbh_vertex_iter 00481 # define mln_vertex_nbh_vertex_iter_(G) G::vertex_nbh_vertex_iter 00482 # define mln_vertex_nbh_vertex_fwd_iter(G) typename G::vertex_nbh_vertex_fwd_iter 00483 # define mln_vertex_nbh_vertex_fwd_iter_(G) G::vertex_nbh_vertex_fwd_iter 00484 # define mln_vertex_nbh_vertex_bkd_iter(G) typename G::vertex_nbh_vertex_bkd_iter 00485 # define mln_vertex_nbh_vertex_bkd_iter_(G) G::vertex_nbh_vertex_bkd_iter 00486 00487 00491 # define mln_vertex_nbh_edge_iter(G) typename G::vertex_nbh_edge_iter 00492 # define mln_vertex_nbh_edge_iter_(G) G::vertex_nbh_edge_iter 00493 # define mln_vertex_nbh_edge_fwd_iter(G) typename G::vertex_nbh_edge_fwd_iter 00494 # define mln_vertex_nbh_edge_fwd_iter_(G) G::vertex_nbh_edge_fwd_iter 00495 # define mln_vertex_nbh_edge_bkd_iter(G) typename G::vertex_nbh_edge_bkd_iter 00496 # define mln_vertex_nbh_edge_bkd_iter_(G) G::vertex_nbh_edge_bkd_iter 00497 00498 00502 # define mln_edge_nbh_edge_iter(G) typename G::edge_nbh_edge_iter 00503 # define mln_edge_nbh_edge_iter_(G) G::edge_nbh_edge_iter 00504 # define mln_edge_nbh_edge_fwd_iter(G) typename G::edge_nbh_edge_fwd_iter 00505 # define mln_edge_nbh_edge_fwd_iter_(G) G::edge_nbh_edge_fwd_iter 00506 # define mln_edge_nbh_edge_bkd_iter(G) typename G::edge_nbh_edge_bkd_iter 00507 # define mln_edge_nbh_edge_bkd_iter_(G) G::edge_nbh_edge_bkd_iter 00508 00509 00510 #endif // ! MLN_CORE_MACROS_HH