]> git.tdb.fi Git - ext/sigc++-2.0.git/blob - sigc++/macros/template.macros.m4
Import libsigc++ 2.10.8 sources
[ext/sigc++-2.0.git] / sigc++ / macros / template.macros.m4
1 dnl Copyright 2002, The libsigc++ Development Team 
2 dnl 
3 dnl This library is free software; you can redistribute it and/or 
4 dnl modify it under the terms of the GNU Lesser General Public 
5 dnl License as published by the Free Software Foundation; either 
6 dnl version 2.1 of the License, or (at your option) any later version. 
7 dnl 
8 dnl This library is distributed in the hope that it will be useful, 
9 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 
10 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
11 dnl Lesser General Public License for more details. 
12 dnl 
13 dnl You should have received a copy of the GNU Lesser General Public 
14 dnl License along with this library; if not, write to the Free Software 
15 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
16 dnl 
17 define(__t_div__,divnum)divert(-1)
18 dnl
19 dnl  M4 macros for building large files quickly
20 dnl
21 divert(0)// -*- c++ -*-
22 /* Do not edit! -- generated file */
23 divert(-1)
24 changequote([, ])
25 changecom()
26
27 dnl
28 dnl Macros for sigc specifically.
29 dnl
30
31 define([CALL_SIZE],7)
32
33 #Generate header guards:
34 define([_FIREWALL],[dnl
35 #ifndef _SIGC_$1_H_
36 #define _SIGC_$1_H_[]dnl
37 divert(1)dnl
38 #endif /* _SIGC_$1_H_ */
39 divert(0)dnl
40 ])
41
42 define([_R_],[type_trait_take_t<$1>])
43 define([_P_],[type_trait_pass_t<$1>])
44
45 define([__DEPRECATION_GUARD__],[SIGCXX_DISABLE_DEPRECATED])dnl
46 dnl Start deprecation
47 define([_DEPRECATE_IFDEF_START],[dnl
48 #ifndef __DEPRECATION_GUARD__])dnl
49 dnl End deprecation
50 define([_DEPRECATE_IFDEF_END],[dnl
51 #endif // __DEPRECATION_GUARD__])dnl
52
53 dnl
54 dnl General macros
55 dnl
56
57 define([PROT],[[$*]])
58
59 define([_LOOP],
60 [ifelse(eval($1<$2),0,
61 [indir([_LOOP_FORMAT], $1)],
62 [indir([_LOOP_FORMAT], $1)[]_LOOP_SEP[]_LOOP(eval($1+1), $2)])])
63
64 define([LOOP],
65 [pushdef([_LOOP_FORMAT], translit([$1],%, $))dnl
66 pushdef([_LOOP_SEP],ifelse([$3],[],[[[, ]]],[$3]))dnl
67 ifelse(eval($2>0),1,[PROT(_LOOP(1, $2))],[PROT()])dnl
68 popdef([_LOOP_SEP])dnl
69 popdef([_LOOP_FORMAT])dnl
70 ])
71
72 define([NUM],[eval(ifelse([$1],,0,1)ifelse($#,0,0, $#,1,,[+NUM(shift($@))]))])
73 define([LIST],[ifelse($#,0,, $#,1,[$1],[$1],,[LIST(shift($@))],[__LIST($@)])])
74 define([__LIST],[ifelse($#,0,, $#,1,[$1],[$1[]ifelse([$2],,,[[, ]])__LIST(shift($@))])])
75 dnl
76 define([_NL_],[
77 ])
78
79 define([FOR],
80 [pushdef([_FOR_FUNC],PROT(translit([$3],%, $)))dnl
81 _FOR($1, $2)[]dnl
82 popdef([_FOR_FUNC])dnl
83 ])
84 define([_FOR],[ifelse(eval($1>$2),1,[],[_FOR_FUNC($1)[]_FOR(eval($1+1), $2)])])
85
86 divert(__t_div__)dnl