1169691Skan// TR1 code repetition for bind -*- C++ -*-
2169691Skan
3169691Skan// Copyright (C) 2005 Free Software Foundation, Inc.
4169691Skan// Written by Douglas Gregor <doug.gregor -at- gmail.com>
5169691Skan//
6169691Skan// This file is part of the GNU ISO C++ Library.  This library is free
7169691Skan// software; you can redistribute it and/or modify it under the
8169691Skan// terms of the GNU General Public License as published by the
9169691Skan// Free Software Foundation; either version 2, or (at your option)
10169691Skan// any later version.
11169691Skan
12169691Skan// This library is distributed in the hope that it will be useful,
13169691Skan// but WITHOUT ANY WARRANTY; without even the implied warranty of
14169691Skan// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15169691Skan// GNU General Public License for more details.
16169691Skan
17169691Skan// You should have received a copy of the GNU General Public License along
18169691Skan// with this library; see the file COPYING.  If not, write to the Free
19169691Skan// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20169691Skan// USA.
21169691Skan
22169691Skan// As a special exception, you may use this file as part of a free software
23169691Skan// library without restriction.  Specifically, if other files instantiate
24169691Skan// templates or use macros or inline functions from this file, or you compile
25169691Skan// this file and link it with other files to produce an executable, this
26169691Skan// file does not by itself cause the resulting executable to be covered by
27169691Skan// the GNU General Public License.  This exception does not however
28169691Skan// invalidate any other reasons why the executable file might be covered by
29169691Skan// the GNU General Public License.
30169691Skan
31169691Skan/** @file tr1/bind_repeat.h
32169691Skan *  This is an internal header file, included by other library headers.
33169691Skan *  You should not attempt to use it directly.
34169691Skan */
35169691Skan
36169691Skan#ifndef _GLIBCXX_BIND_REPEAT_HEADER
37169691Skan#  error Internal error: _GLIBCXX_BIND_REPEAT_HEADER must be set
38169691Skan#endif /* _GLIBCXX_BIND_REPEAT_HEADER */
39169691Skan
40169691Skan#define _GLIBCXX_BIND_NUM_ARGS 0
41169691Skan#define _GLIBCXX_BIND_COMMA
42169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS
43169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS
44169691Skan#define _GLIBCXX_BIND_PARAMS
45169691Skan#define _GLIBCXX_BIND_ARGS
46169691Skan#  include _GLIBCXX_BIND_REPEAT_HEADER
47169691Skan#undef _GLIBCXX_BIND_ARGS
48169691Skan#undef _GLIBCXX_BIND_PARAMS
49169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
50169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
51169691Skan#undef _GLIBCXX_BIND_COMMA
52169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
53169691Skan
54169691Skan#define _GLIBCXX_BIND_NUM_ARGS 1
55169691Skan#define _GLIBCXX_BIND_COMMA ,
56169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1
57169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1
58169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1
59169691Skan#define _GLIBCXX_BIND_ARGS __u1
60169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
61169691Skan#undef _GLIBCXX_BIND_ARGS
62169691Skan#undef _GLIBCXX_BIND_PARAMS
63169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
64169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
65169691Skan#undef _GLIBCXX_BIND_COMMA
66169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
67169691Skan#define _GLIBCXX_BIND_NUM_ARGS 2
68169691Skan#define _GLIBCXX_BIND_COMMA ,
69169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2
70169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2
71169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2
72169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2
73169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
74169691Skan#undef _GLIBCXX_BIND_ARGS
75169691Skan#undef _GLIBCXX_BIND_PARAMS
76169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
77169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
78169691Skan#undef _GLIBCXX_BIND_COMMA
79169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
80169691Skan
81169691Skan#define _GLIBCXX_BIND_NUM_ARGS 3
82169691Skan#define _GLIBCXX_BIND_COMMA ,
83169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3
84169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3
85169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3
86169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3
87169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
88169691Skan#undef _GLIBCXX_BIND_ARGS
89169691Skan#undef _GLIBCXX_BIND_PARAMS
90169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
91169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
92169691Skan#undef _GLIBCXX_BIND_COMMA
93169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
94169691Skan
95169691Skan#define _GLIBCXX_BIND_NUM_ARGS 4
96169691Skan#define _GLIBCXX_BIND_COMMA ,
97169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4
98169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4
99169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4
100169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4
101169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
102169691Skan#undef _GLIBCXX_BIND_ARGS
103169691Skan#undef _GLIBCXX_BIND_PARAMS
104169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
105169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
106169691Skan#undef _GLIBCXX_BIND_COMMA
107169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
108169691Skan
109169691Skan#define _GLIBCXX_BIND_NUM_ARGS 5
110169691Skan#define _GLIBCXX_BIND_COMMA ,
111169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5
112169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5
113169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5
114169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5
115169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
116169691Skan#undef _GLIBCXX_BIND_ARGS
117169691Skan#undef _GLIBCXX_BIND_PARAMS
118169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
119169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
120169691Skan#undef _GLIBCXX_BIND_COMMA
121169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
122169691Skan
123169691Skan#define _GLIBCXX_BIND_NUM_ARGS 6
124169691Skan#define _GLIBCXX_BIND_COMMA ,
125169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6
126169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6
127169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6
128169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6
129169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
130169691Skan#undef _GLIBCXX_BIND_ARGS
131169691Skan#undef _GLIBCXX_BIND_PARAMS
132169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
133169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
134169691Skan#undef _GLIBCXX_BIND_COMMA
135169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
136169691Skan
137169691Skan#define _GLIBCXX_BIND_NUM_ARGS 7
138169691Skan#define _GLIBCXX_BIND_COMMA ,
139169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7
140169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7
141169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7
142169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7
143169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
144169691Skan#undef _GLIBCXX_BIND_ARGS
145169691Skan#undef _GLIBCXX_BIND_PARAMS
146169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
147169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
148169691Skan#undef _GLIBCXX_BIND_COMMA
149169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
150169691Skan
151169691Skan#define _GLIBCXX_BIND_NUM_ARGS 8
152169691Skan#define _GLIBCXX_BIND_COMMA ,
153169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8
154169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
155169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8
156169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8
157169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
158169691Skan#undef _GLIBCXX_BIND_ARGS
159169691Skan#undef _GLIBCXX_BIND_PARAMS
160169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
161169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
162169691Skan#undef _GLIBCXX_BIND_COMMA
163169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
164169691Skan
165169691Skan#define _GLIBCXX_BIND_NUM_ARGS 9
166169691Skan#define _GLIBCXX_BIND_COMMA ,
167169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9
168169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
169169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8, _U9& __u9
170169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8, __u9
171169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
172169691Skan#undef _GLIBCXX_BIND_ARGS
173169691Skan#undef _GLIBCXX_BIND_PARAMS
174169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
175169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
176169691Skan#undef _GLIBCXX_BIND_COMMA
177169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
178169691Skan
179169691Skan#define _GLIBCXX_BIND_NUM_ARGS 10
180169691Skan#define _GLIBCXX_BIND_COMMA ,
181169691Skan#define _GLIBCXX_BIND_TEMPLATE_PARAMS typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10
182169691Skan#define _GLIBCXX_BIND_TEMPLATE_ARGS _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10
183169691Skan#define _GLIBCXX_BIND_PARAMS _U1& __u1, _U2& __u2, _U3& __u3, _U4& __u4, _U5& __u5, _U6& __u6, _U7& __u7, _U8& __u8, _U9& __u9, _U10& __u10
184169691Skan#define _GLIBCXX_BIND_ARGS __u1, __u2, __u3, __u4, __u5, __u6, __u7, __u8, __u9, __u10
185169691Skan#include _GLIBCXX_BIND_REPEAT_HEADER
186169691Skan#undef _GLIBCXX_BIND_ARGS
187169691Skan#undef _GLIBCXX_BIND_PARAMS
188169691Skan#undef _GLIBCXX_BIND_TEMPLATE_ARGS
189169691Skan#undef _GLIBCXX_BIND_TEMPLATE_PARAMS
190169691Skan#undef _GLIBCXX_BIND_COMMA
191169691Skan#undef _GLIBCXX_BIND_NUM_ARGS
192169691Skan
193