1// TR1 code repetition -*- C++ -*-
2
3// Copyright (C) 2005 Free Software Foundation, Inc.
4// Written by Douglas Gregor <doug.gregor -at- gmail.com>
5//
6// This file is part of the GNU ISO C++ Library.  This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 2, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
18// with this library; see the file COPYING.  If not, write to the Free
19// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20// USA.
21
22// As a special exception, you may use this file as part of a free software
23// library without restriction.  Specifically, if other files instantiate
24// templates or use macros or inline functions from this file, or you compile
25// this file and link it with other files to produce an executable, this
26// file does not by itself cause the resulting executable to be covered by
27// the GNU General Public License.  This exception does not however
28// invalidate any other reasons why the executable file might be covered by
29// the GNU General Public License.
30
31/** @file repeat.h
32 *  This is an internal header file, included by other library headers.
33 *  You should not attempt to use it directly.
34 */
35
36#ifndef _GLIBCXX_REPEAT_HEADER
37#  error Internal error: _GLIBCXX_REPEAT_HEADER must be set
38#endif /* _GLIBCXX_REPEAT_HEADER */
39
40#define _GLIBCXX_NUM_ARGS 0
41#define _GLIBCXX_COMMA
42#define _GLIBCXX_TEMPLATE_PARAMS
43#define _GLIBCXX_TEMPLATE_ARGS
44#define _GLIBCXX_PARAMS
45#define _GLIBCXX_REF_PARAMS
46#define _GLIBCXX_ARGS
47#define _GLIBCXX_COMMA_SHIFTED
48#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
49#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED
50#define _GLIBCXX_PARAMS_SHIFTED
51#define _GLIBCXX_ARGS_SHIFTED
52#define _GLIBCXX_BIND_MEMBERS_INIT
53#define _GLIBCXX_BIND_MEMBERS
54#define _GLIBCXX_MU_GET_TUPLE_ARGS
55#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV)
56#define _GLIBCXX_BIND_V_ARGS
57#define _GLIBCXX_TUPLE_ADD_CREF
58#define _GLIBCXX_TUPLE_COPY_INIT
59#define _GLIBCXX_TUPLE_ASSIGN
60#define _GLIBCXX_TEMPLATE_PARAMS_U
61#define _GLIBCXX_TEMPLATE_ARGS_U
62#define _GLIBCXX_REF_WRAP_PARAMS
63#define _GLIBCXX_REF_TEMPLATE_ARGS
64#define _GLIBCXX_NUM_ARGS_PLUS_1 1
65#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T1
66#include _GLIBCXX_REPEAT_HEADER
67#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
68#undef _GLIBCXX_NUM_ARGS_PLUS_1
69#undef _GLIBCXX_REF_TEMPLATE_ARGS
70#undef _GLIBCXX_REF_WRAP_PARAMS
71#undef _GLIBCXX_TEMPLATE_ARGS_U
72#undef _GLIBCXX_TEMPLATE_PARAMS_U
73#undef _GLIBCXX_TUPLE_ASSIGN
74#undef _GLIBCXX_TUPLE_COPY_INIT
75#undef _GLIBCXX_TUPLE_ADD_CREF
76#undef _GLIBCXX_BIND_V_ARGS
77#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
78#undef _GLIBCXX_MU_GET_TUPLE_ARGS
79#undef _GLIBCXX_BIND_MEMBERS_INIT
80#undef _GLIBCXX_BIND_MEMBERS
81#undef _GLIBCXX_ARGS_SHIFTED
82#undef _GLIBCXX_PARAMS_SHIFTED
83#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
84#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
85#undef _GLIBCXX_COMMA_SHIFTED
86#undef _GLIBCXX_ARGS
87#undef _GLIBCXX_REF_PARAMS
88#undef _GLIBCXX_PARAMS
89#undef _GLIBCXX_TEMPLATE_ARGS
90#undef _GLIBCXX_TEMPLATE_PARAMS
91#undef _GLIBCXX_COMMA
92#undef _GLIBCXX_NUM_ARGS
93
94#define _GLIBCXX_NUM_ARGS 1
95#define _GLIBCXX_COMMA ,
96#define _GLIBCXX_TEMPLATE_PARAMS typename _T1
97#define _GLIBCXX_TEMPLATE_ARGS _T1
98#define _GLIBCXX_PARAMS _T1 __a1
99#define _GLIBCXX_REF_PARAMS _T1& __a1
100#define _GLIBCXX_ARGS __a1
101#define _GLIBCXX_COMMA_SHIFTED
102#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
103#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED
104#define _GLIBCXX_PARAMS_SHIFTED
105#define _GLIBCXX_ARGS_SHIFTED
106#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1;
107#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1)
108#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple)
109#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
110#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
111#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1
112#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1)
113#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1;
114#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1
115#define _GLIBCXX_TEMPLATE_ARGS_U _U1
116#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1)
117#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&
118#define _GLIBCXX_NUM_ARGS_PLUS_1 2
119#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T2
120#include _GLIBCXX_REPEAT_HEADER
121#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
122#undef _GLIBCXX_NUM_ARGS_PLUS_1
123#undef _GLIBCXX_REF_TEMPLATE_ARGS
124#undef _GLIBCXX_REF_WRAP_PARAMS
125#undef _GLIBCXX_TEMPLATE_ARGS_U
126#undef _GLIBCXX_TEMPLATE_PARAMS_U
127#undef _GLIBCXX_TUPLE_ASSIGN
128#undef _GLIBCXX_TUPLE_COPY_INIT
129#undef _GLIBCXX_TUPLE_ADD_CREF
130#undef _GLIBCXX_BIND_V_ARGS
131#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
132#undef _GLIBCXX_MU_GET_TUPLE_ARGS
133#undef _GLIBCXX_BIND_MEMBERS_INIT
134#undef _GLIBCXX_BIND_MEMBERS
135#undef _GLIBCXX_ARGS_SHIFTED
136#undef _GLIBCXX_PARAMS_SHIFTED
137#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
138#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
139#undef _GLIBCXX_COMMA_SHIFTED
140#undef _GLIBCXX_ARGS
141#undef _GLIBCXX_REF_PARAMS
142#undef _GLIBCXX_PARAMS
143#undef _GLIBCXX_TEMPLATE_ARGS
144#undef _GLIBCXX_TEMPLATE_PARAMS
145#undef _GLIBCXX_COMMA
146#undef _GLIBCXX_NUM_ARGS
147
148#define _GLIBCXX_NUM_ARGS 2
149#define _GLIBCXX_COMMA ,
150#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2
151#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2
152#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2
153#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2
154#define _GLIBCXX_ARGS __a1, __a2
155#define _GLIBCXX_COMMA_SHIFTED ,
156#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1
157#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1
158#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1
159#define _GLIBCXX_ARGS_SHIFTED __a1
160#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2;
161#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2)
162#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple)
163#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
164#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
165#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2
166#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2)
167#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2;
168#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2
169#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2
170#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2)
171#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&
172#define _GLIBCXX_NUM_ARGS_PLUS_1 3
173#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T3
174#include _GLIBCXX_REPEAT_HEADER
175#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
176#undef _GLIBCXX_NUM_ARGS_PLUS_1
177#undef _GLIBCXX_REF_TEMPLATE_ARGS
178#undef _GLIBCXX_REF_WRAP_PARAMS
179#undef _GLIBCXX_TEMPLATE_ARGS_U
180#undef _GLIBCXX_TEMPLATE_PARAMS_U
181#undef _GLIBCXX_TUPLE_ASSIGN
182#undef _GLIBCXX_TUPLE_COPY_INIT
183#undef _GLIBCXX_TUPLE_ADD_CREF
184#undef _GLIBCXX_BIND_V_ARGS
185#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
186#undef _GLIBCXX_MU_GET_TUPLE_ARGS
187#undef _GLIBCXX_BIND_MEMBERS_INIT
188#undef _GLIBCXX_BIND_MEMBERS
189#undef _GLIBCXX_ARGS_SHIFTED
190#undef _GLIBCXX_PARAMS_SHIFTED
191#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
192#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
193#undef _GLIBCXX_COMMA_SHIFTED
194#undef _GLIBCXX_ARGS
195#undef _GLIBCXX_REF_PARAMS
196#undef _GLIBCXX_PARAMS
197#undef _GLIBCXX_TEMPLATE_ARGS
198#undef _GLIBCXX_TEMPLATE_PARAMS
199#undef _GLIBCXX_COMMA
200#undef _GLIBCXX_NUM_ARGS
201
202#define _GLIBCXX_NUM_ARGS 3
203#define _GLIBCXX_COMMA ,
204#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3
205#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3
206#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3
207#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3
208#define _GLIBCXX_ARGS __a1, __a2, __a3
209#define _GLIBCXX_COMMA_SHIFTED ,
210#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2
211#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2
212#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2
213#define _GLIBCXX_ARGS_SHIFTED __a1, __a2
214#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3;
215#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3)
216#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple)
217#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
218#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
219#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3
220#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3)
221#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3;
222#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3
223#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3
224#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3)
225#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&
226#define _GLIBCXX_NUM_ARGS_PLUS_1 4
227#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T4
228#include _GLIBCXX_REPEAT_HEADER
229#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
230#undef _GLIBCXX_NUM_ARGS_PLUS_1
231#undef _GLIBCXX_REF_TEMPLATE_ARGS
232#undef _GLIBCXX_REF_WRAP_PARAMS
233#undef _GLIBCXX_TEMPLATE_ARGS_U
234#undef _GLIBCXX_TEMPLATE_PARAMS_U
235#undef _GLIBCXX_TUPLE_ASSIGN
236#undef _GLIBCXX_TUPLE_COPY_INIT
237#undef _GLIBCXX_TUPLE_ADD_CREF
238#undef _GLIBCXX_BIND_V_ARGS
239#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
240#undef _GLIBCXX_MU_GET_TUPLE_ARGS
241#undef _GLIBCXX_BIND_MEMBERS_INIT
242#undef _GLIBCXX_BIND_MEMBERS
243#undef _GLIBCXX_ARGS_SHIFTED
244#undef _GLIBCXX_PARAMS_SHIFTED
245#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
246#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
247#undef _GLIBCXX_COMMA_SHIFTED
248#undef _GLIBCXX_ARGS
249#undef _GLIBCXX_REF_PARAMS
250#undef _GLIBCXX_PARAMS
251#undef _GLIBCXX_TEMPLATE_ARGS
252#undef _GLIBCXX_TEMPLATE_PARAMS
253#undef _GLIBCXX_COMMA
254#undef _GLIBCXX_NUM_ARGS
255
256#define _GLIBCXX_NUM_ARGS 4
257#define _GLIBCXX_COMMA ,
258#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4
259#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4
260#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4
261#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4
262#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4
263#define _GLIBCXX_COMMA_SHIFTED ,
264#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3
265#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3
266#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3
267#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3
268#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4;
269#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4)
270#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple)
271#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
272#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
273#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4
274#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4)
275#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4;
276#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4
277#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4
278#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4)
279#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&
280#define _GLIBCXX_NUM_ARGS_PLUS_1 5
281#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T5
282#include _GLIBCXX_REPEAT_HEADER
283#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
284#undef _GLIBCXX_NUM_ARGS_PLUS_1
285#undef _GLIBCXX_REF_TEMPLATE_ARGS
286#undef _GLIBCXX_REF_WRAP_PARAMS
287#undef _GLIBCXX_TEMPLATE_ARGS_U
288#undef _GLIBCXX_TEMPLATE_PARAMS_U
289#undef _GLIBCXX_TUPLE_ASSIGN
290#undef _GLIBCXX_TUPLE_COPY_INIT
291#undef _GLIBCXX_TUPLE_ADD_CREF
292#undef _GLIBCXX_BIND_V_ARGS
293#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
294#undef _GLIBCXX_MU_GET_TUPLE_ARGS
295#undef _GLIBCXX_BIND_MEMBERS_INIT
296#undef _GLIBCXX_BIND_MEMBERS
297#undef _GLIBCXX_ARGS_SHIFTED
298#undef _GLIBCXX_PARAMS_SHIFTED
299#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
300#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
301#undef _GLIBCXX_COMMA_SHIFTED
302#undef _GLIBCXX_ARGS
303#undef _GLIBCXX_REF_PARAMS
304#undef _GLIBCXX_PARAMS
305#undef _GLIBCXX_TEMPLATE_ARGS
306#undef _GLIBCXX_TEMPLATE_PARAMS
307#undef _GLIBCXX_COMMA
308#undef _GLIBCXX_NUM_ARGS
309
310#define _GLIBCXX_NUM_ARGS 5
311#define _GLIBCXX_COMMA ,
312#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
313#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5
314#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5
315#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5
316#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5
317#define _GLIBCXX_COMMA_SHIFTED ,
318#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4
319#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4
320#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4
321#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4
322#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5;
323#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5)
324#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple)
325#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
326#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
327#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5
328#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5)
329#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5;
330#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5
331#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5
332#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5)
333#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&
334#define _GLIBCXX_NUM_ARGS_PLUS_1 6
335#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T6
336#include _GLIBCXX_REPEAT_HEADER
337#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
338#undef _GLIBCXX_NUM_ARGS_PLUS_1
339#undef _GLIBCXX_REF_TEMPLATE_ARGS
340#undef _GLIBCXX_REF_WRAP_PARAMS
341#undef _GLIBCXX_TEMPLATE_ARGS_U
342#undef _GLIBCXX_TEMPLATE_PARAMS_U
343#undef _GLIBCXX_TUPLE_ASSIGN
344#undef _GLIBCXX_TUPLE_COPY_INIT
345#undef _GLIBCXX_TUPLE_ADD_CREF
346#undef _GLIBCXX_BIND_V_ARGS
347#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
348#undef _GLIBCXX_MU_GET_TUPLE_ARGS
349#undef _GLIBCXX_BIND_MEMBERS_INIT
350#undef _GLIBCXX_BIND_MEMBERS
351#undef _GLIBCXX_ARGS_SHIFTED
352#undef _GLIBCXX_PARAMS_SHIFTED
353#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
354#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
355#undef _GLIBCXX_COMMA_SHIFTED
356#undef _GLIBCXX_ARGS
357#undef _GLIBCXX_REF_PARAMS
358#undef _GLIBCXX_PARAMS
359#undef _GLIBCXX_TEMPLATE_ARGS
360#undef _GLIBCXX_TEMPLATE_PARAMS
361#undef _GLIBCXX_COMMA
362#undef _GLIBCXX_NUM_ARGS
363
364#define _GLIBCXX_NUM_ARGS 6
365#define _GLIBCXX_COMMA ,
366#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
367#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6
368#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6
369#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6
370#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6
371#define _GLIBCXX_COMMA_SHIFTED ,
372#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
373#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5
374#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5
375#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5
376#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6;
377#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6)
378#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple)
379#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
380#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
381#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6
382#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6)
383#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6;
384#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6
385#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6
386#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6)
387#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&
388#define _GLIBCXX_NUM_ARGS_PLUS_1 7
389#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T7
390#include _GLIBCXX_REPEAT_HEADER
391#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
392#undef _GLIBCXX_NUM_ARGS_PLUS_1
393#undef _GLIBCXX_REF_TEMPLATE_ARGS
394#undef _GLIBCXX_REF_WRAP_PARAMS
395#undef _GLIBCXX_TEMPLATE_ARGS_U
396#undef _GLIBCXX_TEMPLATE_PARAMS_U
397#undef _GLIBCXX_TUPLE_ASSIGN
398#undef _GLIBCXX_TUPLE_COPY_INIT
399#undef _GLIBCXX_TUPLE_ADD_CREF
400#undef _GLIBCXX_BIND_V_ARGS
401#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
402#undef _GLIBCXX_MU_GET_TUPLE_ARGS
403#undef _GLIBCXX_BIND_MEMBERS_INIT
404#undef _GLIBCXX_BIND_MEMBERS
405#undef _GLIBCXX_ARGS_SHIFTED
406#undef _GLIBCXX_PARAMS_SHIFTED
407#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
408#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
409#undef _GLIBCXX_COMMA_SHIFTED
410#undef _GLIBCXX_ARGS
411#undef _GLIBCXX_REF_PARAMS
412#undef _GLIBCXX_PARAMS
413#undef _GLIBCXX_TEMPLATE_ARGS
414#undef _GLIBCXX_TEMPLATE_PARAMS
415#undef _GLIBCXX_COMMA
416#undef _GLIBCXX_NUM_ARGS
417
418#define _GLIBCXX_NUM_ARGS 7
419#define _GLIBCXX_COMMA ,
420#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
421#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7
422#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7
423#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7
424#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7
425#define _GLIBCXX_COMMA_SHIFTED ,
426#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
427#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6
428#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6
429#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6
430#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7;
431#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7)
432#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple)
433#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
434#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
435#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7
436#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7)
437#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7;
438#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7
439#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7
440#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7)
441#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&
442#define _GLIBCXX_NUM_ARGS_PLUS_1 8
443#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T8
444#include _GLIBCXX_REPEAT_HEADER
445#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
446#undef _GLIBCXX_NUM_ARGS_PLUS_1
447#undef _GLIBCXX_REF_TEMPLATE_ARGS
448#undef _GLIBCXX_REF_WRAP_PARAMS
449#undef _GLIBCXX_TEMPLATE_ARGS_U
450#undef _GLIBCXX_TEMPLATE_PARAMS_U
451#undef _GLIBCXX_TUPLE_ASSIGN
452#undef _GLIBCXX_TUPLE_COPY_INIT
453#undef _GLIBCXX_TUPLE_ADD_CREF
454#undef _GLIBCXX_BIND_V_ARGS
455#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
456#undef _GLIBCXX_MU_GET_TUPLE_ARGS
457#undef _GLIBCXX_BIND_MEMBERS_INIT
458#undef _GLIBCXX_BIND_MEMBERS
459#undef _GLIBCXX_ARGS_SHIFTED
460#undef _GLIBCXX_PARAMS_SHIFTED
461#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
462#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
463#undef _GLIBCXX_COMMA_SHIFTED
464#undef _GLIBCXX_ARGS
465#undef _GLIBCXX_REF_PARAMS
466#undef _GLIBCXX_PARAMS
467#undef _GLIBCXX_TEMPLATE_ARGS
468#undef _GLIBCXX_TEMPLATE_PARAMS
469#undef _GLIBCXX_COMMA
470#undef _GLIBCXX_NUM_ARGS
471
472#define _GLIBCXX_NUM_ARGS 8
473#define _GLIBCXX_COMMA ,
474#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
475#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8
476#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8
477#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8
478#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8
479#define _GLIBCXX_COMMA_SHIFTED ,
480#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
481#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7
482#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7
483#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7
484#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7; _T8 _M_arg8;
485#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7), _M_arg8(__a8)
486#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple), ::std::tr1::get<7>(__tuple)
487#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T8> _CV(_T8, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
488#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T8>()(_M_arg8, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
489#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8
490#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8)
491#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8;
492#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8
493#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
494#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8)
495#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&
496#define _GLIBCXX_NUM_ARGS_PLUS_1 9
497#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T9
498#include _GLIBCXX_REPEAT_HEADER
499#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
500#undef _GLIBCXX_NUM_ARGS_PLUS_1
501#undef _GLIBCXX_REF_TEMPLATE_ARGS
502#undef _GLIBCXX_REF_WRAP_PARAMS
503#undef _GLIBCXX_TEMPLATE_ARGS_U
504#undef _GLIBCXX_TEMPLATE_PARAMS_U
505#undef _GLIBCXX_TUPLE_ASSIGN
506#undef _GLIBCXX_TUPLE_COPY_INIT
507#undef _GLIBCXX_TUPLE_ADD_CREF
508#undef _GLIBCXX_BIND_V_ARGS
509#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
510#undef _GLIBCXX_MU_GET_TUPLE_ARGS
511#undef _GLIBCXX_BIND_MEMBERS_INIT
512#undef _GLIBCXX_BIND_MEMBERS
513#undef _GLIBCXX_ARGS_SHIFTED
514#undef _GLIBCXX_PARAMS_SHIFTED
515#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
516#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
517#undef _GLIBCXX_COMMA_SHIFTED
518#undef _GLIBCXX_ARGS
519#undef _GLIBCXX_REF_PARAMS
520#undef _GLIBCXX_PARAMS
521#undef _GLIBCXX_TEMPLATE_ARGS
522#undef _GLIBCXX_TEMPLATE_PARAMS
523#undef _GLIBCXX_COMMA
524#undef _GLIBCXX_NUM_ARGS
525
526#define _GLIBCXX_NUM_ARGS 9
527#define _GLIBCXX_COMMA ,
528#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
529#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
530#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9
531#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8, _T9& __a9
532#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9
533#define _GLIBCXX_COMMA_SHIFTED ,
534#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
535#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8
536#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8
537#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8
538#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7; _T8 _M_arg8; _T9 _M_arg9;
539#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7), _M_arg8(__a8), _M_arg9(__a9)
540#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple), ::std::tr1::get<7>(__tuple), ::std::tr1::get<8>(__tuple)
541#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T8> _CV(_T8, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T9> _CV(_T9, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
542#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T8>()(_M_arg8, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T9>()(_M_arg9, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
543#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8, typename __add_c_ref<_T9>::type __a9
544#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8), _M_arg9(__in._M_arg9)
545#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8; _M_arg9 = __in._M_arg9;
546#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9
547#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
548#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9)
549#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&
550#define _GLIBCXX_NUM_ARGS_PLUS_1 10
551#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T10
552#include _GLIBCXX_REPEAT_HEADER
553#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
554#undef _GLIBCXX_NUM_ARGS_PLUS_1
555#undef _GLIBCXX_REF_TEMPLATE_ARGS
556#undef _GLIBCXX_REF_WRAP_PARAMS
557#undef _GLIBCXX_TEMPLATE_ARGS_U
558#undef _GLIBCXX_TEMPLATE_PARAMS_U
559#undef _GLIBCXX_TUPLE_ASSIGN
560#undef _GLIBCXX_TUPLE_COPY_INIT
561#undef _GLIBCXX_TUPLE_ADD_CREF
562#undef _GLIBCXX_BIND_V_ARGS
563#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
564#undef _GLIBCXX_MU_GET_TUPLE_ARGS
565#undef _GLIBCXX_BIND_MEMBERS_INIT
566#undef _GLIBCXX_BIND_MEMBERS
567#undef _GLIBCXX_ARGS_SHIFTED
568#undef _GLIBCXX_PARAMS_SHIFTED
569#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
570#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
571#undef _GLIBCXX_COMMA_SHIFTED
572#undef _GLIBCXX_ARGS
573#undef _GLIBCXX_REF_PARAMS
574#undef _GLIBCXX_PARAMS
575#undef _GLIBCXX_TEMPLATE_ARGS
576#undef _GLIBCXX_TEMPLATE_PARAMS
577#undef _GLIBCXX_COMMA
578#undef _GLIBCXX_NUM_ARGS
579
580#define _GLIBCXX_LAST_INCLUDE
581#define _GLIBCXX_NUM_ARGS 10
582#define _GLIBCXX_COMMA ,
583#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10
584#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10
585#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9, _T10 __a10
586#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8, _T9& __a9, _T10& __a10
587#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9, __a10
588#define _GLIBCXX_COMMA_SHIFTED ,
589#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
590#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
591#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9
592#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9
593#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6; _T7 _M_arg7; _T8 _M_arg8; _T9 _M_arg9; _T10 _M_arg10;
594#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6), _M_arg7(__a7), _M_arg8(__a8), _M_arg9(__a9), _M_arg10(__a10)
595#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple), ::std::tr1::get<3>(__tuple), ::std::tr1::get<4>(__tuple), ::std::tr1::get<5>(__tuple), ::std::tr1::get<6>(__tuple), ::std::tr1::get<7>(__tuple), ::std::tr1::get<8>(__tuple), ::std::tr1::get<9>(__tuple)
596#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T2> _CV(_T2, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T3> _CV(_T3, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T4> _CV(_T4, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T5> _CV(_T5, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T6> _CV(_T6, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T7> _CV(_T7, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T8> _CV(_T8, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T9> _CV(_T9, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type, typename result_of<_Mu<_T10> _CV(_T10, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
597#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T2>()(_M_arg2, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T3>()(_M_arg3, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T4>()(_M_arg4, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T5>()(_M_arg5, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T6>()(_M_arg6, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T7>()(_M_arg7, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T8>()(_M_arg8, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T9>()(_M_arg9, ::std::tr1::tie(_GLIBCXX_BIND_ARGS)), _Mu<_T10>()(_M_arg10, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
598#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2, typename __add_c_ref<_T3>::type __a3, typename __add_c_ref<_T4>::type __a4, typename __add_c_ref<_T5>::type __a5, typename __add_c_ref<_T6>::type __a6, typename __add_c_ref<_T7>::type __a7, typename __add_c_ref<_T8>::type __a8, typename __add_c_ref<_T9>::type __a9, typename __add_c_ref<_T10>::type __a10
599#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3), _M_arg4(__in._M_arg4), _M_arg5(__in._M_arg5), _M_arg6(__in._M_arg6), _M_arg7(__in._M_arg7), _M_arg8(__in._M_arg8), _M_arg9(__in._M_arg9), _M_arg10(__in._M_arg10)
600#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4; _M_arg5 = __in._M_arg5; _M_arg6 = __in._M_arg6; _M_arg7 = __in._M_arg7; _M_arg8 = __in._M_arg8; _M_arg9 = __in._M_arg9; _M_arg10 = __in._M_arg10;
601#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10
602#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10
603#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9), ref(__a10)
604#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&, _T10&
605#define _GLIBCXX_NUM_ARGS_PLUS_1 11
606#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T11
607#include _GLIBCXX_REPEAT_HEADER
608#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
609#undef _GLIBCXX_NUM_ARGS_PLUS_1
610#undef _GLIBCXX_REF_TEMPLATE_ARGS
611#undef _GLIBCXX_REF_WRAP_PARAMS
612#undef _GLIBCXX_TEMPLATE_ARGS_U
613#undef _GLIBCXX_TEMPLATE_PARAMS_U
614#undef _GLIBCXX_TUPLE_ASSIGN
615#undef _GLIBCXX_TUPLE_COPY_INIT
616#undef _GLIBCXX_TUPLE_ADD_CREF
617#undef _GLIBCXX_BIND_V_ARGS
618#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
619#undef _GLIBCXX_MU_GET_TUPLE_ARGS
620#undef _GLIBCXX_BIND_MEMBERS_INIT
621#undef _GLIBCXX_BIND_MEMBERS
622#undef _GLIBCXX_ARGS_SHIFTED
623#undef _GLIBCXX_PARAMS_SHIFTED
624#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
625#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
626#undef _GLIBCXX_COMMA_SHIFTED
627#undef _GLIBCXX_ARGS
628#undef _GLIBCXX_REF_PARAMS
629#undef _GLIBCXX_PARAMS
630#undef _GLIBCXX_TEMPLATE_ARGS
631#undef _GLIBCXX_TEMPLATE_PARAMS
632#undef _GLIBCXX_COMMA
633#undef _GLIBCXX_NUM_ARGS
634
635#undef _GLIBCXX_LAST_INCLUDE
636
637