]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/signals/include/boost/signals/detail/gen_signal_N.pl
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / signals / include / boost / signals / detail / gen_signal_N.pl
1 #!/usr/bin/perl -w
2 #
3 # Boost.Signals library
4
5 # Copyright Douglas Gregor 2001-2003. Use, modification and
6 # distribution is subject to the Boost Software License, Version
7 # 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 # http://www.boost.org/LICENSE_1_0.txt)
9
10 # For more information, see http://www.boost.org
11 use English;
12
13 if ($#ARGV < 0) {
14 print "Usage: perl gen_signal_N <number of arguments>\n";
15 exit;
16 }
17
18
19 $totalNumArgs = $ARGV[0];
20 for ($numArgs = 0; $numArgs <= $totalNumArgs; ++$numArgs) {
21 open OUT, ">signal$numArgs.hpp";
22 print OUT "// Boost.Signals library\n";
23 print OUT "//\n";
24 print OUT "// Copyright (C) 2001 Doug Gregor (gregod\@cs.rpi.edu)\n";
25 print OUT "//\n";
26 print OUT "// Permission to copy, use, sell and distribute this software is granted\n";
27 print OUT "// provided this copyright notice appears in all copies.\n";
28 print OUT "// Permission to modify the code and to distribute modified code is granted\n";
29 print OUT "// provided this copyright notice appears in all copies, and a notice\n";
30 print OUT "// that the code was modified is included with the copyright notice.\n";
31 print OUT "//\n";
32 print OUT "// This software is provided \"as is\" without express or implied warranty,\n";
33 print OUT "// and with no claim as to its suitability for any purpose.\n";
34 print OUT " \n";
35 print OUT "// For more information, see http://www.boost.org\n";
36 print OUT "\n";
37 print OUT "#ifndef BOOST_SIGNALS_SIGNAL" . $numArgs . "_HEADER\n";
38 print OUT "#define BOOST_SIGNALS_SIGNAL" , $numArgs . "_HEADER\n";
39 print OUT "\n";
40 print OUT "#define BOOST_SIGNALS_NUM_ARGS $numArgs\n";
41
42 $templateParms = "";
43 for ($i = 1; $i <= $numArgs; ++$i) {
44 if ($i > 1) {
45 $templateParms .= ", ";
46 }
47 $templateParms .= "typename T$i";
48 }
49 print OUT "#define BOOST_SIGNALS_TEMPLATE_PARMS $templateParms\n";
50
51 $_ = $templateParms;
52 s/typename //g;
53 $templateArgs = $_;
54 print OUT "#define BOOST_SIGNALS_TEMPLATE_ARGS $templateArgs\n";
55
56 $parms = "";
57 for ($i = 1; $i <= $numArgs; ++$i) {
58 if ($i > 1) {
59 $parms .= ", ";
60 }
61 $parms .= "T$i a$i";
62 }
63 print OUT "#define BOOST_SIGNALS_PARMS $parms\n";
64
65 $args = "";
66 for ($i = 1; $i <= $numArgs; ++$i) {
67 if ($i > 1) {
68 $args .= ", ";
69 }
70 $args .= "a$i";
71 }
72 print OUT "#define BOOST_SIGNALS_ARGS $args\n";
73
74 $boundArgs = "";
75 for ($i = 1; $i <= $numArgs; ++$i) {
76 if ($i > 1) {
77 $boundArgs .= ", ";
78 }
79 $boundArgs .= "args->a$i";
80 }
81 print OUT "#define BOOST_SIGNALS_BOUND_ARGS $boundArgs\n";
82
83 $argsAsMembers = "";
84 for ($i = 1; $i <= $numArgs; ++$i) {
85 $argsAsMembers .= "T$i a$i;";
86 }
87 print OUT "#define BOOST_SIGNALS_ARGS_AS_MEMBERS $argsAsMembers\n";
88
89 $copyParms = "";
90 for ($i = 1; $i <= $numArgs; ++$i) {
91 if ($i > 1) {
92 $copyParms .= ", ";
93 }
94 $copyParms .= "T$i ia$i";
95 }
96 print OUT "#define BOOST_SIGNALS_COPY_PARMS $copyParms\n";
97
98 $initArgs = "";
99 if ($numArgs > 0) {
100 $initArgs = ":";
101 }
102 for ($i = 1; $i <= $numArgs; ++$i) {
103 if ($i > 1) {
104 $initArgs .= ", ";
105 }
106 $initArgs .= "a$i(ia$i)";
107 }
108 print OUT "#define BOOST_SIGNALS_INIT_ARGS $initArgs\n";
109
110 $argTypes = "";
111 for ($i = 1; $i <= $numArgs; ++$i) {
112 $argTypes .= "typedef T$i arg". ($i+1) . "_type; ";
113 }
114
115 print OUT "#define BOOST_SIGNALS_ARG_TYPES $argTypes\n";
116 print OUT "\n";
117 print OUT "#include <boost/signals/signal_template.hpp>\n";
118 print OUT "\n";
119 print OUT "#undef BOOST_SIGNALS_ARG_TYPES\n";
120 print OUT "#undef BOOST_SIGNALS_INIT_ARGS\n";
121 print OUT "#undef BOOST_SIGNALS_COPY_PARMS\n";
122 print OUT "#undef BOOST_SIGNALS_ARGS_AS_MEMBERS\n";
123 print OUT "#undef BOOST_SIGNALS_BOUND_ARGS\n";
124 print OUT "#undef BOOST_SIGNALS_ARGS\n";
125 print OUT "#undef BOOST_SIGNALS_PARMS\n";
126 print OUT "#undef BOOST_SIGNALS_TEMPLATE_ARGS\n";
127 print OUT "#undef BOOST_SIGNALS_TEMPLATE_PARMS\n";
128 print OUT "#undef BOOST_SIGNALS_NUM_ARGS\n";
129 print OUT "\n";
130 print OUT "#endif // BOOST_SIGNALS_SIGNAL" . $numArgs . "_HEADER\n";
131 close OUT;
132 }