1169691Skan// TR1 code repetition -*- 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/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_REPEAT_HEADER
37169691Skan#  error Internal error: _GLIBCXX_REPEAT_HEADER must be set
38169691Skan#endif /* _GLIBCXX_REPEAT_HEADER */
39169691Skan
40169691Skan#ifndef _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS
41169691Skan#  define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10
42169691Skan#  define _GLIBCXX_TUPLE_ALL_TEMPLATE_PARAMS_UNNAMED typename, typename, typename, typename, typename, typename, typename, typename, typename, typename
43169691Skan#  define _GLIBCXX_TUPLE_ALL_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10
44169691Skan#endif
45169691Skan
46169691Skan#define _GLIBCXX_NUM_ARGS 0
47169691Skan#define _GLIBCXX_COMMA
48169691Skan#define _GLIBCXX_TEMPLATE_PARAMS
49169691Skan#define _GLIBCXX_TEMPLATE_ARGS
50169691Skan#define _GLIBCXX_PARAMS
51169691Skan#define _GLIBCXX_REF_PARAMS
52169691Skan#define _GLIBCXX_ARGS
53169691Skan#define _GLIBCXX_COMMA_SHIFTED
54169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
55169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED
56169691Skan#define _GLIBCXX_PARAMS_SHIFTED
57169691Skan#define _GLIBCXX_ARGS_SHIFTED
58169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT
59169691Skan#define _GLIBCXX_BIND_MEMBERS
60169691Skan#define _GLIBCXX_MU_GET_TUPLE_ARGS
61169691Skan#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV)
62169691Skan#define _GLIBCXX_BIND_V_ARGS
63169691Skan#define _GLIBCXX_TUPLE_ADD_CREF
64169691Skan#define _GLIBCXX_TUPLE_COPY_INIT
65169691Skan#define _GLIBCXX_TUPLE_ASSIGN
66169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
67169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED
68169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U
69169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U
70169691Skan#define _GLIBCXX_REF_WRAP_PARAMS
71169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS
72169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 1
73169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T1
74169691Skan#include _GLIBCXX_REPEAT_HEADER
75169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
76169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
77169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
78169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
79169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
80169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
81169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
82169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
83169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
84169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
85169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
86169691Skan#undef _GLIBCXX_BIND_V_ARGS
87169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
88169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
89169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
90169691Skan#undef _GLIBCXX_BIND_MEMBERS
91169691Skan#undef _GLIBCXX_ARGS_SHIFTED
92169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
93169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
94169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
95169691Skan#undef _GLIBCXX_COMMA_SHIFTED
96169691Skan#undef _GLIBCXX_ARGS
97169691Skan#undef _GLIBCXX_REF_PARAMS
98169691Skan#undef _GLIBCXX_PARAMS
99169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
100169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
101169691Skan#undef _GLIBCXX_COMMA
102169691Skan#undef _GLIBCXX_NUM_ARGS
103169691Skan
104169691Skan#define _GLIBCXX_NUM_ARGS 1
105169691Skan#define _GLIBCXX_COMMA ,
106169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1
107169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1
108169691Skan#define _GLIBCXX_PARAMS _T1 __a1
109169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1
110169691Skan#define _GLIBCXX_ARGS __a1
111169691Skan#define _GLIBCXX_COMMA_SHIFTED
112169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
113169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED
114169691Skan#define _GLIBCXX_PARAMS_SHIFTED
115169691Skan#define _GLIBCXX_ARGS_SHIFTED
116169691Skan#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1;
117169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1)
118169691Skan#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple)
119169691Skan#define _GLIBCXX_BIND_V_TEMPLATE_ARGS(_CV) typename result_of<_Mu<_T1> _CV(_T1, tuple<_GLIBCXX_BIND_TEMPLATE_ARGS>)>::type
120169691Skan#define _GLIBCXX_BIND_V_ARGS _Mu<_T1>()(_M_arg1, ::std::tr1::tie(_GLIBCXX_BIND_ARGS))
121169691Skan#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1
122169691Skan#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1)
123169691Skan#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1;
124169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass
125169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type
126169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1
127169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1
128169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1)
129169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&
130169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 2
131169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T2
132169691Skan#include _GLIBCXX_REPEAT_HEADER
133169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
134169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
135169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
136169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
137169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
138169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
139169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
140169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
141169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
142169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
143169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
144169691Skan#undef _GLIBCXX_BIND_V_ARGS
145169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
146169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
147169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
148169691Skan#undef _GLIBCXX_BIND_MEMBERS
149169691Skan#undef _GLIBCXX_ARGS_SHIFTED
150169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
151169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
152169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
153169691Skan#undef _GLIBCXX_COMMA_SHIFTED
154169691Skan#undef _GLIBCXX_ARGS
155169691Skan#undef _GLIBCXX_REF_PARAMS
156169691Skan#undef _GLIBCXX_PARAMS
157169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
158169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
159169691Skan#undef _GLIBCXX_COMMA
160169691Skan#undef _GLIBCXX_NUM_ARGS
161169691Skan
162169691Skan#define _GLIBCXX_NUM_ARGS 2
163169691Skan#define _GLIBCXX_COMMA ,
164169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2
165169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2
166169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2
167169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2
168169691Skan#define _GLIBCXX_ARGS __a1, __a2
169169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
170169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1
171169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1
172169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1
173169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1
174169691Skan#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2;
175169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2)
176169691Skan#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple)
177169691Skan#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
178169691Skan#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))
179169691Skan#define _GLIBCXX_TUPLE_ADD_CREF typename __add_c_ref<_T1>::type __a1, typename __add_c_ref<_T2>::type __a2
180169691Skan#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2)
181169691Skan#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2;
182169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass
183169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type
184169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2
185169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2
186169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2)
187169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&
188169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 3
189169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T3
190169691Skan#include _GLIBCXX_REPEAT_HEADER
191169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
192169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
193169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
194169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
195169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
196169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
197169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
198169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
199169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
200169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
201169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
202169691Skan#undef _GLIBCXX_BIND_V_ARGS
203169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
204169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
205169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
206169691Skan#undef _GLIBCXX_BIND_MEMBERS
207169691Skan#undef _GLIBCXX_ARGS_SHIFTED
208169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
209169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
210169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
211169691Skan#undef _GLIBCXX_COMMA_SHIFTED
212169691Skan#undef _GLIBCXX_ARGS
213169691Skan#undef _GLIBCXX_REF_PARAMS
214169691Skan#undef _GLIBCXX_PARAMS
215169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
216169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
217169691Skan#undef _GLIBCXX_COMMA
218169691Skan#undef _GLIBCXX_NUM_ARGS
219169691Skan#define _GLIBCXX_NUM_ARGS 3
220169691Skan#define _GLIBCXX_COMMA ,
221169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3
222169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3
223169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3
224169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3
225169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3
226169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
227169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2
228169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2
229169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2
230169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2
231169691Skan#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3;
232169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3)
233169691Skan#define _GLIBCXX_MU_GET_TUPLE_ARGS ::std::tr1::get<0>(__tuple), ::std::tr1::get<1>(__tuple), ::std::tr1::get<2>(__tuple)
234169691Skan#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
235169691Skan#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))
236169691Skan#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
237169691Skan#define _GLIBCXX_TUPLE_COPY_INIT _M_arg1(__in._M_arg1), _M_arg2(__in._M_arg2), _M_arg3(__in._M_arg3)
238169691Skan#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3;
239169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass
240169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type
241169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3
242169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3
243169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3)
244169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&
245169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 4
246169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T4
247169691Skan#include _GLIBCXX_REPEAT_HEADER
248169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
249169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
250169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
251169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
252169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
253169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
254169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
255169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
256169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
257169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
258169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
259169691Skan#undef _GLIBCXX_BIND_V_ARGS
260169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
261169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
262169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
263169691Skan#undef _GLIBCXX_BIND_MEMBERS
264169691Skan#undef _GLIBCXX_ARGS_SHIFTED
265169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
266169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
267169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
268169691Skan#undef _GLIBCXX_COMMA_SHIFTED
269169691Skan#undef _GLIBCXX_ARGS
270169691Skan#undef _GLIBCXX_REF_PARAMS
271169691Skan#undef _GLIBCXX_PARAMS
272169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
273169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
274169691Skan#undef _GLIBCXX_COMMA
275169691Skan#undef _GLIBCXX_NUM_ARGS
276169691Skan#define _GLIBCXX_NUM_ARGS 4
277169691Skan#define _GLIBCXX_COMMA ,
278169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4
279169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4
280169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4
281169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4
282169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4
283169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
284169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3
285169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3
286169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3
287169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3
288169691Skan#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4;
289169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4)
290169691Skan#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)
291169691Skan#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
292169691Skan#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))
293169691Skan#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
294169691Skan#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)
295169691Skan#define _GLIBCXX_TUPLE_ASSIGN _M_arg1 = __in._M_arg1; _M_arg2 = __in._M_arg2; _M_arg3 = __in._M_arg3; _M_arg4 = __in._M_arg4;
296169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass
297169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type
298169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4
299169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4
300169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4)
301169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&
302169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 5
303169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T5
304169691Skan#include _GLIBCXX_REPEAT_HEADER
305169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
306169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
307169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
308169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
309169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
310169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
311169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
312169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
313169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
314169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
315169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
316169691Skan#undef _GLIBCXX_BIND_V_ARGS
317169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
318169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
319169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
320169691Skan#undef _GLIBCXX_BIND_MEMBERS
321169691Skan#undef _GLIBCXX_ARGS_SHIFTED
322169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
323169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
324169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
325169691Skan#undef _GLIBCXX_COMMA_SHIFTED
326169691Skan#undef _GLIBCXX_ARGS
327169691Skan#undef _GLIBCXX_REF_PARAMS
328169691Skan#undef _GLIBCXX_PARAMS
329169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
330169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
331169691Skan#undef _GLIBCXX_COMMA
332169691Skan#undef _GLIBCXX_NUM_ARGS
333169691Skan#define _GLIBCXX_NUM_ARGS 5
334169691Skan#define _GLIBCXX_COMMA ,
335169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
336169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5
337169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5
338169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5
339169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5
340169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
341169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4
342169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4
343169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4
344169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4
345169691Skan#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5;
346169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5)
347169691Skan#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)
348169691Skan#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
349169691Skan#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))
350169691Skan#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
351169691Skan#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)
352169691Skan#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;
353169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass
354169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type
355169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5
356169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5
357169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5)
358169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&
359169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 6
360169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T6
361169691Skan#include _GLIBCXX_REPEAT_HEADER
362169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
363169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
364169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
365169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
366169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
367169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
368169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
369169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
370169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
371169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
372169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
373169691Skan#undef _GLIBCXX_BIND_V_ARGS
374169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
375169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
376169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
377169691Skan#undef _GLIBCXX_BIND_MEMBERS
378169691Skan#undef _GLIBCXX_ARGS_SHIFTED
379169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
380169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
381169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
382169691Skan#undef _GLIBCXX_COMMA_SHIFTED
383169691Skan#undef _GLIBCXX_ARGS
384169691Skan#undef _GLIBCXX_REF_PARAMS
385169691Skan#undef _GLIBCXX_PARAMS
386169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
387169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
388169691Skan#undef _GLIBCXX_COMMA
389169691Skan#undef _GLIBCXX_NUM_ARGS
390169691Skan#define _GLIBCXX_NUM_ARGS 6
391169691Skan#define _GLIBCXX_COMMA ,
392169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
393169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6
394169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6
395169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6
396169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6
397169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
398169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5
399169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5
400169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5
401169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5
402169691Skan#define _GLIBCXX_BIND_MEMBERS _T1 _M_arg1; _T2 _M_arg2; _T3 _M_arg3; _T4 _M_arg4; _T5 _M_arg5; _T6 _M_arg6;
403169691Skan#define _GLIBCXX_BIND_MEMBERS_INIT _M_arg1(__a1), _M_arg2(__a2), _M_arg3(__a3), _M_arg4(__a4), _M_arg5(__a5), _M_arg6(__a6)
404169691Skan#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)
405169691Skan#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
406169691Skan#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))
407169691Skan#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
408169691Skan#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)
409169691Skan#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;
410169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass
411169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type
412169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6
413169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6
414169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6)
415169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&
416169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 7
417169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T7
418169691Skan#include _GLIBCXX_REPEAT_HEADER
419169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
420169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
421169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
422169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
423169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
424169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
425169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
426169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
427169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
428169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
429169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
430169691Skan#undef _GLIBCXX_BIND_V_ARGS
431169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
432169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
433169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
434169691Skan#undef _GLIBCXX_BIND_MEMBERS
435169691Skan#undef _GLIBCXX_ARGS_SHIFTED
436169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
437169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
438169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
439169691Skan#undef _GLIBCXX_COMMA_SHIFTED
440169691Skan#undef _GLIBCXX_ARGS
441169691Skan#undef _GLIBCXX_REF_PARAMS
442169691Skan#undef _GLIBCXX_PARAMS
443169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
444169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
445169691Skan#undef _GLIBCXX_COMMA
446169691Skan#undef _GLIBCXX_NUM_ARGS
447169691Skan#define _GLIBCXX_NUM_ARGS 7
448169691Skan#define _GLIBCXX_COMMA ,
449169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
450169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7
451169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7
452169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7
453169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7
454169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
455169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6
456169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6
457169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6
458169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6
459169691Skan#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;
460169691Skan#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)
461169691Skan#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)
462169691Skan#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
463169691Skan#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))
464169691Skan#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
465169691Skan#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)
466169691Skan#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;
467169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass
468169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type
469169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7
470169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7
471169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7)
472169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&
473169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 8
474169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T8
475169691Skan#include _GLIBCXX_REPEAT_HEADER
476169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
477169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
478169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
479169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
480169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
481169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
482169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
483169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
484169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
485169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
486169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
487169691Skan#undef _GLIBCXX_BIND_V_ARGS
488169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
489169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
490169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
491169691Skan#undef _GLIBCXX_BIND_MEMBERS
492169691Skan#undef _GLIBCXX_ARGS_SHIFTED
493169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
494169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
495169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
496169691Skan#undef _GLIBCXX_COMMA_SHIFTED
497169691Skan#undef _GLIBCXX_ARGS
498169691Skan#undef _GLIBCXX_REF_PARAMS
499169691Skan#undef _GLIBCXX_PARAMS
500169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
501169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
502169691Skan#undef _GLIBCXX_COMMA
503169691Skan#undef _GLIBCXX_NUM_ARGS
504169691Skan#define _GLIBCXX_NUM_ARGS 8
505169691Skan#define _GLIBCXX_COMMA ,
506169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
507169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8
508169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8
509169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8
510169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8
511169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
512169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7
513169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7
514169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7
515169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7
516169691Skan#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;
517169691Skan#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)
518169691Skan#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)
519169691Skan#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
520169691Skan#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))
521169691Skan#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
522169691Skan#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)
523169691Skan#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;
524169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass, typename _T8 = _NullClass
525169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type, typename __strip_reference_wrapper<_T8>::__type
526169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8
527169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8
528169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8)
529169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&
530169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 9
531169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T9
532169691Skan#include _GLIBCXX_REPEAT_HEADER
533169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
534169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
535169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
536169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
537169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
538169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
539169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
540169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
541169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
542169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
543169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
544169691Skan#undef _GLIBCXX_BIND_V_ARGS
545169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
546169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
547169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
548169691Skan#undef _GLIBCXX_BIND_MEMBERS
549169691Skan#undef _GLIBCXX_ARGS_SHIFTED
550169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
551169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
552169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
553169691Skan#undef _GLIBCXX_COMMA_SHIFTED
554169691Skan#undef _GLIBCXX_ARGS
555169691Skan#undef _GLIBCXX_REF_PARAMS
556169691Skan#undef _GLIBCXX_PARAMS
557169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
558169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
559169691Skan#undef _GLIBCXX_COMMA
560169691Skan#undef _GLIBCXX_NUM_ARGS
561169691Skan#define _GLIBCXX_NUM_ARGS 9
562169691Skan#define _GLIBCXX_COMMA ,
563169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
564169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
565169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9
566169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8, _T9& __a9
567169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9
568169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
569169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8
570169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8
571169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8
572169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8
573169691Skan#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;
574169691Skan#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)
575169691Skan#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)
576169691Skan#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
577169691Skan#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))
578169691Skan#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
579169691Skan#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)
580169691Skan#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;
581169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass, typename _T8 = _NullClass, typename _T9 = _NullClass
582169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type, typename __strip_reference_wrapper<_T8>::__type, typename __strip_reference_wrapper<_T9>::__type
583169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_U typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9
584169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9
585169691Skan#define _GLIBCXX_REF_WRAP_PARAMS ref(__a1), ref(__a2), ref(__a3), ref(__a4), ref(__a5), ref(__a6), ref(__a7), ref(__a8), ref(__a9)
586169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&
587169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 10
588169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T10
589169691Skan#include _GLIBCXX_REPEAT_HEADER
590169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
591169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
592169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
593169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
594169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
595169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
596169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
597169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
598169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
599169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
600169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
601169691Skan#undef _GLIBCXX_BIND_V_ARGS
602169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
603169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
604169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
605169691Skan#undef _GLIBCXX_BIND_MEMBERS
606169691Skan#undef _GLIBCXX_ARGS_SHIFTED
607169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
608169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
609169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
610169691Skan#undef _GLIBCXX_COMMA_SHIFTED
611169691Skan#undef _GLIBCXX_ARGS
612169691Skan#undef _GLIBCXX_REF_PARAMS
613169691Skan#undef _GLIBCXX_PARAMS
614169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
615169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
616169691Skan#undef _GLIBCXX_COMMA
617169691Skan#undef _GLIBCXX_NUM_ARGS
618169691Skan#define _GLIBCXX_LAST_INCLUDE
619169691Skan#define _GLIBCXX_NUM_ARGS 10
620169691Skan#define _GLIBCXX_COMMA ,
621169691Skan#define _GLIBCXX_TEMPLATE_PARAMS typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10
622169691Skan#define _GLIBCXX_TEMPLATE_ARGS _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10
623169691Skan#define _GLIBCXX_PARAMS _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9, _T10 __a10
624169691Skan#define _GLIBCXX_REF_PARAMS _T1& __a1, _T2& __a2, _T3& __a3, _T4& __a4, _T5& __a5, _T6& __a6, _T7& __a7, _T8& __a8, _T9& __a9, _T10& __a10
625169691Skan#define _GLIBCXX_ARGS __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9, __a10
626169691Skan#define _GLIBCXX_COMMA_SHIFTED ,
627169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_SHIFTED typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9
628169691Skan#define _GLIBCXX_TEMPLATE_ARGS_SHIFTED _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9
629169691Skan#define _GLIBCXX_PARAMS_SHIFTED _T1 __a1, _T2 __a2, _T3 __a3, _T4 __a4, _T5 __a5, _T6 __a6, _T7 __a7, _T8 __a8, _T9 __a9
630169691Skan#define _GLIBCXX_ARGS_SHIFTED __a1, __a2, __a3, __a4, __a5, __a6, __a7, __a8, __a9
631169691Skan#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;
632169691Skan#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)
633169691Skan#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)
634169691Skan#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
635169691Skan#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))
636169691Skan#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
637169691Skan#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)
638169691Skan#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;
639169691Skan#define _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS typename _T1 = _NullClass, typename _T2 = _NullClass, typename _T3 = _NullClass, typename _T4 = _NullClass, typename _T5 = _NullClass, typename _T6 = _NullClass, typename _T7 = _NullClass, typename _T8 = _NullClass, typename _T9 = _NullClass, typename _T10 = _NullClass
640169691Skan#define _GLIBCXX_TEMPLATE_ARGS_STRIPPED typename __strip_reference_wrapper<_T1>::__type, typename __strip_reference_wrapper<_T2>::__type, typename __strip_reference_wrapper<_T3>::__type, typename __strip_reference_wrapper<_T4>::__type, typename __strip_reference_wrapper<_T5>::__type, typename __strip_reference_wrapper<_T6>::__type, typename __strip_reference_wrapper<_T7>::__type, typename __strip_reference_wrapper<_T8>::__type, typename __strip_reference_wrapper<_T9>::__type, typename __strip_reference_wrapper<_T10>::__type
641169691Skan#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
642169691Skan#define _GLIBCXX_TEMPLATE_ARGS_U _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10
643169691Skan#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)
644169691Skan#define _GLIBCXX_REF_TEMPLATE_ARGS _T1&, _T2&, _T3&, _T4&, _T5&, _T6&, _T7&, _T8&, _T9&, _T10&
645169691Skan#define _GLIBCXX_NUM_ARGS_PLUS_1 11
646169691Skan#define _GLIBCXX_T_NUM_ARGS_PLUS_1 _T11
647169691Skan#include _GLIBCXX_REPEAT_HEADER
648169691Skan#undef _GLIBCXX_T_NUM_ARGS_PLUS_1
649169691Skan#undef _GLIBCXX_NUM_ARGS_PLUS_1
650169691Skan#undef _GLIBCXX_REF_TEMPLATE_ARGS
651169691Skan#undef _GLIBCXX_REF_WRAP_PARAMS
652169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_U
653169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_U
654169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_STRIPPED
655169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_NULL_CLASS
656169691Skan#undef _GLIBCXX_TUPLE_ASSIGN
657169691Skan#undef _GLIBCXX_TUPLE_COPY_INIT
658169691Skan#undef _GLIBCXX_TUPLE_ADD_CREF
659169691Skan#undef _GLIBCXX_BIND_V_ARGS
660169691Skan#undef _GLIBCXX_BIND_V_TEMPLATE_ARGS
661169691Skan#undef _GLIBCXX_MU_GET_TUPLE_ARGS
662169691Skan#undef _GLIBCXX_BIND_MEMBERS_INIT
663169691Skan#undef _GLIBCXX_BIND_MEMBERS
664169691Skan#undef _GLIBCXX_ARGS_SHIFTED
665169691Skan#undef _GLIBCXX_PARAMS_SHIFTED
666169691Skan#undef _GLIBCXX_TEMPLATE_ARGS_SHIFTED
667169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS_SHIFTED
668169691Skan#undef _GLIBCXX_COMMA_SHIFTED
669169691Skan#undef _GLIBCXX_ARGS
670169691Skan#undef _GLIBCXX_REF_PARAMS
671169691Skan#undef _GLIBCXX_PARAMS
672169691Skan#undef _GLIBCXX_TEMPLATE_ARGS
673169691Skan#undef _GLIBCXX_TEMPLATE_PARAMS
674169691Skan#undef _GLIBCXX_COMMA
675169691Skan#undef _GLIBCXX_NUM_ARGS
676169691Skan#undef _GLIBCXX_LAST_INCLUDE
677169691Skan
678