]> git.wh0rd.org Git - ICEs.git/blob - bfin-boost-sync-fetch/test.ii.0
more
[ICEs.git] / bfin-boost-sync-fetch / test.ii.0
1 # 1 "test.cpp"
2 # 1 "<built-in>"
3 # 1 "<command line>"
4 # 1 "test.cpp"
5 # 1 "./boost/format.hpp" 1
6 # 17 "./boost/format.hpp"
7 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 1 3
8 # 63 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 3
9        
10 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 3
11
12 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/functexcept.h" 1 3
13 # 41 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/functexcept.h" 3
14 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/exception_defines.h" 1 3
15 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/functexcept.h" 2 3
16
17 namespace std
18 {
19
20   void
21   __throw_bad_exception(void) __attribute__((__noreturn__));
22
23
24   void
25   __throw_bad_alloc(void) __attribute__((__noreturn__));
26
27
28   void
29   __throw_bad_cast(void) __attribute__((__noreturn__));
30
31   void
32   __throw_bad_typeid(void) __attribute__((__noreturn__));
33
34
35   void
36   __throw_logic_error(const char*) __attribute__((__noreturn__));
37
38   void
39   __throw_domain_error(const char*) __attribute__((__noreturn__));
40
41   void
42   __throw_invalid_argument(const char*) __attribute__((__noreturn__));
43
44   void
45   __throw_length_error(const char*) __attribute__((__noreturn__));
46
47   void
48   __throw_out_of_range(const char*) __attribute__((__noreturn__));
49
50   void
51   __throw_runtime_error(const char*) __attribute__((__noreturn__));
52
53   void
54   __throw_range_error(const char*) __attribute__((__noreturn__));
55
56   void
57   __throw_overflow_error(const char*) __attribute__((__noreturn__));
58
59   void
60   __throw_underflow_error(const char*) __attribute__((__noreturn__));
61
62
63   void
64   __throw_ios_failure(const char*) __attribute__((__noreturn__));
65 }
66 # 66 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
67 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 1 3
68 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
69 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++config.h" 1 3
70 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++config.h" 3
71 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/os_defines.h" 1 3
72 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/os_defines.h" 3
73 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/features.h" 1 3 4
74 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/features.h" 3 4
75 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_config.h" 1 3 4
76 # 36 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/features.h" 2 3 4
77
78 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_arch_features.h" 1 3 4
79 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/features.h" 2 3 4
80 # 356 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/features.h" 3 4
81 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/cdefs.h" 1 3 4
82 # 357 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/features.h" 2 3 4
83 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/os_defines.h" 2 3
84 # 36 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++config.h" 2 3
85
86
87 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/cpu_defines.h" 1 3
88 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++config.h" 2 3
89
90
91
92
93 namespace __gnu_debug_def { }
94
95 namespace __gnu_debug
96 {
97   using namespace __gnu_debug_def;
98 }
99 # 65 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
100 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstring" 1 3
101 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstring" 3
102        
103 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstring" 3
104
105 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstddef" 1 3
106 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstddef" 3
107        
108 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstddef" 3
109
110 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
111 # 152 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 3 4
112 typedef long int ptrdiff_t;
113 # 214 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 3 4
114 typedef long unsigned int size_t;
115 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstddef" 2 3
116
117 namespace std
118 {
119   using ::ptrdiff_t;
120   using ::size_t;
121 }
122 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstring" 2 3
123
124 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 1 3 4
125 # 28 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
126 extern "C" {
127
128
129
130
131 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
132 # 34 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 2 3 4
133
134
135
136
137 extern void *memcpy (void *__restrict __dest,
138        __const void *__restrict __src, size_t __n)
139      throw () __attribute__ ((__nonnull__ (1, 2)));
140
141
142 extern void *memmove (void *__dest, __const void *__src, size_t __n)
143      throw () __attribute__ ((__nonnull__ (1, 2)));
144
145
146
147
148
149
150 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
151         int __c, size_t __n)
152      throw () __attribute__ ((__nonnull__ (1, 2)));
153
154
155
156
157
158 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
159
160
161 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
162      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
163
164
165 extern void *memchr (__const void *__s, int __c, size_t __n)
166       throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
167
168
169
170
171
172 extern void *rawmemchr (__const void *__s, int __c)
173      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
174
175
176 extern void *memrchr (__const void *__s, int __c, size_t __n)
177       throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
178
179
180
181
182
183 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
184      throw () __attribute__ ((__nonnull__ (1, 2)));
185
186 extern char *strncpy (char *__restrict __dest,
187         __const char *__restrict __src, size_t __n)
188      throw () __attribute__ ((__nonnull__ (1, 2)));
189
190
191 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
192      throw () __attribute__ ((__nonnull__ (1, 2)));
193
194 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
195         size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
196
197
198 extern int strcmp (__const char *__s1, __const char *__s2)
199      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
200
201 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
202      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
203
204
205 extern int strcoll (__const char *__s1, __const char *__s2)
206      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
207
208 extern size_t strxfrm (char *__restrict __dest,
209          __const char *__restrict __src, size_t __n)
210      throw () __attribute__ ((__nonnull__ (2)));
211
212 # 130 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
213 extern char *strdup (__const char *__s)
214      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
215
216
217
218
219
220
221 extern char *strndup (__const char *__string, size_t __n)
222      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
223 # 165 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
224
225
226 extern char *strchr (__const char *__s, int __c)
227      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
228
229 extern char *strrchr (__const char *__s, int __c)
230      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
231
232
233
234
235
236 extern char *strchrnul (__const char *__s, int __c)
237      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
238
239
240
241
242
243 extern size_t strcspn (__const char *__s, __const char *__reject)
244      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
245
246
247 extern size_t strspn (__const char *__s, __const char *__accept)
248      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
249
250 extern char *strpbrk (__const char *__s, __const char *__accept)
251      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
252
253 extern char *strstr (__const char *__haystack, __const char *__needle)
254      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
255
256
257
258 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
259      throw () __attribute__ ((__nonnull__ (2)));
260
261 # 212 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
262 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
263          char **__restrict __save_ptr)
264      throw () __attribute__ ((__nonnull__ (2, 3)));
265
266
267
268
269 extern char *strcasestr (__const char *__haystack, __const char *__needle)
270      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
271
272
273
274
275
276
277 extern void *memmem (__const void *__haystack, size_t __haystacklen,
278        __const void *__needle, size_t __needlelen)
279      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
280 # 238 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
281 extern void *mempcpy (void *__restrict __dest,
282         __const void *__restrict __src, size_t __n)
283      throw () __attribute__ ((__nonnull__ (1, 2)));
284
285
286
287
288
289 extern size_t strlen (__const char *__s)
290      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
291
292
293
294
295
296 extern size_t strnlen (__const char *__string, size_t __maxlen)
297      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
298
299
300
301
302
303 extern char *strerror (int __errnum) throw ();
304
305 # 285 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
306 extern char *__glibc_strerror_r (int __errnum, char *__buf, size_t __buflen)
307      throw () __attribute__ ((__nonnull__ (2)));
308
309 extern char * strerror_r (int __errnum, char *__buf, size_t __buflen) throw () __asm__ ("_" "__glibc_strerror_r") __attribute__ ((__nonnull__ (2)));
310 # 306 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
311 extern void bcopy (__const void *__src, void *__dest, size_t __n)
312      throw () __attribute__ ((__nonnull__ (1, 2)));
313
314
315 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
316
317
318 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
319      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
320
321
322 extern char *index (__const char *__s, int __c)
323      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
324
325
326 extern char *rindex (__const char *__s, int __c)
327      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
328 # 339 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
329 extern int ffs (int __i) throw () __attribute__ ((__const__));
330 # 352 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
331 extern int strcasecmp (__const char *__s1, __const char *__s2)
332      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
333
334
335 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
336      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
337 # 375 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
338 extern char *strsep (char **__restrict __stringp,
339        __const char *__restrict __delim)
340      throw () __attribute__ ((__nonnull__ (1, 2)));
341 # 388 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
342 extern char *strsignal (int __sig) throw ();
343
344
345
346
347
348
349 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
350      throw () __attribute__ ((__nonnull__ (1, 2)));
351 # 405 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
352 extern char *stpncpy (char *__restrict __dest,
353         __const char *__restrict __src, size_t __n)
354      throw () __attribute__ ((__nonnull__ (1, 2)));
355 # 422 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/string.h" 3 4
356 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
357
358
359
360
361
362
363 extern size_t strlcat(char *__restrict dst, const char *__restrict src,
364                       size_t n) throw () __attribute__ ((__nonnull__ (1, 2)));
365 extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
366                       size_t n) throw () __attribute__ ((__nonnull__ (1, 2)));
367
368
369 }
370 # 53 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstring" 2 3
371 # 78 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstring" 3
372 namespace std
373 {
374   using ::memcpy;
375   using ::memmove;
376   using ::strcpy;
377   using ::strncpy;
378   using ::strcat;
379   using ::strncat;
380   using ::memcmp;
381   using ::strcmp;
382   using ::strcoll;
383   using ::strncmp;
384   using ::strxfrm;
385   using ::strcspn;
386   using ::strspn;
387   using ::strtok;
388   using ::memset;
389   using ::strerror;
390   using ::strlen;
391
392   using ::memchr;
393
394   inline void*
395   memchr(void* __p, int __c, size_t __n)
396   { return memchr(const_cast<const void*>(__p), __c, __n); }
397
398   using ::strchr;
399
400   inline char*
401   strchr(char* __s1, int __n)
402   { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
403
404   using ::strpbrk;
405
406   inline char*
407   strpbrk(char* __s1, const char* __s2)
408   { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
409
410   using ::strrchr;
411
412   inline char*
413   strrchr(char* __s1, int __n)
414   { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
415
416   using ::strstr;
417
418   inline char*
419   strstr(char* __s1, const char* __s2)
420   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
421 }
422 # 66 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
423 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/climits" 1 3
424 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/climits" 3
425        
426 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/climits" 3
427
428 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 1 3 4
429 # 11 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 3 4
430 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/syslimits.h" 1 3 4
431
432
433
434
435
436
437 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 1 3 4
438 # 122 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 3 4
439 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 1 3 4
440 # 144 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 3 4
441 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/posix1_lim.h" 1 3 4
442 # 153 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/posix1_lim.h" 3 4
443 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/local_lim.h" 1 3 4
444 # 36 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/local_lim.h" 3 4
445 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/linux/limits.h" 1 3 4
446 # 37 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/local_lim.h" 2 3 4
447 # 154 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/posix1_lim.h" 2 3 4
448 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_local_lim.h" 1 3 4
449 # 155 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/posix1_lim.h" 2 3 4
450 # 145 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 3 4
451
452
453
454 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/posix2_lim.h" 1 3 4
455 # 149 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 3 4
456
457
458
459 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/xopen_lim.h" 1 3 4
460 # 34 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/xopen_lim.h" 3 4
461 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/stdio_lim.h" 1 3 4
462 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/xopen_lim.h" 2 3 4
463 # 153 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/limits.h" 2 3 4
464 # 123 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 2 3 4
465 # 8 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/syslimits.h" 2 3 4
466 # 12 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 2 3 4
467 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/climits" 2 3
468 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
469 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdlib" 1 3
470 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdlib" 3
471        
472 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdlib" 3
473 # 71 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdlib" 3
474 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 1 3 4
475 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
476 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
477 # 36 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 2 3 4
478
479 extern "C" {
480
481
482
483
484
485
486 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/waitflags.h" 1 3 4
487 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 2 3 4
488 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/waitstatus.h" 1 3 4
489 # 65 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/waitstatus.h" 3 4
490 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/endian.h" 1 3 4
491 # 37 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/endian.h" 3 4
492 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/endian.h" 1 3 4
493 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/endian.h" 2 3 4
494 # 66 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/waitstatus.h" 2 3 4
495
496 union wait
497   {
498     int w_status;
499     struct
500       {
501
502  unsigned int __w_termsig:7;
503  unsigned int __w_coredump:1;
504  unsigned int __w_retcode:8;
505  unsigned int:16;
506
507
508
509
510
511
512
513       } __wait_terminated;
514     struct
515       {
516
517  unsigned int __w_stopval:8;
518  unsigned int __w_stopsig:8;
519  unsigned int:16;
520
521
522
523
524
525
526       } __wait_stopped;
527   };
528 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 2 3 4
529 # 98 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
530
531
532 typedef struct
533   {
534     int quot;
535     int rem;
536   } div_t;
537
538
539
540 typedef struct
541   {
542     long int quot;
543     long int rem;
544   } ldiv_t;
545
546
547
548
549
550
551
552 __extension__ typedef struct
553   {
554     long long int quot;
555     long long int rem;
556   } lldiv_t;
557
558
559 # 151 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
560
561
562
563 extern double atof (__const char *__nptr)
564      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
565
566
567 extern int atoi (__const char *__nptr)
568      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
569
570 extern long int atol (__const char *__nptr)
571      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
572
573
574
575
576
577 __extension__ extern long long int atoll (__const char *__nptr)
578      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
579
580
581
582
583
584
585 extern double strtod (__const char *__restrict __nptr,
586         char **__restrict __endptr)
587      throw () __attribute__ ((__nonnull__ (1))) ;
588
589
590
591
592
593 extern float strtof (__const char *__restrict __nptr,
594        char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
595
596 extern long double strtold (__const char *__restrict __nptr,
597        char **__restrict __endptr)
598      throw () __attribute__ ((__nonnull__ (1))) ;
599
600
601
602
603
604
605 extern long int strtol (__const char *__restrict __nptr,
606    char **__restrict __endptr, int __base)
607      throw () __attribute__ ((__nonnull__ (1))) ;
608
609 extern unsigned long int strtoul (__const char *__restrict __nptr,
610       char **__restrict __endptr, int __base)
611      throw () __attribute__ ((__nonnull__ (1))) ;
612
613
614
615
616 __extension__
617 extern long long int strtoq (__const char *__restrict __nptr,
618         char **__restrict __endptr, int __base)
619      throw () __attribute__ ((__nonnull__ (1))) ;
620
621 __extension__
622 extern unsigned long long int strtouq (__const char *__restrict __nptr,
623            char **__restrict __endptr, int __base)
624      throw () __attribute__ ((__nonnull__ (1))) ;
625
626
627
628
629
630 __extension__
631 extern long long int strtoll (__const char *__restrict __nptr,
632          char **__restrict __endptr, int __base)
633      throw () __attribute__ ((__nonnull__ (1))) ;
634
635 __extension__
636 extern unsigned long long int strtoull (__const char *__restrict __nptr,
637      char **__restrict __endptr, int __base)
638      throw () __attribute__ ((__nonnull__ (1))) ;
639
640 # 297 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
641 extern char *l64a (long int __n) throw () ;
642
643
644 extern long int a64l (__const char *__s)
645      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
646
647
648
649
650 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 1 3 4
651 # 29 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 3 4
652 extern "C" {
653
654 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 1 3 4
655 # 28 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 3 4
656 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/wordsize.h" 1 3 4
657 # 29 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 2 3 4
658
659
660 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
661 # 32 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 2 3 4
662 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/kernel_types.h" 1 3 4
663 # 10 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/kernel_types.h" 3 4
664 typedef unsigned short __kernel_dev_t;
665 typedef unsigned long __kernel_ino_t;
666 typedef unsigned short __kernel_mode_t;
667 typedef unsigned short __kernel_nlink_t;
668 typedef long __kernel_off_t;
669 typedef int __kernel_pid_t;
670 typedef unsigned int __kernel_ipc_pid_t;
671 typedef unsigned int __kernel_uid_t;
672 typedef unsigned int __kernel_gid_t;
673 typedef unsigned int __kernel_size_t;
674 typedef int __kernel_ssize_t;
675 typedef int __kernel_ptrdiff_t;
676 typedef long __kernel_time_t;
677 typedef long __kernel_suseconds_t;
678 typedef long __kernel_clock_t;
679 typedef int __kernel_daddr_t;
680 typedef char * __kernel_caddr_t;
681 typedef unsigned short __kernel_uid16_t;
682 typedef unsigned short __kernel_gid16_t;
683 typedef unsigned int __kernel_uid32_t;
684 typedef unsigned int __kernel_gid32_t;
685 typedef unsigned short __kernel_old_uid_t;
686 typedef unsigned short __kernel_old_gid_t;
687 typedef long long __kernel_loff_t;
688 typedef __kernel_dev_t __kernel_old_dev_t;
689
690 typedef struct {
691
692
693
694  int __val[2];
695
696 } __kernel_fsid_t;
697 # 33 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 2 3 4
698
699
700 typedef unsigned char __u_char;
701 typedef unsigned short int __u_short;
702 typedef unsigned int __u_int;
703 typedef unsigned long int __u_long;
704
705
706 typedef signed char __int8_t;
707 typedef unsigned char __uint8_t;
708 typedef signed short int __int16_t;
709 typedef unsigned short int __uint16_t;
710 typedef signed int __int32_t;
711 typedef unsigned int __uint32_t;
712
713
714
715
716 __extension__ typedef signed long long int __int64_t;
717 __extension__ typedef unsigned long long int __uint64_t;
718
719
720
721
722
723
724
725 __extension__ typedef long long int __quad_t;
726 __extension__ typedef unsigned long long int __u_quad_t;
727 # 135 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 3 4
728 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/typesizes.h" 1 3 4
729 # 136 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 2 3 4
730
731
732 __extension__ typedef __u_quad_t __dev_t;
733 __extension__ typedef unsigned int __uid_t;
734 __extension__ typedef unsigned int __gid_t;
735 __extension__ typedef unsigned long int __ino_t;
736 __extension__ typedef __u_quad_t __ino64_t;
737 __extension__ typedef unsigned int __mode_t;
738 __extension__ typedef unsigned int __nlink_t;
739 __extension__ typedef long int __off_t;
740 __extension__ typedef __quad_t __off64_t;
741 __extension__ typedef int __pid_t;
742 __extension__ typedef struct { int __val[2]; } __fsid_t;
743 __extension__ typedef long int __clock_t;
744 __extension__ typedef unsigned long int __rlim_t;
745 __extension__ typedef __u_quad_t __rlim64_t;
746 __extension__ typedef unsigned int __id_t;
747 __extension__ typedef long int __time_t;
748 __extension__ typedef unsigned int __useconds_t;
749 __extension__ typedef long int __suseconds_t;
750
751 __extension__ typedef int __daddr_t;
752 __extension__ typedef long int __swblk_t;
753 __extension__ typedef int __key_t;
754
755
756 __extension__ typedef int __clockid_t;
757
758
759 __extension__ typedef void * __timer_t;
760
761
762 __extension__ typedef long int __blksize_t;
763
764
765
766
767 __extension__ typedef long int __blkcnt_t;
768 __extension__ typedef __quad_t __blkcnt64_t;
769
770
771 __extension__ typedef unsigned long int __fsblkcnt_t;
772 __extension__ typedef __u_quad_t __fsblkcnt64_t;
773
774
775 __extension__ typedef unsigned long int __fsfilcnt_t;
776 __extension__ typedef __u_quad_t __fsfilcnt64_t;
777
778 __extension__ typedef long int __ssize_t;
779
780
781
782 typedef __off64_t __loff_t;
783 typedef __quad_t *__qaddr_t;
784 typedef char *__caddr_t;
785
786
787 __extension__ typedef int __intptr_t;
788
789
790 __extension__ typedef unsigned int __socklen_t;
791
792
793
794
795
796 typedef __kernel_ipc_pid_t __ipc_pid_t;
797
798
799
800 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/pthreadtypes.h" 1 3 4
801 # 23 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/pthreadtypes.h" 3 4
802 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sched.h" 1 3 4
803 # 91 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sched.h" 3 4
804 struct __sched_param
805   {
806     int __sched_priority;
807   };
808 # 24 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/pthreadtypes.h" 2 3 4
809
810
811 struct _pthread_fastlock
812 {
813   long int __status;
814   int __spinlock;
815
816 };
817
818
819
820 typedef struct _pthread_descr_struct *_pthread_descr;
821
822
823
824
825
826 typedef struct __pthread_attr_s
827 {
828   int __detachstate;
829   int __schedpolicy;
830   struct __sched_param __schedparam;
831   int __inheritsched;
832   int __scope;
833   size_t __guardsize;
834   int __stackaddr_set;
835   void *__stackaddr;
836   size_t __stacksize;
837 } pthread_attr_t;
838
839
840
841 typedef struct
842 {
843   struct _pthread_fastlock __c_lock;
844   _pthread_descr __c_waiting;
845 } pthread_cond_t;
846
847
848
849 typedef struct
850 {
851   int __dummy;
852 } pthread_condattr_t;
853
854
855 typedef unsigned int pthread_key_t;
856
857
858
859
860
861 typedef struct
862 {
863   int __m_reserved;
864   int __m_count;
865   _pthread_descr __m_owner;
866   int __m_kind;
867   struct _pthread_fastlock __m_lock;
868 } pthread_mutex_t;
869
870
871
872 typedef struct
873 {
874   int __mutexkind;
875 } pthread_mutexattr_t;
876
877
878
879 typedef int pthread_once_t;
880
881
882
883
884 typedef struct _pthread_rwlock_t
885 {
886   struct _pthread_fastlock __rw_lock;
887   int __rw_readers;
888   _pthread_descr __rw_writer;
889   _pthread_descr __rw_read_waiting;
890   _pthread_descr __rw_write_waiting;
891   int __rw_kind;
892   int __rw_pshared;
893 } pthread_rwlock_t;
894
895
896
897 typedef struct
898 {
899   int __lockkind;
900   int __pshared;
901 } pthread_rwlockattr_t;
902
903
904
905
906 typedef volatile int pthread_spinlock_t;
907
908
909 typedef struct {
910   struct _pthread_fastlock __ba_lock;
911   int __ba_required;
912   int __ba_present;
913   _pthread_descr __ba_waiting;
914 } pthread_barrier_t;
915
916
917 typedef struct {
918   int __pshared;
919 } pthread_barrierattr_t;
920
921
922
923
924
925 typedef unsigned long int pthread_t;
926 # 207 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/types.h" 2 3 4
927 # 32 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 2 3 4
928
929
930
931 typedef __u_char u_char;
932 typedef __u_short u_short;
933 typedef __u_int u_int;
934 typedef __u_long u_long;
935 typedef __quad_t quad_t;
936 typedef __u_quad_t u_quad_t;
937 typedef __fsid_t fsid_t;
938
939
940
941
942 typedef __loff_t loff_t;
943
944
945
946 typedef __ino_t ino_t;
947
948
949
950
951
952
953 typedef __ino64_t ino64_t;
954
955
956
957
958 typedef __dev_t dev_t;
959
960
961
962
963 typedef __gid_t gid_t;
964
965
966
967
968 typedef __mode_t mode_t;
969
970
971
972
973 typedef __nlink_t nlink_t;
974
975
976
977
978 typedef __uid_t uid_t;
979
980
981
982
983
984 typedef __off_t off_t;
985
986
987
988
989
990
991 typedef __off64_t off64_t;
992
993
994
995
996 typedef __pid_t pid_t;
997
998
999
1000
1001 typedef __id_t id_t;
1002
1003
1004
1005
1006 typedef __ssize_t ssize_t;
1007
1008
1009
1010
1011
1012 typedef __daddr_t daddr_t;
1013 typedef __caddr_t caddr_t;
1014
1015
1016
1017
1018
1019 typedef __key_t key_t;
1020 # 133 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 3 4
1021 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 1 3 4
1022 # 59 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1023
1024
1025 typedef __clock_t clock_t;
1026
1027
1028
1029 # 75 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1030
1031
1032 typedef __time_t time_t;
1033
1034
1035
1036 # 93 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1037 typedef __clockid_t clockid_t;
1038 # 105 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1039 typedef __timer_t timer_t;
1040 # 134 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 2 3 4
1041
1042
1043
1044 typedef __useconds_t useconds_t;
1045
1046
1047
1048 typedef __suseconds_t suseconds_t;
1049
1050
1051
1052
1053
1054 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
1055 # 148 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 2 3 4
1056
1057
1058
1059 typedef unsigned long int ulong;
1060 typedef unsigned short int ushort;
1061 typedef unsigned int uint;
1062 # 195 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 3 4
1063 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
1064 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
1065 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
1066 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
1067
1068
1069 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
1070 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
1071 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
1072 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
1073
1074 typedef int register_t __attribute__ ((__mode__ (__word__)));
1075 # 220 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 3 4
1076 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 1 3 4
1077 # 31 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 3 4
1078 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/select.h" 1 3 4
1079 # 32 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 2 3 4
1080
1081
1082 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sigset.h" 1 3 4
1083 # 23 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sigset.h" 3 4
1084 typedef int __sig_atomic_t;
1085
1086
1087
1088
1089 typedef struct
1090   {
1091     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
1092   } __sigset_t;
1093 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 2 3 4
1094
1095
1096
1097 typedef __sigset_t sigset_t;
1098
1099
1100
1101
1102
1103 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 1 3 4
1104 # 121 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1105 struct timespec
1106   {
1107     __time_t tv_sec;
1108     long int tv_nsec;
1109   };
1110 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 2 3 4
1111
1112 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/time.h" 1 3 4
1113 # 73 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/time.h" 3 4
1114 struct timeval
1115   {
1116     __time_t tv_sec;
1117     __suseconds_t tv_usec;
1118   };
1119 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 2 3 4
1120 # 55 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 3 4
1121 typedef long int __fd_mask;
1122 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 3 4
1123 typedef struct
1124   {
1125
1126
1127
1128     __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
1129
1130
1131
1132
1133
1134   } fd_set;
1135
1136
1137
1138
1139
1140
1141 typedef __fd_mask fd_mask;
1142 # 99 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 3 4
1143 extern "C" {
1144 # 109 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 3 4
1145 extern int select (int __nfds, fd_set *__restrict __readfds,
1146      fd_set *__restrict __writefds,
1147      fd_set *__restrict __exceptfds,
1148      struct timeval *__restrict __timeout);
1149 # 121 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/select.h" 3 4
1150 extern int pselect (int __nfds, fd_set *__restrict __readfds,
1151       fd_set *__restrict __writefds,
1152       fd_set *__restrict __exceptfds,
1153       const struct timespec *__restrict __timeout,
1154       const __sigset_t *__restrict __sigmask);
1155
1156
1157 }
1158 # 221 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 2 3 4
1159
1160
1161 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/sysmacros.h" 1 3 4
1162 # 29 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/sysmacros.h" 3 4
1163 __extension__
1164 static __inline unsigned int gnu_dev_major (unsigned long long int __dev)
1165      throw ();
1166 __extension__
1167 static __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
1168      throw ();
1169 __extension__
1170 static __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
1171        unsigned int __minor)
1172      throw ();
1173
1174
1175 __extension__ static __inline unsigned int
1176 gnu_dev_major (unsigned long long int __dev) throw ()
1177 {
1178   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
1179 }
1180
1181 __extension__ static __inline unsigned int
1182 gnu_dev_minor (unsigned long long int __dev) throw ()
1183 {
1184   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
1185 }
1186
1187 __extension__ static __inline unsigned long long int
1188 gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
1189 {
1190   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
1191    | (((unsigned long long int) (__minor & ~0xff)) << 12)
1192    | (((unsigned long long int) (__major & ~0xfff)) << 32));
1193 }
1194 # 224 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 2 3 4
1195
1196
1197
1198
1199 typedef __blksize_t blksize_t;
1200
1201
1202
1203
1204
1205
1206 typedef __blkcnt_t blkcnt_t;
1207
1208
1209
1210 typedef __fsblkcnt_t fsblkcnt_t;
1211
1212
1213
1214 typedef __fsfilcnt_t fsfilcnt_t;
1215 # 262 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 3 4
1216 typedef __blkcnt64_t blkcnt64_t;
1217 typedef __fsblkcnt64_t fsblkcnt64_t;
1218 typedef __fsfilcnt64_t fsfilcnt64_t;
1219
1220
1221
1222
1223
1224 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/pthreadtypes.h" 1 3 4
1225 # 271 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sys/types.h" 2 3 4
1226
1227
1228 }
1229 # 307 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 2 3 4
1230
1231
1232
1233
1234
1235
1236 extern long int random (void) throw ();
1237
1238
1239 extern void srandom (unsigned int __seed) throw ();
1240
1241
1242
1243
1244
1245 extern char *initstate (unsigned int __seed, char *__statebuf,
1246    size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
1247
1248
1249
1250 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
1251
1252
1253
1254
1255
1256
1257
1258 struct random_data
1259   {
1260     int32_t *fptr;
1261     int32_t *rptr;
1262     int32_t *state;
1263     int rand_type;
1264     int rand_deg;
1265     int rand_sep;
1266     int32_t *end_ptr;
1267   };
1268
1269 extern int random_r (struct random_data *__restrict __buf,
1270        int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
1271
1272 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
1273      throw () __attribute__ ((__nonnull__ (2)));
1274
1275 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
1276    size_t __statelen,
1277    struct random_data *__restrict __buf)
1278      throw () __attribute__ ((__nonnull__ (2, 4)));
1279
1280 extern int setstate_r (char *__restrict __statebuf,
1281          struct random_data *__restrict __buf)
1282      throw () __attribute__ ((__nonnull__ (1, 2)));
1283
1284
1285
1286
1287
1288
1289 extern int rand (void) throw ();
1290
1291 extern void srand (unsigned int __seed) throw ();
1292
1293
1294
1295
1296 extern int rand_r (unsigned int *__seed) throw ();
1297 # 382 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1298 extern double drand48 (void) throw ();
1299 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
1300
1301
1302
1303 extern long int lrand48 (void) throw ();
1304 extern long int nrand48 (unsigned short int __xsubi[3])
1305      throw () __attribute__ ((__nonnull__ (1)));
1306
1307
1308 extern long int mrand48 (void) throw ();
1309 extern long int jrand48 (unsigned short int __xsubi[3])
1310      throw () __attribute__ ((__nonnull__ (1)));
1311
1312
1313 extern void srand48 (long int __seedval) throw ();
1314 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
1315      throw () __attribute__ ((__nonnull__ (1)));
1316 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
1317
1318
1319
1320
1321
1322 struct drand48_data
1323   {
1324     unsigned short int __x[3];
1325     unsigned short int __old_x[3];
1326     unsigned short int __c;
1327     unsigned short int __init;
1328     unsigned long long int __a;
1329   };
1330
1331
1332
1333 extern int drand48_r (struct drand48_data *__restrict __buffer,
1334         double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
1335 extern int erand48_r (unsigned short int __xsubi[3],
1336         struct drand48_data *__restrict __buffer,
1337         double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
1338
1339
1340
1341 extern int lrand48_r (struct drand48_data *__restrict __buffer,
1342         long int *__restrict __result)
1343      throw () __attribute__ ((__nonnull__ (1, 2)));
1344 extern int nrand48_r (unsigned short int __xsubi[3],
1345         struct drand48_data *__restrict __buffer,
1346         long int *__restrict __result)
1347      throw () __attribute__ ((__nonnull__ (1, 2)));
1348
1349
1350 extern int mrand48_r (struct drand48_data *__restrict __buffer,
1351         long int *__restrict __result)
1352      throw () __attribute__ ((__nonnull__ (1, 2)));
1353 extern int jrand48_r (unsigned short int __xsubi[3],
1354         struct drand48_data *__restrict __buffer,
1355         long int *__restrict __result)
1356      throw () __attribute__ ((__nonnull__ (1, 2)));
1357
1358
1359 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
1360      throw () __attribute__ ((__nonnull__ (2)));
1361
1362 extern int seed48_r (unsigned short int __seed16v[3],
1363        struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
1364
1365 extern int lcong48_r (unsigned short int __param[7],
1366         struct drand48_data *__buffer)
1367      throw () __attribute__ ((__nonnull__ (1, 2)));
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
1378
1379 extern void *calloc (size_t __nmemb, size_t __size)
1380      throw () __attribute__ ((__malloc__)) ;
1381
1382
1383
1384
1385
1386
1387
1388 extern void *realloc (void *__ptr, size_t __size)
1389      throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
1390
1391 extern void free (void *__ptr) throw ();
1392
1393
1394
1395
1396 extern void cfree (void *__ptr) throw ();
1397
1398
1399
1400 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/alloca.h" 1 3 4
1401 # 25 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/alloca.h" 3 4
1402 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
1403 # 26 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/alloca.h" 2 3 4
1404
1405 extern "C" {
1406
1407
1408
1409
1410
1411 extern void *alloca (size_t __size) throw ();
1412
1413
1414
1415
1416
1417
1418
1419 }
1420 # 485 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 2 3 4
1421
1422
1423
1424
1425 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
1426
1427
1428
1429
1430 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
1431      throw () __attribute__ ((__nonnull__ (1))) ;
1432
1433
1434
1435
1436 extern void abort (void) throw () __attribute__ ((__noreturn__));
1437
1438
1439
1440 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
1441
1442
1443
1444
1445
1446 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
1447      throw () __attribute__ ((__nonnull__ (1)));
1448
1449
1450
1451
1452
1453
1454 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
1455
1456
1457
1458
1459
1460
1461 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
1462
1463
1464
1465
1466
1467
1468 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
1469
1470
1471
1472
1473 extern char *__secure_getenv (__const char *__name)
1474      throw () __attribute__ ((__nonnull__ (1))) ;
1475
1476
1477
1478
1479
1480 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
1481
1482
1483
1484
1485
1486 extern int setenv (__const char *__name, __const char *__value, int __replace)
1487      throw () __attribute__ ((__nonnull__ (2)));
1488
1489
1490 extern int unsetenv (__const char *__name) throw ();
1491 # 570 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1492 extern int clearenv (void) throw ();
1493 # 579 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1494 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
1495 # 590 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1496 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
1497 # 600 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1498 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
1499 # 610 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1500 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
1501
1502
1503
1504
1505
1506
1507
1508
1509 extern int system (__const char *__command) ;
1510
1511 # 639 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1512 extern char *realpath (__const char *__restrict __name,
1513          char *__restrict __resolved) throw () __attribute__ ((__nonnull__ (2)));
1514
1515
1516
1517
1518
1519
1520 typedef int (*__compar_fn_t) (__const void *, __const void *);
1521
1522
1523 typedef __compar_fn_t comparison_fn_t;
1524
1525
1526
1527
1528
1529
1530 extern void *bsearch (__const void *__key, __const void *__base,
1531         size_t __nmemb, size_t __size, __compar_fn_t __compar)
1532      __attribute__ ((__nonnull__ (1, 2, 5))) ;
1533
1534
1535
1536 extern void qsort (void *__base, size_t __nmemb, size_t __size,
1537      __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
1538
1539
1540
1541 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
1542 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
1543
1544
1545
1546 __extension__ extern long long int llabs (long long int __x)
1547      throw () __attribute__ ((__const__)) ;
1548
1549
1550
1551
1552
1553
1554
1555 extern div_t div (int __numer, int __denom)
1556      throw () __attribute__ ((__const__)) ;
1557 extern ldiv_t ldiv (long int __numer, long int __denom)
1558      throw () __attribute__ ((__const__)) ;
1559
1560
1561
1562
1563 __extension__ extern lldiv_t lldiv (long long int __numer,
1564         long long int __denom)
1565      throw () __attribute__ ((__const__)) ;
1566
1567 # 720 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1568 extern char *gcvt (double __value, int __ndigit, char *__buf)
1569      throw () __attribute__ ((__nonnull__ (3))) ;
1570 # 786 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1571 extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
1572 # 797 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1573 extern int getsubopt (char **__restrict __optionp,
1574         char *__const *__restrict __tokens,
1575         char **__restrict __valuep)
1576      throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
1577
1578
1579
1580
1581
1582 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
1583
1584
1585
1586
1587
1588
1589
1590 extern int posix_openpt (int __oflag) ;
1591
1592
1593
1594
1595
1596
1597
1598 extern int grantpt (int __fd) throw ();
1599
1600
1601
1602 extern int unlockpt (int __fd) throw ();
1603
1604
1605
1606
1607 extern char *ptsname (int __fd) throw () ;
1608
1609
1610
1611
1612
1613
1614 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
1615      throw () __attribute__ ((__nonnull__ (2)));
1616
1617
1618 extern int getpt (void);
1619 # 863 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdlib.h" 3 4
1620 }
1621 # 72 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdlib" 2 3
1622 # 103 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdlib" 3
1623 namespace std
1624 {
1625   using ::div_t;
1626   using ::ldiv_t;
1627
1628   using ::abort;
1629   using ::abs;
1630   using ::atexit;
1631   using ::atof;
1632   using ::atoi;
1633   using ::atol;
1634   using ::bsearch;
1635   using ::calloc;
1636   using ::div;
1637   using ::exit;
1638   using ::free;
1639   using ::getenv;
1640   using ::labs;
1641   using ::ldiv;
1642   using ::malloc;
1643
1644
1645
1646
1647
1648   using ::qsort;
1649   using ::rand;
1650   using ::realloc;
1651   using ::srand;
1652   using ::strtod;
1653   using ::strtol;
1654   using ::strtoul;
1655   using ::system;
1656
1657
1658
1659
1660
1661   inline long
1662   abs(long __i) { return labs(__i); }
1663
1664   inline ldiv_t
1665   div(long __i, long __j) { return ldiv(__i, __j); }
1666 }
1667 # 68 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
1668
1669 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 1 3
1670 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 3
1671        
1672 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 3
1673
1674
1675 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++locale.h" 1 3
1676 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++locale.h" 3
1677        
1678 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++locale.h" 3
1679
1680 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/clocale" 1 3
1681 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/clocale" 3
1682        
1683 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/clocale" 3
1684
1685 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 1 3 4
1686 # 29 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 3 4
1687 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
1688 # 30 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 2 3 4
1689 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_locale.h" 1 3 4
1690 # 31 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 2 3 4
1691
1692 extern "C" {
1693 # 54 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 3 4
1694 struct lconv
1695 {
1696
1697
1698   char *decimal_point;
1699   char *thousands_sep;
1700
1701
1702
1703
1704
1705   char *grouping;
1706
1707
1708
1709
1710
1711   char *int_curr_symbol;
1712   char *currency_symbol;
1713   char *mon_decimal_point;
1714   char *mon_thousands_sep;
1715   char *mon_grouping;
1716   char *positive_sign;
1717   char *negative_sign;
1718   char int_frac_digits;
1719   char frac_digits;
1720
1721   char p_cs_precedes;
1722
1723   char p_sep_by_space;
1724
1725   char n_cs_precedes;
1726
1727   char n_sep_by_space;
1728
1729
1730
1731
1732
1733
1734   char p_sign_posn;
1735   char n_sign_posn;
1736
1737
1738   char int_p_cs_precedes;
1739
1740   char int_p_sep_by_space;
1741
1742   char int_n_cs_precedes;
1743
1744   char int_n_sep_by_space;
1745
1746
1747
1748
1749
1750
1751   char int_p_sign_posn;
1752   char int_n_sign_posn;
1753 # 121 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 3 4
1754 };
1755
1756
1757
1758
1759
1760 extern char *setlocale (int __category, __const char *__locale) throw ();
1761
1762
1763 extern struct lconv *localeconv (void) throw ();
1764
1765
1766 # 223 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/locale.h" 3 4
1767 }
1768 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/clocale" 2 3
1769
1770
1771
1772
1773
1774 namespace std
1775 {
1776   using ::lconv;
1777   using ::setlocale;
1778   using ::localeconv;
1779 }
1780 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++locale.h" 2 3
1781
1782 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 1 3
1783 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 3
1784        
1785 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 3
1786
1787
1788
1789
1790 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 1 3 4
1791 # 30 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
1792 extern "C" {
1793
1794
1795
1796 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
1797 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 2 3 4
1798 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
1799
1800
1801 typedef struct __STDIO_FILE_STRUCT FILE;
1802
1803
1804
1805
1806
1807 # 62 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
1808 typedef struct __STDIO_FILE_STRUCT __FILE;
1809 # 72 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
1810 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 1 3 4
1811 # 119 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
1812 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_mutex.h" 1 3 4
1813 # 15 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_mutex.h" 3 4
1814 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 1 3 4
1815 # 20 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
1816 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sched.h" 1 3 4
1817 # 29 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sched.h" 3 4
1818 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 1 3 4
1819 # 30 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sched.h" 2 3 4
1820
1821
1822 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sched.h" 1 3 4
1823 # 65 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sched.h" 3 4
1824 struct sched_param
1825   {
1826     int __sched_priority;
1827   };
1828
1829 extern "C" {
1830
1831
1832
1833 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
1834     int __flags, void *__arg, ...) throw ();
1835
1836
1837
1838
1839
1840
1841
1842 }
1843 # 106 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sched.h" 3 4
1844 typedef unsigned long int __cpu_mask;
1845
1846
1847
1848
1849
1850
1851 typedef struct
1852 {
1853   __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
1854 } cpu_set_t;
1855 # 33 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sched.h" 2 3 4
1856
1857
1858
1859
1860 extern "C" {
1861
1862
1863 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
1864      throw ();
1865
1866
1867 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
1868
1869
1870 extern int sched_setscheduler (__pid_t __pid, int __policy,
1871           __const struct sched_param *__param) throw ();
1872
1873
1874 extern int sched_getscheduler (__pid_t __pid) throw ();
1875
1876
1877 extern int sched_yield (void) throw ();
1878
1879
1880 extern int sched_get_priority_max (int __algorithm) throw ();
1881
1882
1883 extern int sched_get_priority_min (int __algorithm) throw ();
1884
1885
1886 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
1887 # 76 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/sched.h" 3 4
1888 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
1889          __const cpu_set_t *__cpuset) throw ();
1890
1891
1892 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
1893          cpu_set_t *__cpuset) throw ();
1894
1895
1896 }
1897 # 21 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 2 3 4
1898 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 1 3 4
1899 # 31 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1900 extern "C" {
1901
1902
1903
1904
1905
1906
1907
1908 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
1909 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 2 3 4
1910
1911
1912
1913 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/time.h" 1 3 4
1914 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/time.h" 3 4
1915 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_clk_tck.h" 1 3 4
1916 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/time.h" 2 3 4
1917 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 2 3 4
1918 # 132 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1919
1920
1921 struct tm
1922 {
1923   int tm_sec;
1924   int tm_min;
1925   int tm_hour;
1926   int tm_mday;
1927   int tm_mon;
1928   int tm_year;
1929   int tm_wday;
1930   int tm_yday;
1931   int tm_isdst;
1932
1933
1934
1935   long int tm_gmtoff;
1936   __const char *tm_zone;
1937
1938
1939
1940
1941
1942 };
1943
1944
1945
1946
1947
1948
1949
1950
1951 struct itimerspec
1952   {
1953     struct timespec it_interval;
1954     struct timespec it_value;
1955   };
1956
1957
1958 struct sigevent;
1959 # 183 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1960
1961
1962
1963 extern clock_t clock (void) throw ();
1964
1965
1966 extern time_t time (time_t *__timer) throw ();
1967
1968
1969
1970 extern double difftime (time_t __time1, time_t __time0)
1971      throw () __attribute__ ((__const__));
1972
1973
1974
1975 extern time_t mktime (struct tm *__tp) throw ();
1976
1977
1978
1979
1980
1981 extern size_t strftime (char *__restrict __s, size_t __maxsize,
1982    __const char *__restrict __format,
1983    __const struct tm *__restrict __tp) throw ();
1984
1985
1986
1987
1988
1989 extern char *strptime (__const char *__restrict __s,
1990          __const char *__restrict __fmt, struct tm *__tp)
1991      throw ();
1992 # 235 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
1993
1994
1995
1996 extern struct tm *gmtime (__const time_t *__timer) throw ();
1997
1998
1999
2000 extern struct tm *localtime (__const time_t *__timer) throw ();
2001
2002
2003
2004
2005
2006 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
2007        struct tm *__restrict __tp) throw ();
2008
2009
2010
2011 extern struct tm *localtime_r (__const time_t *__restrict __timer,
2012           struct tm *__restrict __tp) throw ();
2013
2014
2015
2016
2017
2018 extern char *asctime (__const struct tm *__tp) throw ();
2019
2020
2021 extern char *ctime (__const time_t *__timer) throw ();
2022
2023
2024
2025
2026
2027
2028
2029 extern char *asctime_r (__const struct tm *__restrict __tp,
2030    char *__restrict __buf) throw ();
2031
2032
2033 extern char *ctime_r (__const time_t *__restrict __timer,
2034         char *__restrict __buf) throw ();
2035 # 291 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
2036 extern char *tzname[2];
2037
2038
2039
2040 extern void tzset (void) throw ();
2041
2042
2043
2044 extern int daylight;
2045 extern long int timezone;
2046
2047
2048
2049
2050
2051 extern int stime (__const time_t *__when) throw ();
2052 # 321 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
2053 extern time_t timegm (struct tm *__tp) throw ();
2054
2055
2056 extern time_t timelocal (struct tm *__tp) throw ();
2057
2058
2059 extern int dysize (int __year) throw () __attribute__ ((__const__));
2060 # 336 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
2061 extern int nanosleep (__const struct timespec *__requested_time,
2062         struct timespec *__remaining);
2063
2064
2065
2066 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
2067
2068
2069 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
2070
2071
2072 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
2073      throw ();
2074 # 368 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
2075 extern int timer_create (clockid_t __clock_id,
2076     struct sigevent *__restrict __evp,
2077     timer_t *__restrict __timerid) throw ();
2078
2079
2080 extern int timer_delete (timer_t __timerid) throw ();
2081
2082
2083 extern int timer_settime (timer_t __timerid, int __flags,
2084      __const struct itimerspec *__restrict __value,
2085      struct itimerspec *__restrict __ovalue) throw ();
2086
2087
2088 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
2089      throw ();
2090
2091
2092 extern int timer_getoverrun (timer_t __timerid) throw ();
2093 # 431 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/time.h" 3 4
2094 }
2095 # 22 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 2 3 4
2096
2097
2098 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/signal.h" 1 3 4
2099 # 31 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/signal.h" 3 4
2100 extern "C" {
2101
2102 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sigset.h" 1 3 4
2103 # 34 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/signal.h" 2 3 4
2104 # 399 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/signal.h" 3 4
2105 }
2106 # 25 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 2 3 4
2107 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/pthreadtypes.h" 1 3 4
2108 # 26 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 2 3 4
2109 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/initspin.h" 1 3 4
2110 # 27 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 2 3 4
2111
2112
2113 extern "C" {
2114 # 59 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2115 enum
2116 {
2117   PTHREAD_CREATE_JOINABLE,
2118
2119   PTHREAD_CREATE_DETACHED
2120
2121 };
2122
2123 enum
2124 {
2125   PTHREAD_INHERIT_SCHED,
2126
2127   PTHREAD_EXPLICIT_SCHED
2128
2129 };
2130
2131 enum
2132 {
2133   PTHREAD_SCOPE_SYSTEM,
2134
2135   PTHREAD_SCOPE_PROCESS
2136
2137 };
2138
2139 enum
2140 {
2141   PTHREAD_MUTEX_ADAPTIVE_NP,
2142   PTHREAD_MUTEX_RECURSIVE_NP,
2143   PTHREAD_MUTEX_ERRORCHECK_NP,
2144   PTHREAD_MUTEX_TIMED_NP
2145
2146   ,
2147   PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_ADAPTIVE_NP,
2148   PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
2149   PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
2150   PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
2151
2152
2153
2154   , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP
2155
2156 };
2157
2158 enum
2159 {
2160   PTHREAD_PROCESS_PRIVATE,
2161
2162   PTHREAD_PROCESS_SHARED
2163
2164 };
2165
2166
2167 enum
2168 {
2169   PTHREAD_RWLOCK_PREFER_READER_NP,
2170   PTHREAD_RWLOCK_PREFER_WRITER_NP,
2171   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
2172   PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP
2173 };
2174 # 131 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2175 struct _pthread_cleanup_buffer
2176 {
2177   void (*__routine) (void *);
2178   void *__arg;
2179   int __canceltype;
2180   struct _pthread_cleanup_buffer *__prev;
2181 };
2182
2183
2184
2185 enum
2186 {
2187   PTHREAD_CANCEL_ENABLE,
2188
2189   PTHREAD_CANCEL_DISABLE
2190
2191 };
2192 enum
2193 {
2194   PTHREAD_CANCEL_DEFERRED,
2195
2196   PTHREAD_CANCEL_ASYNCHRONOUS
2197
2198 };
2199 # 163 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2200 extern int pthread_create (pthread_t *__restrict __threadp,
2201       __const pthread_attr_t *__restrict __attr,
2202       void *(*__start_routine) (void *),
2203       void *__restrict __arg) throw ();
2204
2205
2206 extern pthread_t pthread_self (void) throw ();
2207
2208
2209 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
2210
2211
2212 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
2213
2214
2215
2216
2217 extern int pthread_join (pthread_t __th, void **__thread_return);
2218
2219
2220
2221
2222
2223 extern int pthread_detach (pthread_t __th) throw ();
2224
2225
2226
2227
2228
2229
2230
2231 extern int pthread_attr_init (pthread_attr_t *__attr) throw ();
2232
2233
2234 extern int pthread_attr_destroy (pthread_attr_t *__attr) throw ();
2235
2236
2237 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
2238      int __detachstate) throw ();
2239
2240
2241 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
2242      int *__detachstate) throw ();
2243
2244
2245 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
2246            __const struct sched_param *__restrict
2247            __param) throw ();
2248
2249
2250 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
2251            __attr,
2252            struct sched_param *__restrict __param)
2253      throw ();
2254
2255
2256 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
2257      throw ();
2258
2259
2260 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
2261      __attr, int *__restrict __policy)
2262      throw ();
2263
2264
2265 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
2266       int __inherit) throw ();
2267
2268
2269 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
2270       __attr, int *__restrict __inherit)
2271      throw ();
2272
2273
2274 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
2275      throw ();
2276
2277
2278 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
2279       int *__restrict __scope) throw ();
2280
2281
2282
2283 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
2284           size_t __guardsize) throw ();
2285
2286
2287 extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
2288           __attr, size_t *__restrict __guardsize)
2289      throw ();
2290
2291
2292
2293
2294
2295
2296 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
2297           void *__stackaddr) throw ();
2298
2299
2300 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
2301           __attr, void **__restrict __stackaddr)
2302      throw ();
2303
2304
2305
2306
2307
2308 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
2309       size_t __stacksize) throw ();
2310
2311
2312 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
2313       void **__restrict __stackaddr,
2314       size_t *__restrict __stacksize) throw ();
2315
2316
2317
2318
2319
2320 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
2321           size_t __stacksize) throw ();
2322
2323
2324 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
2325           __attr, size_t *__restrict __stacksize)
2326      throw ();
2327 # 306 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2328 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
2329       __const struct sched_param *__param)
2330      throw ();
2331
2332
2333 extern int pthread_getschedparam (pthread_t __target_thread,
2334       int *__restrict __policy,
2335       struct sched_param *__restrict __param)
2336      throw ();
2337
2338
2339
2340 extern int pthread_getconcurrency (void) throw ();
2341
2342
2343 extern int pthread_setconcurrency (int __level) throw ();
2344
2345
2346
2347
2348
2349
2350 extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
2351           __const pthread_mutexattr_t *__restrict
2352           __mutex_attr) throw ();
2353
2354
2355 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw ();
2356
2357
2358 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw ();
2359
2360
2361 extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw ();
2362
2363
2364
2365 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
2366         __const struct timespec *__restrict
2367         __abstime) throw ();
2368
2369
2370
2371 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw ();
2372
2373
2374
2375
2376
2377
2378 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw ();
2379
2380
2381 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw ();
2382
2383
2384 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
2385       __restrict __attr,
2386       int *__restrict __pshared) throw ();
2387
2388
2389 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
2390       int __pshared) throw ();
2391
2392
2393
2394
2395
2396 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
2397      throw ();
2398
2399
2400 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
2401           __attr, int *__restrict __kind) throw ();
2402
2403
2404
2405
2406
2407
2408
2409 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
2410          __const pthread_condattr_t *__restrict
2411          __cond_attr) throw ();
2412
2413
2414 extern int pthread_cond_destroy (pthread_cond_t *__cond) throw ();
2415
2416
2417 extern int pthread_cond_signal (pthread_cond_t *__cond) throw ();
2418
2419
2420 extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw ();
2421
2422
2423
2424 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
2425          pthread_mutex_t *__restrict __mutex);
2426
2427
2428
2429
2430
2431 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
2432        pthread_mutex_t *__restrict __mutex,
2433        __const struct timespec *__restrict
2434        __abstime);
2435
2436
2437
2438
2439 extern int pthread_condattr_init (pthread_condattr_t *__attr) throw ();
2440
2441
2442 extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw ();
2443
2444
2445 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
2446      __restrict __attr,
2447      int *__restrict __pshared) throw ();
2448
2449
2450 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
2451      int __pshared) throw ();
2452
2453
2454
2455
2456
2457
2458
2459 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
2460     __const pthread_rwlockattr_t *__restrict
2461     __attr) throw ();
2462
2463
2464 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw ();
2465
2466
2467 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw ();
2468
2469
2470 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw ();
2471
2472
2473
2474 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
2475            __const struct timespec *__restrict
2476            __abstime) throw ();
2477
2478
2479
2480 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw ();
2481
2482
2483 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw ();
2484
2485
2486
2487 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
2488            __const struct timespec *__restrict
2489            __abstime) throw ();
2490
2491
2492
2493 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw ();
2494
2495
2496
2497
2498
2499 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw ();
2500
2501
2502 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw ();
2503
2504
2505 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
2506        __restrict __attr,
2507        int *__restrict __pshared) throw ();
2508
2509
2510 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
2511        int __pshared) throw ();
2512
2513
2514 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
2515        int *__pref) throw ();
2516
2517
2518 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
2519        int __pref) throw ();
2520 # 557 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2521 extern int pthread_key_create (pthread_key_t *__key,
2522           void (*__destr_function) (void *)) throw ();
2523
2524
2525 extern int pthread_key_delete (pthread_key_t __key) throw ();
2526
2527
2528 extern int pthread_setspecific (pthread_key_t __key,
2529     __const void *__pointer) throw ();
2530
2531
2532 extern void *pthread_getspecific (pthread_key_t __key) throw ();
2533 # 580 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2534 extern int pthread_once (pthread_once_t *__once_control,
2535     void (*__init_routine) (void));
2536
2537
2538
2539
2540
2541
2542 extern int pthread_setcancelstate (int __state, int *__oldstate);
2543
2544
2545
2546 extern int pthread_setcanceltype (int __type, int *__oldtype);
2547
2548
2549 extern int pthread_cancel (pthread_t __cancelthread);
2550
2551
2552
2553
2554 extern void pthread_testcancel (void);
2555 # 614 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2556 extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
2557        void (*__routine) (void *),
2558        void *__arg) throw ();
2559
2560
2561
2562
2563
2564
2565
2566 extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
2567       int __execute) throw ();
2568 # 635 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2569 extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
2570       void (*__routine) (void *),
2571       void *__arg) throw ();
2572 extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
2573        void (*__routine) (void *),
2574        void *__arg) throw ();
2575 # 649 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2576 extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
2577        int __execute) throw ();
2578 extern void __pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
2579         int __execute) throw ();
2580 # 668 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2581 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sigthread.h" 1 3 4
2582 # 31 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/sigthread.h" 3 4
2583 extern int pthread_sigmask (int __how,
2584        __const __sigset_t *__restrict __newmask,
2585        __sigset_t *__restrict __oldmask)throw ();
2586
2587
2588 extern int pthread_kill (pthread_t __threadid, int __signo) throw ();
2589 # 669 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 2 3 4
2590 # 684 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/pthread.h" 3 4
2591 extern int pthread_atfork (void (*__prepare) (void),
2592       void (*__parent) (void),
2593       void (*__child) (void)) throw ();
2594
2595
2596
2597
2598 extern void pthread_kill_other_threads_np (void) throw ();
2599
2600 }
2601 # 16 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_mutex.h" 2 3 4
2602 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_pthread.h" 1 3 4
2603 # 17 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_mutex.h" 2 3 4
2604 # 120 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 2 3 4
2605 # 170 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
2606 typedef struct {
2607  __off_t __pos;
2608
2609
2610
2611
2612
2613
2614 } __STDIO_fpos_t;
2615
2616
2617 typedef struct {
2618  __off64_t __pos;
2619
2620
2621
2622
2623
2624
2625 } __STDIO_fpos64_t;
2626
2627
2628
2629
2630 typedef __off64_t __offmax_t;
2631 # 233 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
2632 struct __STDIO_FILE_STRUCT {
2633  unsigned short __modeflags;
2634
2635
2636
2637
2638
2639
2640
2641  unsigned char __ungot[2];
2642
2643  int __filedes;
2644
2645  unsigned char *__bufstart;
2646  unsigned char *__bufend;
2647  unsigned char *__bufpos;
2648  unsigned char *__bufread;
2649
2650
2651  unsigned char *__bufgetc_u;
2652
2653
2654  unsigned char *__bufputc_u;
2655
2656
2657
2658
2659
2660  struct __STDIO_FILE_STRUCT *__nextopen;
2661 # 277 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
2662  int __user_locking;
2663  pthread_mutex_t __lock;
2664
2665
2666
2667
2668
2669 };
2670 # 384 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
2671 extern int __fgetc_unlocked(FILE *__stream);
2672 extern int __fputc_unlocked(int __c, FILE *__stream);
2673 # 404 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
2674 extern FILE *__stdin;
2675 # 463 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_stdio.h" 3 4
2676 extern FILE *__stdout;
2677 # 73 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 2 3 4
2678
2679
2680
2681 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stdarg.h" 1 3 4
2682 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stdarg.h" 3 4
2683 typedef __builtin_va_list __gnuc_va_list;
2684 # 77 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 2 3 4
2685
2686
2687
2688
2689 typedef __STDIO_fpos_t fpos_t;
2690
2691
2692
2693
2694
2695 typedef __STDIO_fpos64_t fpos64_t;
2696 # 131 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2697 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/stdio_lim.h" 1 3 4
2698 # 132 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 2 3 4
2699
2700
2701
2702 extern FILE *stdin;
2703 extern FILE *stdout;
2704 extern FILE *stderr;
2705
2706
2707
2708
2709
2710
2711
2712 extern int remove (__const char *__filename) throw ();
2713
2714 extern int rename (__const char *__old, __const char *__new) throw ();
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724 extern FILE *tmpfile (void);
2725 # 167 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2726 extern FILE *tmpfile64 (void);
2727
2728
2729
2730 extern char *tmpnam (char *__s) throw ();
2731
2732
2733
2734
2735
2736 extern char *tmpnam_r (char *__s) throw ();
2737 # 189 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2738 extern char *tempnam (__const char *__dir, __const char *__pfx)
2739      throw () __attribute__ ((__malloc__));
2740
2741
2742
2743
2744
2745
2746
2747
2748 extern int fclose (FILE *__stream);
2749
2750
2751
2752
2753 extern int fflush (FILE *__stream);
2754
2755 # 214 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2756 extern int fflush_unlocked (FILE *__stream);
2757 # 224 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2758 extern int fcloseall (void);
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768 extern FILE *fopen (__const char *__restrict __filename,
2769       __const char *__restrict __modes);
2770
2771
2772
2773
2774 extern FILE *freopen (__const char *__restrict __filename,
2775         __const char *__restrict __modes,
2776         FILE *__restrict __stream);
2777 # 255 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2778
2779
2780 extern FILE *fopen64 (__const char *__restrict __filename,
2781         __const char *__restrict __modes);
2782 extern FILE *freopen64 (__const char *__restrict __filename,
2783    __const char *__restrict __modes,
2784    FILE *__restrict __stream);
2785
2786
2787
2788
2789 extern FILE *fdopen (int __fd, __const char *__modes) throw ();
2790 # 289 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2791
2792
2793
2794 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
2795
2796
2797
2798 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
2799       int __modes, size_t __n) throw ();
2800
2801
2802
2803
2804
2805 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
2806          size_t __size) throw ();
2807
2808
2809 extern void setlinebuf (FILE *__stream) throw ();
2810
2811
2812
2813
2814
2815
2816
2817
2818 extern int fprintf (FILE *__restrict __stream,
2819       __const char *__restrict __format, ...);
2820
2821
2822
2823
2824 extern int printf (__const char *__restrict __format, ...);
2825
2826 extern int sprintf (char *__restrict __s,
2827       __const char *__restrict __format, ...) throw ();
2828
2829
2830
2831
2832
2833 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
2834        __gnuc_va_list __arg);
2835
2836
2837
2838
2839 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
2840
2841 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
2842        __gnuc_va_list __arg) throw ();
2843
2844
2845
2846
2847
2848 extern int snprintf (char *__restrict __s, size_t __maxlen,
2849        __const char *__restrict __format, ...)
2850      throw () __attribute__ ((__format__ (__printf__, 3, 4)));
2851
2852 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
2853         __const char *__restrict __format, __gnuc_va_list __arg)
2854      throw () __attribute__ ((__format__ (__printf__, 3, 0)));
2855
2856
2857
2858
2859
2860
2861 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
2862         __gnuc_va_list __arg)
2863      throw () __attribute__ ((__format__ (__printf__, 2, 0)));
2864
2865
2866
2867
2868
2869 extern int asprintf (char **__restrict __ptr,
2870        __const char *__restrict __fmt, ...)
2871      throw () __attribute__ ((__format__ (__printf__, 2, 3)));
2872
2873
2874
2875
2876
2877
2878
2879 extern int vdprintf (int __fd, __const char *__restrict __fmt,
2880        __gnuc_va_list __arg)
2881      __attribute__ ((__format__ (__printf__, 2, 0)));
2882 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
2883      __attribute__ ((__format__ (__printf__, 2, 3)));
2884
2885
2886
2887
2888
2889
2890
2891
2892 extern int fscanf (FILE *__restrict __stream,
2893      __const char *__restrict __format, ...);
2894
2895
2896
2897
2898 extern int scanf (__const char *__restrict __format, ...);
2899
2900 extern int sscanf (__const char *__restrict __s,
2901      __const char *__restrict __format, ...) throw ();
2902
2903
2904
2905
2906
2907
2908
2909
2910 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
2911       __gnuc_va_list __arg)
2912      __attribute__ ((__format__ (__scanf__, 2, 0)));
2913
2914
2915
2916
2917
2918 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
2919      __attribute__ ((__format__ (__scanf__, 1, 0)));
2920
2921
2922 extern int vsscanf (__const char *__restrict __s,
2923       __const char *__restrict __format, __gnuc_va_list __arg)
2924      throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934 extern int fgetc (FILE *__stream);
2935 extern int getc (FILE *__stream);
2936
2937
2938
2939
2940
2941 extern int getchar (void);
2942
2943 # 451 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2944 extern int getc_unlocked (FILE *__stream);
2945 extern int getchar_unlocked (void);
2946 # 465 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2947 extern int fgetc_unlocked (FILE *__stream);
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959 extern int fputc (int __c, FILE *__stream);
2960 extern int putc (int __c, FILE *__stream);
2961
2962
2963
2964
2965
2966 extern int putchar (int __c);
2967
2968 # 498 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2969 extern int fputc_unlocked (int __c, FILE *__stream);
2970
2971
2972
2973
2974
2975
2976
2977 extern int putc_unlocked (int __c, FILE *__stream);
2978 extern int putchar_unlocked (int __c);
2979 # 517 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
2980 extern int getw (FILE *__stream);
2981
2982
2983 extern int putw (int __w, FILE *__stream);
2984
2985
2986
2987
2988
2989
2990
2991
2992 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream);
2993
2994
2995
2996
2997
2998
2999 extern char *gets (char *__s);
3000
3001 # 546 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3002 extern char *fgets_unlocked (char *__restrict __s, int __n,
3003         FILE *__restrict __stream);
3004 # 567 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3005 extern __ssize_t getdelim (char **__restrict __lineptr,
3006         size_t *__restrict __n, int __delimiter,
3007         FILE *__restrict __stream);
3008
3009
3010
3011
3012
3013
3014
3015 extern __ssize_t getline (char **__restrict __lineptr,
3016        size_t *__restrict __n,
3017        FILE *__restrict __stream);
3018
3019
3020
3021
3022
3023
3024
3025
3026 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
3027
3028
3029
3030
3031
3032 extern int puts (__const char *__s);
3033
3034
3035
3036
3037
3038
3039 extern int ungetc (int __c, FILE *__stream);
3040
3041
3042
3043
3044
3045
3046 extern size_t fread (void *__restrict __ptr, size_t __size,
3047        size_t __n, FILE *__restrict __stream);
3048
3049
3050
3051
3052 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
3053         size_t __n, FILE *__restrict __s);
3054
3055 # 625 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3056 extern int fputs_unlocked (__const char *__restrict __s,
3057       FILE *__restrict __stream);
3058 # 636 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3059 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
3060          size_t __n, FILE *__restrict __stream);
3061 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
3062           size_t __n, FILE *__restrict __stream);
3063
3064
3065
3066
3067
3068
3069
3070
3071 extern int fseek (FILE *__stream, long int __off, int __whence);
3072
3073
3074
3075
3076 extern long int ftell (FILE *__stream);
3077
3078
3079
3080
3081 extern void rewind (FILE *__stream);
3082
3083 # 672 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3084 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
3085
3086
3087
3088
3089 extern __off_t ftello (FILE *__stream);
3090 # 691 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3091
3092
3093
3094
3095
3096
3097 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
3098
3099
3100
3101
3102 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
3103 # 714 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3104
3105
3106
3107 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
3108 extern __off64_t ftello64 (FILE *__stream);
3109 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
3110 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
3111
3112
3113
3114
3115 extern void clearerr (FILE *__stream) throw ();
3116
3117 extern int feof (FILE *__stream) throw ();
3118
3119 extern int ferror (FILE *__stream) throw ();
3120
3121
3122
3123
3124 extern void clearerr_unlocked (FILE *__stream) throw ();
3125 extern int feof_unlocked (FILE *__stream) throw ();
3126 extern int ferror_unlocked (FILE *__stream) throw ();
3127
3128
3129
3130
3131
3132
3133
3134
3135 extern void perror (__const char *__s);
3136
3137 # 760 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3138 extern int fileno (FILE *__stream) throw ();
3139
3140
3141
3142
3143 extern int fileno_unlocked (FILE *__stream) throw ();
3144 # 775 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3145 extern FILE *popen (__const char *__command, __const char *__modes);
3146
3147
3148
3149
3150
3151 extern int pclose (FILE *__stream);
3152
3153
3154
3155
3156
3157 extern char *ctermid (char *__s) throw ();
3158
3159
3160
3161
3162
3163 extern char *cuserid (char *__s);
3164 # 815 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3165 extern void flockfile (FILE *__stream) throw ();
3166
3167
3168
3169 extern int ftrylockfile (FILE *__stream) throw ();
3170
3171
3172 extern void funlockfile (FILE *__stream) throw ();
3173 # 869 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdio.h" 3 4
3174 }
3175 # 54 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 2 3
3176 # 98 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 3
3177 namespace std
3178 {
3179   using ::FILE;
3180   using ::fpos_t;
3181
3182   using ::clearerr;
3183   using ::fclose;
3184   using ::feof;
3185   using ::ferror;
3186   using ::fflush;
3187   using ::fgetc;
3188   using ::fgetpos;
3189   using ::fgets;
3190   using ::fopen;
3191   using ::fprintf;
3192   using ::fputc;
3193   using ::fputs;
3194   using ::fread;
3195   using ::freopen;
3196   using ::fscanf;
3197   using ::fseek;
3198   using ::fsetpos;
3199   using ::ftell;
3200   using ::fwrite;
3201   using ::getc;
3202   using ::getchar;
3203   using ::gets;
3204   using ::perror;
3205   using ::printf;
3206   using ::putc;
3207   using ::putchar;
3208   using ::puts;
3209   using ::remove;
3210   using ::rename;
3211   using ::rewind;
3212   using ::scanf;
3213   using ::setbuf;
3214   using ::setvbuf;
3215   using ::sprintf;
3216   using ::sscanf;
3217   using ::tmpfile;
3218   using ::tmpnam;
3219   using ::ungetc;
3220   using ::vfprintf;
3221   using ::vprintf;
3222   using ::vsprintf;
3223 }
3224 # 154 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 3
3225 namespace __gnu_cxx
3226 {
3227 # 169 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cstdio" 3
3228   using ::snprintf;
3229   using ::vfscanf;
3230   using ::vscanf;
3231   using ::vsnprintf;
3232   using ::vsscanf;
3233
3234 }
3235
3236 namespace std
3237 {
3238   using __gnu_cxx::snprintf;
3239   using __gnu_cxx::vfscanf;
3240   using __gnu_cxx::vscanf;
3241   using __gnu_cxx::vsnprintf;
3242   using __gnu_cxx::vsscanf;
3243 }
3244 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++locale.h" 2 3
3245
3246
3247
3248 namespace std
3249 {
3250   typedef int* __c_locale;
3251
3252
3253
3254
3255
3256   template<typename _Tv>
3257     int
3258     __convert_from_v(char* __out,
3259        const int __size __attribute__((__unused__)),
3260        const char* __fmt,
3261        _Tv __v, const __c_locale&, int __prec)
3262     {
3263       char* __old = std::setlocale(1, __null);
3264       char* __sav = __null;
3265       if (std::strcmp(__old, "C"))
3266  {
3267    __sav = new char[std::strlen(__old) + 1];
3268    std::strcpy(__sav, __old);
3269    std::setlocale(1, "C");
3270  }
3271
3272
3273
3274
3275       const int __ret = std::sprintf(__out, __fmt, __prec, __v);
3276
3277
3278       if (__sav)
3279  {
3280    std::setlocale(1, __sav);
3281    delete [] __sav;
3282  }
3283       return __ret;
3284     }
3285 }
3286 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 2 3
3287 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++io.h" 1 3
3288 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++io.h" 3
3289 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr.h" 1 3
3290 # 33 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr.h" 3
3291 #pragma GCC visibility push(default)
3292 # 114 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr.h" 3
3293 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 1 3
3294 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 3
3295 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 1 3 4
3296 # 28 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3297 extern "C" {
3298 # 171 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3299 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/posix_opt.h" 1 3 4
3300 # 172 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 2 3 4
3301
3302
3303
3304 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/environments.h" 1 3 4
3305 # 23 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/environments.h" 3 4
3306 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/wordsize.h" 1 3 4
3307 # 24 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/environments.h" 2 3 4
3308 # 176 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 2 3 4
3309 # 195 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3310 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/stddef.h" 1 3 4
3311 # 196 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 2 3 4
3312 # 236 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3313 typedef __intptr_t intptr_t;
3314
3315
3316
3317
3318
3319
3320 typedef __socklen_t socklen_t;
3321 # 256 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3322 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
3323 # 299 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3324 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
3325 # 310 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3326 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
3327      throw ();
3328
3329
3330
3331
3332
3333
3334 extern int close (int __fd);
3335
3336
3337
3338
3339
3340
3341 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
3342
3343
3344
3345
3346
3347 extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
3348 # 341 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3349 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
3350         __off_t __offset) ;
3351
3352
3353
3354
3355
3356
3357 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
3358          __off_t __offset) ;
3359 # 369 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3360 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
3361    __off64_t __offset) ;
3362
3363
3364 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
3365     __off64_t __offset) ;
3366
3367
3368
3369
3370
3371
3372
3373 extern int pipe (int __pipedes[2]) throw () ;
3374 # 391 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3375 extern unsigned int alarm (unsigned int __seconds) throw ();
3376 # 403 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3377 extern unsigned int sleep (unsigned int __seconds);
3378
3379
3380
3381
3382
3383
3384 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
3385      throw ();
3386
3387
3388
3389
3390
3391
3392 extern int usleep (__useconds_t __useconds);
3393 # 427 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3394 extern int pause (void);
3395
3396
3397
3398 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
3399      throw () __attribute__ ((__nonnull__ (1))) ;
3400
3401
3402
3403 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
3404
3405
3406
3407
3408 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
3409      throw () __attribute__ ((__nonnull__ (1))) ;
3410 # 455 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3411 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
3412
3413
3414
3415 extern int fchdir (int __fd) throw () ;
3416 # 469 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3417 extern char *getcwd (char *__buf, size_t __size) throw () ;
3418
3419
3420
3421
3422
3423 extern char *get_current_dir_name (void) throw ();
3424 # 488 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3425 extern int dup (int __fd) throw () ;
3426
3427
3428 extern int dup2 (int __fd, int __fd2) throw ();
3429
3430
3431 extern char **__environ;
3432
3433 extern char **environ;
3434
3435
3436
3437
3438
3439 extern int execve (__const char *__path, char *__const __argv[],
3440      char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
3441 # 514 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
3442 extern int execv (__const char *__path, char *__const __argv[])
3443      throw () __attribute__ ((__nonnull__ (1)));
3444
3445
3446
3447 extern int execle (__const char *__path, __const char *__arg, ...)
3448      throw () __attribute__ ((__nonnull__ (1)));
3449
3450
3451
3452 extern int execl (__const char *__path, __const char *__arg, ...)
3453      throw () __attribute__ ((__nonnull__ (1)));
3454
3455
3456
3457 extern int execvp (__const char *__file, char *__const __argv[])
3458      throw () __attribute__ ((__nonnull__ (1)));
3459
3460
3461
3462
3463 extern int execlp (__const char *__file, __const char *__arg, ...)
3464      throw () __attribute__ ((__nonnull__ (1)));
3465
3466
3467
3468
3469 extern int nice (int __inc) throw () ;
3470
3471
3472
3473
3474 extern void _exit (int __status) __attribute__ ((__noreturn__));
3475
3476
3477
3478
3479
3480 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/confname.h" 1 3 4
3481 # 26 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/confname.h" 3 4
3482 enum
3483   {
3484     _PC_LINK_MAX,
3485
3486     _PC_MAX_CANON,
3487
3488     _PC_MAX_INPUT,
3489
3490     _PC_NAME_MAX,
3491
3492     _PC_PATH_MAX,
3493
3494     _PC_PIPE_BUF,
3495
3496     _PC_CHOWN_RESTRICTED,
3497
3498     _PC_NO_TRUNC,
3499
3500     _PC_VDISABLE,
3501
3502     _PC_SYNC_IO,
3503
3504     _PC_ASYNC_IO,
3505
3506     _PC_PRIO_IO,
3507
3508     _PC_SOCK_MAXBUF,
3509
3510     _PC_FILESIZEBITS,
3511
3512     _PC_REC_INCR_XFER_SIZE,
3513
3514     _PC_REC_MAX_XFER_SIZE,
3515
3516     _PC_REC_MIN_XFER_SIZE,
3517
3518     _PC_REC_XFER_ALIGN,
3519
3520     _PC_ALLOC_SIZE_MIN,
3521
3522     _PC_SYMLINK_MAX,
3523
3524     _PC_2_SYMLINKS
3525
3526   };
3527
3528
3529 enum
3530   {
3531     _SC_ARG_MAX,
3532
3533     _SC_CHILD_MAX,
3534
3535     _SC_CLK_TCK,
3536
3537     _SC_NGROUPS_MAX,
3538
3539     _SC_OPEN_MAX,
3540
3541     _SC_STREAM_MAX,
3542
3543     _SC_TZNAME_MAX,
3544
3545     _SC_JOB_CONTROL,
3546
3547     _SC_SAVED_IDS,
3548
3549     _SC_REALTIME_SIGNALS,
3550
3551     _SC_PRIORITY_SCHEDULING,
3552
3553     _SC_TIMERS,
3554
3555     _SC_ASYNCHRONOUS_IO,
3556
3557     _SC_PRIORITIZED_IO,
3558
3559     _SC_SYNCHRONIZED_IO,
3560
3561     _SC_FSYNC,
3562
3563     _SC_MAPPED_FILES,
3564
3565     _SC_MEMLOCK,
3566
3567     _SC_MEMLOCK_RANGE,
3568
3569     _SC_MEMORY_PROTECTION,
3570
3571     _SC_MESSAGE_PASSING,
3572
3573     _SC_SEMAPHORES,
3574
3575     _SC_SHARED_MEMORY_OBJECTS,
3576
3577     _SC_AIO_LISTIO_MAX,
3578
3579     _SC_AIO_MAX,
3580
3581     _SC_AIO_PRIO_DELTA_MAX,
3582
3583     _SC_DELAYTIMER_MAX,
3584
3585     _SC_MQ_OPEN_MAX,
3586
3587     _SC_MQ_PRIO_MAX,
3588
3589     _SC_VERSION,
3590
3591     _SC_PAGESIZE,
3592
3593
3594     _SC_RTSIG_MAX,
3595
3596     _SC_SEM_NSEMS_MAX,
3597
3598     _SC_SEM_VALUE_MAX,
3599
3600     _SC_SIGQUEUE_MAX,
3601
3602     _SC_TIMER_MAX,
3603
3604
3605
3606
3607     _SC_BC_BASE_MAX,
3608
3609     _SC_BC_DIM_MAX,
3610
3611     _SC_BC_SCALE_MAX,
3612
3613     _SC_BC_STRING_MAX,
3614
3615     _SC_COLL_WEIGHTS_MAX,
3616
3617     _SC_EQUIV_CLASS_MAX,
3618
3619     _SC_EXPR_NEST_MAX,
3620
3621     _SC_LINE_MAX,
3622
3623     _SC_RE_DUP_MAX,
3624
3625     _SC_CHARCLASS_NAME_MAX,
3626
3627
3628     _SC_2_VERSION,
3629
3630     _SC_2_C_BIND,
3631
3632     _SC_2_C_DEV,
3633
3634     _SC_2_FORT_DEV,
3635
3636     _SC_2_FORT_RUN,
3637
3638     _SC_2_SW_DEV,
3639
3640     _SC_2_LOCALEDEF,
3641
3642
3643     _SC_PII,
3644
3645     _SC_PII_XTI,
3646
3647     _SC_PII_SOCKET,
3648
3649     _SC_PII_INTERNET,
3650
3651     _SC_PII_OSI,
3652
3653     _SC_POLL,
3654
3655     _SC_SELECT,
3656
3657     _SC_UIO_MAXIOV,
3658
3659     _SC_IOV_MAX = _SC_UIO_MAXIOV,
3660
3661     _SC_PII_INTERNET_STREAM,
3662
3663     _SC_PII_INTERNET_DGRAM,
3664
3665     _SC_PII_OSI_COTS,
3666
3667     _SC_PII_OSI_CLTS,
3668
3669     _SC_PII_OSI_M,
3670
3671     _SC_T_IOV_MAX,
3672
3673
3674
3675     _SC_THREADS,
3676
3677     _SC_THREAD_SAFE_FUNCTIONS,
3678
3679     _SC_GETGR_R_SIZE_MAX,
3680
3681     _SC_GETPW_R_SIZE_MAX,
3682
3683     _SC_LOGIN_NAME_MAX,
3684
3685     _SC_TTY_NAME_MAX,
3686
3687     _SC_THREAD_DESTRUCTOR_ITERATIONS,
3688
3689     _SC_THREAD_KEYS_MAX,
3690
3691     _SC_THREAD_STACK_MIN,
3692
3693     _SC_THREAD_THREADS_MAX,
3694
3695     _SC_THREAD_ATTR_STACKADDR,
3696
3697     _SC_THREAD_ATTR_STACKSIZE,
3698
3699     _SC_THREAD_PRIORITY_SCHEDULING,
3700
3701     _SC_THREAD_PRIO_INHERIT,
3702
3703     _SC_THREAD_PRIO_PROTECT,
3704
3705     _SC_THREAD_PROCESS_SHARED,
3706
3707
3708     _SC_NPROCESSORS_CONF,
3709
3710     _SC_NPROCESSORS_ONLN,
3711
3712     _SC_PHYS_PAGES,
3713
3714     _SC_AVPHYS_PAGES,
3715
3716     _SC_ATEXIT_MAX,
3717
3718     _SC_PASS_MAX,
3719
3720
3721     _SC_XOPEN_VERSION,
3722
3723     _SC_XOPEN_XCU_VERSION,
3724
3725     _SC_XOPEN_UNIX,
3726
3727     _SC_XOPEN_CRYPT,
3728
3729     _SC_XOPEN_ENH_I18N,
3730
3731     _SC_XOPEN_SHM,
3732
3733
3734     _SC_2_CHAR_TERM,
3735
3736     _SC_2_C_VERSION,
3737
3738     _SC_2_UPE,
3739
3740
3741     _SC_XOPEN_XPG2,
3742
3743     _SC_XOPEN_XPG3,
3744
3745     _SC_XOPEN_XPG4,
3746
3747
3748     _SC_CHAR_BIT,
3749
3750     _SC_CHAR_MAX,
3751
3752     _SC_CHAR_MIN,
3753
3754     _SC_INT_MAX,
3755
3756     _SC_INT_MIN,
3757
3758     _SC_LONG_BIT,
3759
3760     _SC_WORD_BIT,
3761
3762     _SC_MB_LEN_MAX,
3763
3764     _SC_NZERO,
3765
3766     _SC_SSIZE_MAX,
3767
3768     _SC_SCHAR_MAX,
3769
3770     _SC_SCHAR_MIN,
3771
3772     _SC_SHRT_MAX,
3773
3774     _SC_SHRT_MIN,
3775
3776     _SC_UCHAR_MAX,
3777
3778     _SC_UINT_MAX,
3779
3780     _SC_ULONG_MAX,
3781
3782     _SC_USHRT_MAX,
3783
3784
3785     _SC_NL_ARGMAX,
3786
3787     _SC_NL_LANGMAX,
3788
3789     _SC_NL_MSGMAX,
3790
3791     _SC_NL_NMAX,
3792
3793     _SC_NL_SETMAX,
3794
3795     _SC_NL_TEXTMAX,
3796
3797
3798     _SC_XBS5_ILP32_OFF32,
3799
3800     _SC_XBS5_ILP32_OFFBIG,
3801
3802     _SC_XBS5_LP64_OFF64,
3803
3804     _SC_XBS5_LPBIG_OFFBIG,
3805
3806
3807     _SC_XOPEN_LEGACY,
3808
3809     _SC_XOPEN_REALTIME,
3810
3811     _SC_XOPEN_REALTIME_THREADS,
3812
3813
3814     _SC_ADVISORY_INFO,
3815
3816     _SC_BARRIERS,
3817
3818     _SC_BASE,
3819
3820     _SC_C_LANG_SUPPORT,
3821
3822     _SC_C_LANG_SUPPORT_R,
3823
3824     _SC_CLOCK_SELECTION,
3825
3826     _SC_CPUTIME,
3827
3828     _SC_THREAD_CPUTIME,
3829
3830     _SC_DEVICE_IO,
3831
3832     _SC_DEVICE_SPECIFIC,
3833
3834     _SC_DEVICE_SPECIFIC_R,
3835
3836     _SC_FD_MGMT,
3837
3838     _SC_FIFO,
3839
3840     _SC_PIPE,
3841
3842     _SC_FILE_ATTRIBUTES,
3843
3844     _SC_FILE_LOCKING,
3845
3846     _SC_FILE_SYSTEM,
3847
3848     _SC_MONOTONIC_CLOCK,
3849
3850     _SC_MULTI_PROCESS,
3851
3852     _SC_SINGLE_PROCESS,
3853
3854     _SC_NETWORKING,
3855
3856     _SC_READER_WRITER_LOCKS,
3857
3858     _SC_SPIN_LOCKS,
3859
3860     _SC_REGEXP,
3861
3862     _SC_REGEX_VERSION,
3863
3864     _SC_SHELL,
3865
3866     _SC_SIGNALS,
3867
3868     _SC_SPAWN,
3869
3870     _SC_SPORADIC_SERVER,
3871
3872     _SC_THREAD_SPORADIC_SERVER,
3873
3874     _SC_SYSTEM_DATABASE,
3875
3876     _SC_SYSTEM_DATABASE_R,
3877
3878     _SC_TIMEOUTS,
3879
3880     _SC_TYPED_MEMORY_OBJECTS,
3881
3882     _SC_USER_GROUPS,
3883
3884     _SC_USER_GROUPS_R,
3885
3886     _SC_2_PBS,
3887
3888     _SC_2_PBS_ACCOUNTING,
3889
3890     _SC_2_PBS_LOCATE,
3891
3892     _SC_2_PBS_MESSAGE,
3893
3894     _SC_2_PBS_TRACK,
3895
3896     _SC_SYMLOOP_MAX,
3897
3898     _SC_STREAMS,
3899
3900     _SC_2_PBS_CHECKPOINT,
3901
3902
3903     _SC_V6_ILP32_OFF32,
3904
3905     _SC_V6_ILP32_OFFBIG,
3906
3907     _SC_V6_LP64_OFF64,
3908
3909     _SC_V6_LPBIG_OFFBIG,
3910
3911
3912     _SC_HOST_NAME_MAX,
3913
3914     _SC_TRACE,
3915
3916     _SC_TRACE_EVENT_FILTER,
3917
3918     _SC_TRACE_INHERIT,
3919
3920     _SC_TRACE_LOG,
3921
3922
3923     _SC_LEVEL1_ICACHE_SIZE,
3924
3925     _SC_LEVEL1_ICACHE_ASSOC,
3926
3927     _SC_LEVEL1_ICACHE_LINESIZE,
3928
3929     _SC_LEVEL1_DCACHE_SIZE,
3930
3931     _SC_LEVEL1_DCACHE_ASSOC,
3932
3933     _SC_LEVEL1_DCACHE_LINESIZE,
3934
3935     _SC_LEVEL2_CACHE_SIZE,
3936
3937     _SC_LEVEL2_CACHE_ASSOC,
3938
3939     _SC_LEVEL2_CACHE_LINESIZE,
3940
3941     _SC_LEVEL3_CACHE_SIZE,
3942
3943     _SC_LEVEL3_CACHE_ASSOC,
3944
3945     _SC_LEVEL3_CACHE_LINESIZE,
3946
3947     _SC_LEVEL4_CACHE_SIZE,
3948
3949     _SC_LEVEL4_CACHE_ASSOC,
3950
3951     _SC_LEVEL4_CACHE_LINESIZE,
3952
3953
3954
3955     _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
3956
3957     _SC_RAW_SOCKETS
3958
3959   };
3960
3961
3962
3963
3964
3965 enum
3966   {
3967     _CS_PATH,
3968
3969
3970     _CS_V6_WIDTH_RESTRICTED_ENVS,
3971
3972
3973
3974
3975     _CS_LFS_CFLAGS = 1000,
3976
3977     _CS_LFS_LDFLAGS,
3978
3979     _CS_LFS_LIBS,
3980
3981     _CS_LFS_LINTFLAGS,
3982
3983     _CS_LFS64_CFLAGS,
3984
3985     _CS_LFS64_LDFLAGS,
3986
3987     _CS_LFS64_LIBS,
3988
3989     _CS_LFS64_LINTFLAGS,
3990
3991
3992
3993
3994     _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
3995
3996     _CS_XBS5_ILP32_OFF32_LDFLAGS,
3997
3998     _CS_XBS5_ILP32_OFF32_LIBS,
3999
4000     _CS_XBS5_ILP32_OFF32_LINTFLAGS,
4001
4002     _CS_XBS5_ILP32_OFFBIG_CFLAGS,
4003
4004     _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
4005
4006     _CS_XBS5_ILP32_OFFBIG_LIBS,
4007
4008     _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
4009
4010     _CS_XBS5_LP64_OFF64_CFLAGS,
4011
4012     _CS_XBS5_LP64_OFF64_LDFLAGS,
4013
4014     _CS_XBS5_LP64_OFF64_LIBS,
4015
4016     _CS_XBS5_LP64_OFF64_LINTFLAGS,
4017
4018     _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
4019
4020     _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
4021
4022     _CS_XBS5_LPBIG_OFFBIG_LIBS,
4023
4024     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
4025
4026
4027
4028     _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
4029
4030     _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
4031
4032     _CS_POSIX_V6_ILP32_OFF32_LIBS,
4033
4034     _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
4035
4036     _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
4037
4038     _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
4039
4040     _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
4041
4042     _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
4043
4044     _CS_POSIX_V6_LP64_OFF64_CFLAGS,
4045
4046     _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
4047
4048     _CS_POSIX_V6_LP64_OFF64_LIBS,
4049
4050     _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
4051
4052     _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
4053
4054     _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
4055
4056     _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
4057
4058     _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
4059
4060
4061   };
4062 # 553 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 2 3 4
4063
4064
4065 extern long int pathconf (__const char *__path, int __name)
4066      throw () __attribute__ ((__nonnull__ (1)));
4067
4068
4069 extern long int fpathconf (int __fd, int __name) throw ();
4070
4071
4072 extern long int sysconf (int __name) throw ();
4073
4074
4075
4076 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
4077
4078
4079
4080
4081 extern __pid_t getpid (void) throw ();
4082
4083
4084 extern __pid_t getppid (void) throw ();
4085
4086
4087
4088
4089 extern __pid_t getpgrp (void) throw ();
4090 # 589 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4091 extern __pid_t __getpgid (__pid_t __pid) throw ();
4092
4093 extern __pid_t getpgid (__pid_t __pid) throw ();
4094
4095
4096
4097
4098
4099
4100 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
4101 # 615 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4102 extern int setpgrp (void) throw ();
4103 # 632 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4104 extern __pid_t setsid (void) throw ();
4105
4106
4107
4108 extern __pid_t getsid (__pid_t __pid) throw ();
4109
4110
4111
4112 extern __uid_t getuid (void) throw ();
4113
4114
4115 extern __uid_t geteuid (void) throw ();
4116
4117
4118 extern __gid_t getgid (void) throw ();
4119
4120
4121 extern __gid_t getegid (void) throw ();
4122
4123
4124
4125
4126 extern int getgroups (int __size, __gid_t __list[]) throw () ;
4127 # 665 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4128 extern int setuid (__uid_t __uid) throw ();
4129
4130
4131
4132
4133 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
4134
4135
4136
4137
4138 extern int seteuid (__uid_t __uid) throw ();
4139
4140
4141
4142
4143
4144
4145 extern int setgid (__gid_t __gid) throw ();
4146
4147
4148
4149
4150 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
4151
4152
4153
4154
4155 extern int setegid (__gid_t __gid) throw ();
4156
4157
4158
4159
4160
4161 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
4162      throw ();
4163
4164
4165
4166 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
4167      throw ();
4168
4169
4170
4171 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
4172      throw ();
4173
4174
4175
4176 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
4177      throw ();
4178
4179
4180
4181
4182
4183
4184
4185 extern __pid_t fork (void) throw ();
4186
4187
4188
4189
4190
4191
4192
4193 extern __pid_t vfork (void) throw ();
4194
4195
4196
4197
4198
4199 extern char *ttyname (int __fd) throw ();
4200
4201
4202
4203 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
4204      throw () __attribute__ ((__nonnull__ (2))) ;
4205
4206
4207
4208 extern int isatty (int __fd) throw ();
4209 # 756 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4210 extern int link (__const char *__from, __const char *__to)
4211      throw () __attribute__ ((__nonnull__ (1, 2))) ;
4212 # 769 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4213 extern int symlink (__const char *__from, __const char *__to)
4214      throw () __attribute__ ((__nonnull__ (1, 2))) ;
4215
4216
4217
4218
4219 extern ssize_t readlink (__const char *__restrict __path,
4220     char *__restrict __buf, size_t __len)
4221      throw () __attribute__ ((__nonnull__ (1, 2))) ;
4222 # 792 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4223 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
4224 # 801 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4225 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
4226
4227
4228
4229 extern __pid_t tcgetpgrp (int __fd) throw ();
4230
4231
4232 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
4233
4234
4235
4236
4237
4238
4239 extern char *getlogin (void);
4240
4241
4242
4243
4244
4245
4246
4247 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
4248 # 838 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4249 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/getopt.h" 1 3 4
4250 # 52 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/getopt.h" 3 4
4251 extern "C" {
4252 # 61 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/getopt.h" 3 4
4253 extern char *optarg;
4254 # 75 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/getopt.h" 3 4
4255 extern int optind;
4256
4257
4258
4259
4260 extern int opterr;
4261
4262
4263
4264 extern int optopt;
4265 # 154 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/getopt.h" 3 4
4266 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
4267        throw ();
4268 # 175 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/getopt.h" 3 4
4269 }
4270 # 839 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 2 3 4
4271
4272
4273
4274
4275
4276
4277
4278 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
4279
4280
4281
4282
4283
4284
4285 extern int sethostname (__const char *__name, size_t __len)
4286      throw () __attribute__ ((__nonnull__ (1))) ;
4287
4288
4289
4290 extern int sethostid (long int __id) throw () ;
4291
4292
4293
4294
4295
4296 extern int getdomainname (char *__name, size_t __len)
4297      throw () __attribute__ ((__nonnull__ (1))) ;
4298 extern int setdomainname (__const char *__name, size_t __len)
4299      throw () __attribute__ ((__nonnull__ (1))) ;
4300
4301
4302
4303
4304
4305 extern int vhangup (void) throw ();
4306 # 894 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4307 extern int acct (__const char *__name) throw ();
4308
4309
4310
4311 extern char *getusershell (void) throw ();
4312 extern void endusershell (void) throw ();
4313 extern void setusershell (void) throw ();
4314 # 915 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4315 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
4316
4317
4318
4319 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
4320 # 928 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4321 extern int fsync (int __fd);
4322
4323
4324
4325
4326
4327
4328 extern long int gethostid (void);
4329
4330
4331 extern void sync (void) throw ();
4332
4333
4334
4335
4336 extern int getpagesize (void) throw () __attribute__ ((__const__));
4337
4338
4339
4340
4341 extern int getdtablesize (void) throw ();
4342
4343
4344
4345
4346 extern int truncate (__const char *__file, __off_t __length)
4347      throw () __attribute__ ((__nonnull__ (1))) ;
4348 # 965 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4349 extern int truncate64 (__const char *__file, __off64_t __length)
4350      throw () __attribute__ ((__nonnull__ (1))) ;
4351 # 975 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4352 extern int ftruncate (int __fd, __off_t __length) throw () ;
4353 # 985 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4354 extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
4355 # 995 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4356 extern int brk (void *__addr) throw () ;
4357
4358
4359
4360
4361
4362 extern void *sbrk (intptr_t __delta) throw ();
4363 # 1016 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4364 extern long int syscall (long int __sysno, ...) throw ();
4365 # 1039 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4366 extern int lockf (int __fd, int __cmd, __off_t __len) ;
4367 # 1049 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4368 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
4369 # 1070 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4370 extern int fdatasync (int __fildes) throw ();
4371
4372
4373
4374
4375
4376
4377
4378 extern char *crypt (__const char *__key, __const char *__salt)
4379      throw () __attribute__ ((__nonnull__ (1, 2)));
4380
4381
4382
4383 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
4384
4385
4386
4387
4388
4389
4390 extern void swab (__const void *__restrict __from, void *__restrict __to,
4391     ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
4392
4393
4394
4395
4396
4397
4398
4399 extern char *ctermid (char *__s) throw ();
4400 # 1108 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/unistd.h" 3 4
4401 }
4402 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 2 3
4403
4404 typedef pthread_key_t __gthread_key_t;
4405 typedef pthread_once_t __gthread_once_t;
4406 typedef pthread_mutex_t __gthread_mutex_t;
4407 typedef pthread_mutex_t __gthread_recursive_mutex_t;
4408 # 88 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 3
4409 extern __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
4410 extern __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
4411 extern __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
4412 extern __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
4413 extern __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
4414 extern __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
4415 extern __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
4416 extern __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
4417 extern __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
4418
4419
4420 extern __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
4421 extern __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
4422 extern __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
4423 extern __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
4424 extern __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
4425 # 145 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 3
4426 static inline int
4427 __gthread_active_p (void)
4428 {
4429   static void *const __gthread_active_ptr
4430     = __extension__ (void *) &__gthrw_pthread_cancel;
4431   return __gthread_active_ptr != 0;
4432 }
4433 # 512 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 3
4434 static inline int
4435 __gthread_once (__gthread_once_t *once, void (*func) (void))
4436 {
4437   if (__gthread_active_p ())
4438     return __gthrw_pthread_once (once, func);
4439   else
4440     return -1;
4441 }
4442
4443 static inline int
4444 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
4445 {
4446   return __gthrw_pthread_key_create (key, dtor);
4447 }
4448
4449 static inline int
4450 __gthread_key_delete (__gthread_key_t key)
4451 {
4452   return __gthrw_pthread_key_delete (key);
4453 }
4454
4455 static inline void *
4456 __gthread_getspecific (__gthread_key_t key)
4457 {
4458   return __gthrw_pthread_getspecific (key);
4459 }
4460
4461 static inline int
4462 __gthread_setspecific (__gthread_key_t key, const void *ptr)
4463 {
4464   return __gthrw_pthread_setspecific (key, ptr);
4465 }
4466
4467 static inline int
4468 __gthread_mutex_lock (__gthread_mutex_t *mutex)
4469 {
4470   if (__gthread_active_p ())
4471     return __gthrw_pthread_mutex_lock (mutex);
4472   else
4473     return 0;
4474 }
4475
4476 static inline int
4477 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
4478 {
4479   if (__gthread_active_p ())
4480     return __gthrw_pthread_mutex_trylock (mutex);
4481   else
4482     return 0;
4483 }
4484
4485 static inline int
4486 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
4487 {
4488   if (__gthread_active_p ())
4489     return __gthrw_pthread_mutex_unlock (mutex);
4490   else
4491     return 0;
4492 }
4493 # 594 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr-default.h" 3
4494 static inline int
4495 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
4496 {
4497   return __gthread_mutex_lock (mutex);
4498 }
4499
4500 static inline int
4501 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
4502 {
4503   return __gthread_mutex_trylock (mutex);
4504 }
4505
4506 static inline int
4507 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
4508 {
4509   return __gthread_mutex_unlock (mutex);
4510 }
4511 # 115 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/gthr.h" 2 3
4512
4513
4514
4515
4516
4517
4518
4519 #pragma GCC visibility pop
4520 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++io.h" 2 3
4521
4522 namespace std
4523 {
4524   typedef __gthread_mutex_t __c_lock;
4525
4526
4527   typedef FILE __c_file;
4528 }
4529 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 2 3
4530 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cctype" 1 3
4531 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cctype" 3
4532        
4533 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cctype" 3
4534
4535
4536 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 1 3 4
4537 # 32 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 3 4
4538 extern "C" {
4539 # 41 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 3 4
4540 enum
4541 {
4542   _ISupper = (1 << (0)),
4543   _ISlower = (1 << (1)),
4544   _ISalpha = (1 << (2)),
4545   _ISdigit = (1 << (3)),
4546   _ISxdigit = (1 << (4)),
4547   _ISspace = (1 << (5)),
4548   _ISprint = (1 << (6)),
4549   _ISgraph = (1 << (7)),
4550   _ISblank = (1 << (8)),
4551   _IScntrl = (1 << (9)),
4552   _ISpunct = (1 << (10)),
4553   _ISalnum = (1 << (11))
4554 };
4555
4556
4557
4558
4559 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_touplow.h" 1 3 4
4560 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/uClibc_touplow.h" 3 4
4561 typedef __uint16_t __ctype_mask_t;
4562
4563
4564
4565 typedef __int16_t __ctype_touplow_t;
4566 # 61 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 2 3 4
4567 # 103 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 3 4
4568 extern const __ctype_mask_t *__C_ctype_b;
4569 extern const __ctype_touplow_t *__C_ctype_toupper;
4570 extern const __ctype_touplow_t *__C_ctype_tolower;
4571 # 123 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 3 4
4572 extern const __ctype_mask_t *__ctype_b;
4573 extern const __ctype_touplow_t *__ctype_toupper;
4574 extern const __ctype_touplow_t *__ctype_tolower;
4575 # 148 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 3 4
4576
4577
4578
4579
4580
4581
4582 extern int isalnum (int) throw ();
4583 extern int isalpha (int) throw ();
4584 extern int iscntrl (int) throw ();
4585 extern int isdigit (int) throw ();
4586 extern int islower (int) throw ();
4587 extern int isgraph (int) throw ();
4588 extern int isprint (int) throw ();
4589 extern int ispunct (int) throw ();
4590 extern int isspace (int) throw ();
4591 extern int isupper (int) throw ();
4592 extern int isxdigit (int) throw ();
4593
4594
4595
4596 extern int tolower (int __c) throw ();
4597
4598
4599 extern int toupper (int __c) throw ();
4600
4601
4602
4603
4604
4605
4606
4607
4608 extern int isblank (int) throw ();
4609
4610
4611
4612
4613
4614
4615 extern int isctype (int __c, int __mask) throw ();
4616
4617
4618
4619
4620
4621
4622 extern int isascii (int __c) throw ();
4623
4624
4625
4626 extern int toascii (int __c) throw ();
4627
4628
4629
4630 extern int _toupper (int) throw ();
4631 extern int _tolower (int) throw ();
4632 # 375 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/ctype.h" 3 4
4633 }
4634 # 52 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cctype" 2 3
4635 # 68 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cctype" 3
4636 namespace std
4637 {
4638   using ::isalnum;
4639   using ::isalpha;
4640   using ::iscntrl;
4641   using ::isdigit;
4642   using ::isgraph;
4643   using ::islower;
4644   using ::isprint;
4645   using ::ispunct;
4646   using ::isspace;
4647   using ::isupper;
4648   using ::isxdigit;
4649   using ::tolower;
4650   using ::toupper;
4651 }
4652 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 2 3
4653 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stringfwd.h" 1 3
4654 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stringfwd.h" 3
4655        
4656 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stringfwd.h" 3
4657
4658
4659
4660 namespace std
4661 {
4662   template<typename _Alloc>
4663     class allocator;
4664
4665   template<class _CharT>
4666     struct char_traits;
4667
4668   template<typename _CharT, typename _Traits = char_traits<_CharT>,
4669            typename _Alloc = allocator<_CharT> >
4670     class basic_string;
4671
4672   template<> struct char_traits<char>;
4673
4674   typedef basic_string<char> string;
4675
4676
4677
4678
4679
4680
4681 }
4682 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 2 3
4683 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 1 3
4684 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 3
4685        
4686 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 3
4687
4688 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwchar" 1 3
4689 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwchar" 3
4690        
4691 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwchar" 3
4692
4693
4694
4695 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ctime" 1 3
4696 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ctime" 3
4697        
4698 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ctime" 3
4699 # 65 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ctime" 3
4700 namespace std
4701 {
4702   using ::clock_t;
4703   using ::time_t;
4704   using ::tm;
4705
4706   using ::clock;
4707   using ::difftime;
4708   using ::mktime;
4709   using ::time;
4710   using ::asctime;
4711   using ::ctime;
4712   using ::gmtime;
4713   using ::localtime;
4714   using ::strftime;
4715 }
4716 # 53 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwchar" 2 3
4717 # 61 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwchar" 3
4718 extern "C"
4719 {
4720   typedef struct
4721   {
4722     int __fill[6];
4723   } mbstate_t;
4724 }
4725
4726
4727 namespace std
4728 {
4729   using ::mbstate_t;
4730 }
4731 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 2 3
4732
4733
4734 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdint.h" 1 3 4
4735 # 30 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdint.h" 3 4
4736 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/bits/wordsize.h" 1 3 4
4737 # 31 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdint.h" 2 3 4
4738 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdint.h" 3 4
4739 typedef unsigned char uint8_t;
4740 typedef unsigned short int uint16_t;
4741
4742 typedef unsigned int uint32_t;
4743
4744
4745
4746
4747
4748 __extension__
4749 typedef unsigned long long int uint64_t;
4750
4751
4752
4753
4754
4755
4756 typedef signed char int_least8_t;
4757 typedef short int int_least16_t;
4758 typedef int int_least32_t;
4759
4760
4761
4762 __extension__
4763 typedef long long int int_least64_t;
4764
4765
4766
4767 typedef unsigned char uint_least8_t;
4768 typedef unsigned short int uint_least16_t;
4769 typedef unsigned int uint_least32_t;
4770
4771
4772
4773 __extension__
4774 typedef unsigned long long int uint_least64_t;
4775
4776
4777
4778
4779
4780
4781 typedef signed char int_fast8_t;
4782
4783
4784
4785
4786
4787 typedef int int_fast16_t;
4788 typedef int int_fast32_t;
4789 __extension__
4790 typedef long long int int_fast64_t;
4791
4792
4793
4794 typedef unsigned char uint_fast8_t;
4795
4796
4797
4798
4799
4800 typedef unsigned int uint_fast16_t;
4801 typedef unsigned int uint_fast32_t;
4802 __extension__
4803 typedef unsigned long long int uint_fast64_t;
4804 # 131 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdint.h" 3 4
4805 typedef unsigned int uintptr_t;
4806 # 140 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/stdint.h" 3 4
4807 __extension__
4808 typedef long long int intmax_t;
4809 __extension__
4810 typedef unsigned long long int uintmax_t;
4811 # 50 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 2 3
4812
4813
4814 namespace std
4815 {
4816 # 72 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 3
4817   typedef int64_t streamoff;
4818
4819
4820
4821
4822
4823   typedef ptrdiff_t streamsize;
4824
4825   template<typename _StateT>
4826     class fpos;
4827 # 94 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 3
4828   template<typename _StateT>
4829     class fpos
4830     {
4831     private:
4832       streamoff _M_off;
4833       _StateT _M_state;
4834
4835     public:
4836
4837
4838
4839
4840       fpos()
4841       : _M_off(0), _M_state() { }
4842 # 116 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/postypes.h" 3
4843       fpos(streamoff __off)
4844       : _M_off(__off), _M_state() { }
4845
4846
4847       operator streamoff() const { return _M_off; }
4848
4849
4850       void
4851       state(_StateT __st)
4852       { _M_state = __st; }
4853
4854
4855       _StateT
4856       state() const
4857       { return _M_state; }
4858
4859
4860
4861
4862
4863
4864       bool
4865       operator==(const fpos& __other) const
4866       { return _M_off == __other._M_off; }
4867
4868
4869       bool
4870       operator!=(const fpos& __other) const
4871       { return _M_off != __other._M_off; }
4872
4873
4874
4875
4876
4877       fpos&
4878       operator+=(streamoff __off)
4879       {
4880  _M_off += __off;
4881  return *this;
4882       }
4883
4884
4885
4886
4887
4888       fpos&
4889       operator-=(streamoff __off)
4890       {
4891  _M_off -= __off;
4892  return *this;
4893       }
4894
4895
4896
4897
4898
4899
4900
4901       fpos
4902       operator+(streamoff __off) const
4903       {
4904  fpos __pos(*this);
4905  __pos += __off;
4906  return __pos;
4907       }
4908
4909
4910
4911
4912
4913
4914
4915       fpos
4916       operator-(streamoff __off) const
4917       {
4918  fpos __pos(*this);
4919  __pos -= __off;
4920  return __pos;
4921       }
4922
4923
4924
4925
4926
4927
4928       streamoff
4929       operator-(const fpos& __other) const
4930       { return _M_off - __other._M_off; }
4931     };
4932
4933
4934
4935
4936
4937   typedef fpos<mbstate_t> streampos;
4938
4939   typedef fpos<mbstate_t> wstreampos;
4940 }
4941 # 50 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 2 3
4942
4943
4944 namespace std
4945 {
4946   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4947     class basic_ios;
4948
4949   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4950     class basic_streambuf;
4951
4952   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4953     class basic_istream;
4954
4955   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4956     class basic_ostream;
4957
4958   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4959     class basic_iostream;
4960
4961   template<typename _CharT, typename _Traits = char_traits<_CharT>,
4962      typename _Alloc = allocator<_CharT> >
4963     class basic_stringbuf;
4964
4965   template<typename _CharT, typename _Traits = char_traits<_CharT>,
4966     typename _Alloc = allocator<_CharT> >
4967     class basic_istringstream;
4968
4969   template<typename _CharT, typename _Traits = char_traits<_CharT>,
4970     typename _Alloc = allocator<_CharT> >
4971     class basic_ostringstream;
4972
4973   template<typename _CharT, typename _Traits = char_traits<_CharT>,
4974     typename _Alloc = allocator<_CharT> >
4975     class basic_stringstream;
4976
4977   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4978     class basic_filebuf;
4979
4980   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4981     class basic_ifstream;
4982
4983   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4984     class basic_ofstream;
4985
4986   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4987     class basic_fstream;
4988
4989   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4990     class istreambuf_iterator;
4991
4992   template<typename _CharT, typename _Traits = char_traits<_CharT> >
4993     class ostreambuf_iterator;
4994
4995
4996
4997   class ios_base;
4998 # 135 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 3
4999   typedef basic_ios<char> ios;
5000   typedef basic_streambuf<char> streambuf;
5001   typedef basic_istream<char> istream;
5002   typedef basic_ostream<char> ostream;
5003   typedef basic_iostream<char> iostream;
5004   typedef basic_stringbuf<char> stringbuf;
5005   typedef basic_istringstream<char> istringstream;
5006   typedef basic_ostringstream<char> ostringstream;
5007   typedef basic_stringstream<char> stringstream;
5008   typedef basic_filebuf<char> filebuf;
5009   typedef basic_ifstream<char> ifstream;
5010   typedef basic_ofstream<char> ofstream;
5011   typedef basic_fstream<char> fstream;
5012 # 165 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/iosfwd" 3
5013 }
5014 # 70 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
5015 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_pair.h" 1 3
5016 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_pair.h" 3
5017 namespace std
5018 {
5019
5020   template<class _T1, class _T2>
5021     struct pair
5022     {
5023       typedef _T1 first_type;
5024       typedef _T2 second_type;
5025
5026       _T1 first;
5027       _T2 second;
5028
5029
5030
5031
5032
5033       pair()
5034       : first(), second() { }
5035
5036
5037       pair(const _T1& __a, const _T2& __b)
5038       : first(__a), second(__b) { }
5039
5040
5041       template<class _U1, class _U2>
5042         pair(const pair<_U1, _U2>& __p)
5043  : first(__p.first), second(__p.second) { }
5044     };
5045
5046
5047   template<class _T1, class _T2>
5048     inline bool
5049     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5050     { return __x.first == __y.first && __x.second == __y.second; }
5051
5052
5053   template<class _T1, class _T2>
5054     inline bool
5055     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5056     { return __x.first < __y.first
5057       || (!(__y.first < __x.first) && __x.second < __y.second); }
5058
5059
5060   template<class _T1, class _T2>
5061     inline bool
5062     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5063     { return !(__x == __y); }
5064
5065
5066   template<class _T1, class _T2>
5067     inline bool
5068     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5069     { return __y < __x; }
5070
5071
5072   template<class _T1, class _T2>
5073     inline bool
5074     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5075     { return !(__y < __x); }
5076
5077
5078   template<class _T1, class _T2>
5079     inline bool
5080     operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
5081     { return !(__x < __y); }
5082 # 142 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_pair.h" 3
5083   template<class _T1, class _T2>
5084     inline pair<_T1, _T2>
5085     make_pair(_T1 __x, _T2 __y)
5086     { return pair<_T1, _T2>(__x, __y); }
5087 }
5088 # 71 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
5089 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/cpp_type_traits.h" 1 3
5090 # 41 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/cpp_type_traits.h" 3
5091        
5092 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/cpp_type_traits.h" 3
5093 # 75 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/cpp_type_traits.h" 3
5094 namespace __gnu_internal
5095 {
5096   typedef char __one;
5097   typedef char __two[2];
5098
5099   template<typename _Tp>
5100   __one __test_type(int _Tp::*);
5101   template<typename _Tp>
5102   __two& __test_type(...);
5103 }
5104
5105
5106 namespace __gnu_cxx
5107 {
5108   template<typename _Iterator, typename _Container>
5109     class __normal_iterator;
5110 }
5111
5112 struct __true_type { };
5113 struct __false_type { };
5114
5115 namespace std
5116 {
5117   template<bool>
5118     struct __truth_type
5119     { typedef __false_type __type; };
5120
5121   template<>
5122     struct __truth_type<true>
5123     { typedef __true_type __type; };
5124
5125
5126
5127   template<class _Sp, class _Tp>
5128     struct __traitor
5129     {
5130       enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
5131       typedef typename __truth_type<__value>::__type __type;
5132     };
5133
5134
5135   template<typename, typename>
5136     struct __are_same
5137     {
5138       enum { __value = 0 };
5139       typedef __false_type __type;
5140     };
5141
5142   template<typename _Tp>
5143     struct __are_same<_Tp, _Tp>
5144     {
5145       enum { __value = 1 };
5146       typedef __true_type __type;
5147     };
5148
5149
5150   template<typename, bool>
5151     struct __enable_if
5152     {
5153     };
5154
5155   template<typename _Tp>
5156     struct __enable_if<_Tp, true>
5157     {
5158       typedef _Tp __type;
5159     };
5160
5161
5162   template<typename _Tp>
5163     struct __is_void
5164     {
5165       enum { __value = 0 };
5166       typedef __false_type __type;
5167     };
5168
5169   template<>
5170     struct __is_void<void>
5171     {
5172       enum { __value = 1 };
5173       typedef __true_type __type;
5174     };
5175
5176
5177
5178
5179   template<typename _Tp>
5180     struct __is_integer
5181     {
5182       enum { __value = 0 };
5183       typedef __false_type __type;
5184     };
5185
5186
5187
5188
5189   template<>
5190     struct __is_integer<bool>
5191     {
5192       enum { __value = 1 };
5193       typedef __true_type __type;
5194     };
5195
5196   template<>
5197     struct __is_integer<char>
5198     {
5199       enum { __value = 1 };
5200       typedef __true_type __type;
5201     };
5202
5203   template<>
5204     struct __is_integer<signed char>
5205     {
5206       enum { __value = 1 };
5207       typedef __true_type __type;
5208     };
5209
5210   template<>
5211     struct __is_integer<unsigned char>
5212     {
5213       enum { __value = 1 };
5214       typedef __true_type __type;
5215     };
5216 # 207 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/cpp_type_traits.h" 3
5217   template<>
5218     struct __is_integer<short>
5219     {
5220       enum { __value = 1 };
5221       typedef __true_type __type;
5222     };
5223
5224   template<>
5225     struct __is_integer<unsigned short>
5226     {
5227       enum { __value = 1 };
5228       typedef __true_type __type;
5229     };
5230
5231   template<>
5232     struct __is_integer<int>
5233     {
5234       enum { __value = 1 };
5235       typedef __true_type __type;
5236     };
5237
5238   template<>
5239     struct __is_integer<unsigned int>
5240     {
5241       enum { __value = 1 };
5242       typedef __true_type __type;
5243     };
5244
5245   template<>
5246     struct __is_integer<long>
5247     {
5248       enum { __value = 1 };
5249       typedef __true_type __type;
5250     };
5251
5252   template<>
5253     struct __is_integer<unsigned long>
5254     {
5255       enum { __value = 1 };
5256       typedef __true_type __type;
5257     };
5258
5259   template<>
5260     struct __is_integer<long long>
5261     {
5262       enum { __value = 1 };
5263       typedef __true_type __type;
5264     };
5265
5266   template<>
5267     struct __is_integer<unsigned long long>
5268     {
5269       enum { __value = 1 };
5270       typedef __true_type __type;
5271     };
5272
5273
5274
5275
5276   template<typename _Tp>
5277     struct __is_floating
5278     {
5279       enum { __value = 0 };
5280       typedef __false_type __type;
5281     };
5282
5283
5284   template<>
5285     struct __is_floating<float>
5286     {
5287       enum { __value = 1 };
5288       typedef __true_type __type;
5289     };
5290
5291   template<>
5292     struct __is_floating<double>
5293     {
5294       enum { __value = 1 };
5295       typedef __true_type __type;
5296     };
5297
5298   template<>
5299     struct __is_floating<long double>
5300     {
5301       enum { __value = 1 };
5302       typedef __true_type __type;
5303     };
5304
5305
5306
5307
5308   template<typename _Tp>
5309     struct __is_pointer
5310     {
5311       enum { __value = 0 };
5312       typedef __false_type __type;
5313     };
5314
5315   template<typename _Tp>
5316     struct __is_pointer<_Tp*>
5317     {
5318       enum { __value = 1 };
5319       typedef __true_type __type;
5320     };
5321
5322
5323
5324
5325   template<typename _Tp>
5326     struct __is_normal_iterator
5327     {
5328       enum { __value = 0 };
5329       typedef __false_type __type;
5330     };
5331
5332   template<typename _Iterator, typename _Container>
5333     struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
5334              _Container> >
5335     {
5336       enum { __value = 1 };
5337       typedef __true_type __type;
5338     };
5339
5340
5341
5342
5343   template<typename _Tp>
5344     struct __is_arithmetic
5345     : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
5346     { };
5347
5348
5349
5350
5351   template<typename _Tp>
5352     struct __is_fundamental
5353     : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
5354     { };
5355
5356
5357
5358
5359   template<typename _Tp>
5360     struct __is_scalar
5361     : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
5362     { };
5363
5364
5365
5366
5367   template<typename _Tp>
5368     struct __is_pod
5369     {
5370       enum
5371  {
5372    __value = (sizeof(__gnu_internal::__test_type<_Tp>(0))
5373        != sizeof(__gnu_internal::__one))
5374  };
5375     };
5376
5377
5378
5379
5380   template<typename _Tp>
5381     struct __is_empty
5382     {
5383     private:
5384       template<typename>
5385         struct __first { };
5386       template<typename _Up>
5387         struct __second
5388         : public _Up { };
5389
5390     public:
5391       enum
5392  {
5393    __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
5394  };
5395     };
5396
5397 }
5398 # 72 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
5399 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_types.h" 1 3
5400 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_types.h" 3
5401        
5402 # 68 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_types.h" 3
5403
5404 namespace std
5405 {
5406 # 80 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_types.h" 3
5407   struct input_iterator_tag {};
5408
5409   struct output_iterator_tag {};
5410
5411   struct forward_iterator_tag : public input_iterator_tag {};
5412
5413
5414   struct bidirectional_iterator_tag : public forward_iterator_tag {};
5415
5416
5417   struct random_access_iterator_tag : public bidirectional_iterator_tag {};
5418 # 104 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_types.h" 3
5419   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
5420            typename _Pointer = _Tp*, typename _Reference = _Tp&>
5421     struct iterator
5422     {
5423
5424       typedef _Category iterator_category;
5425
5426       typedef _Tp value_type;
5427
5428       typedef _Distance difference_type;
5429
5430       typedef _Pointer pointer;
5431
5432       typedef _Reference reference;
5433     };
5434
5435
5436
5437
5438
5439
5440
5441   template<typename _Iterator>
5442     struct iterator_traits
5443     {
5444       typedef typename _Iterator::iterator_category iterator_category;
5445       typedef typename _Iterator::value_type value_type;
5446       typedef typename _Iterator::difference_type difference_type;
5447       typedef typename _Iterator::pointer pointer;
5448       typedef typename _Iterator::reference reference;
5449     };
5450
5451   template<typename _Tp>
5452     struct iterator_traits<_Tp*>
5453     {
5454       typedef random_access_iterator_tag iterator_category;
5455       typedef _Tp value_type;
5456       typedef ptrdiff_t difference_type;
5457       typedef _Tp* pointer;
5458       typedef _Tp& reference;
5459     };
5460
5461   template<typename _Tp>
5462     struct iterator_traits<const _Tp*>
5463     {
5464       typedef random_access_iterator_tag iterator_category;
5465       typedef _Tp value_type;
5466       typedef ptrdiff_t difference_type;
5467       typedef const _Tp* pointer;
5468       typedef const _Tp& reference;
5469     };
5470
5471
5472
5473
5474
5475
5476
5477   template<typename _Iter>
5478     inline typename iterator_traits<_Iter>::iterator_category
5479     __iterator_category(const _Iter&)
5480     { return typename iterator_traits<_Iter>::iterator_category(); }
5481
5482 }
5483 # 73 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
5484 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_funcs.h" 1 3
5485 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_funcs.h" 3
5486        
5487 # 68 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_funcs.h" 3
5488 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/concept_check.h" 1 3
5489 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/concept_check.h" 3
5490        
5491 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/concept_check.h" 3
5492 # 69 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_funcs.h" 2 3
5493
5494 namespace std
5495 {
5496   template<typename _InputIterator>
5497     inline typename iterator_traits<_InputIterator>::difference_type
5498     __distance(_InputIterator __first, _InputIterator __last,
5499                input_iterator_tag)
5500     {
5501
5502      
5503
5504       typename iterator_traits<_InputIterator>::difference_type __n = 0;
5505       while (__first != __last)
5506  {
5507    ++__first;
5508    ++__n;
5509  }
5510       return __n;
5511     }
5512
5513   template<typename _RandomAccessIterator>
5514     inline typename iterator_traits<_RandomAccessIterator>::difference_type
5515     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
5516                random_access_iterator_tag)
5517     {
5518
5519      
5520
5521       return __last - __first;
5522     }
5523 # 112 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_funcs.h" 3
5524   template<typename _InputIterator>
5525     inline typename iterator_traits<_InputIterator>::difference_type
5526     distance(_InputIterator __first, _InputIterator __last)
5527     {
5528
5529       return std::__distance(__first, __last,
5530         std::__iterator_category(__first));
5531     }
5532
5533   template<typename _InputIterator, typename _Distance>
5534     inline void
5535     __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
5536     {
5537
5538      
5539       while (__n--)
5540  ++__i;
5541     }
5542
5543   template<typename _BidirectionalIterator, typename _Distance>
5544     inline void
5545     __advance(_BidirectionalIterator& __i, _Distance __n,
5546               bidirectional_iterator_tag)
5547     {
5548
5549      
5550
5551       if (__n > 0)
5552         while (__n--)
5553    ++__i;
5554       else
5555         while (__n++)
5556    --__i;
5557     }
5558
5559   template<typename _RandomAccessIterator, typename _Distance>
5560     inline void
5561     __advance(_RandomAccessIterator& __i, _Distance __n,
5562               random_access_iterator_tag)
5563     {
5564
5565      
5566
5567       __i += __n;
5568     }
5569 # 170 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator_base_funcs.h" 3
5570   template<typename _InputIterator, typename _Distance>
5571     inline void
5572     advance(_InputIterator& __i, _Distance __n)
5573     {
5574
5575       std::__advance(__i, __n, std::__iterator_category(__i));
5576     }
5577 }
5578 # 74 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
5579 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 1 3
5580 # 70 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5581 namespace std
5582 {
5583 # 91 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5584   template<typename _Iterator>
5585     class reverse_iterator
5586     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
5587         typename iterator_traits<_Iterator>::value_type,
5588         typename iterator_traits<_Iterator>::difference_type,
5589         typename iterator_traits<_Iterator>::pointer,
5590                       typename iterator_traits<_Iterator>::reference>
5591     {
5592     protected:
5593       _Iterator current;
5594
5595     public:
5596       typedef _Iterator iterator_type;
5597       typedef typename iterator_traits<_Iterator>::difference_type
5598               difference_type;
5599       typedef typename iterator_traits<_Iterator>::reference reference;
5600       typedef typename iterator_traits<_Iterator>::pointer pointer;
5601
5602     public:
5603
5604
5605
5606
5607
5608
5609       reverse_iterator() : current() { }
5610
5611
5612
5613
5614       explicit
5615       reverse_iterator(iterator_type __x) : current(__x) { }
5616
5617
5618
5619
5620       reverse_iterator(const reverse_iterator& __x)
5621       : current(__x.current) { }
5622
5623
5624
5625
5626
5627       template<typename _Iter>
5628         reverse_iterator(const reverse_iterator<_Iter>& __x)
5629  : current(__x.base()) { }
5630
5631
5632
5633
5634       iterator_type
5635       base() const
5636       { return current; }
5637
5638
5639
5640
5641
5642
5643       reference
5644       operator*() const
5645       {
5646  _Iterator __tmp = current;
5647  return *--__tmp;
5648       }
5649
5650
5651
5652
5653
5654
5655       pointer
5656       operator->() const
5657       { return &(operator*()); }
5658
5659
5660
5661
5662
5663
5664       reverse_iterator&
5665       operator++()
5666       {
5667  --current;
5668  return *this;
5669       }
5670
5671
5672
5673
5674
5675
5676       reverse_iterator
5677       operator++(int)
5678       {
5679  reverse_iterator __tmp = *this;
5680  --current;
5681  return __tmp;
5682       }
5683
5684
5685
5686
5687
5688
5689       reverse_iterator&
5690       operator--()
5691       {
5692  ++current;
5693  return *this;
5694       }
5695
5696
5697
5698
5699
5700
5701       reverse_iterator
5702       operator--(int)
5703       {
5704  reverse_iterator __tmp = *this;
5705  ++current;
5706  return __tmp;
5707       }
5708
5709
5710
5711
5712
5713
5714       reverse_iterator
5715       operator+(difference_type __n) const
5716       { return reverse_iterator(current - __n); }
5717
5718
5719
5720
5721
5722
5723       reverse_iterator&
5724       operator+=(difference_type __n)
5725       {
5726  current -= __n;
5727  return *this;
5728       }
5729
5730
5731
5732
5733
5734
5735       reverse_iterator
5736       operator-(difference_type __n) const
5737       { return reverse_iterator(current + __n); }
5738
5739
5740
5741
5742
5743
5744       reverse_iterator&
5745       operator-=(difference_type __n)
5746       {
5747  current += __n;
5748  return *this;
5749       }
5750
5751
5752
5753
5754
5755
5756       reference
5757       operator[](difference_type __n) const
5758       { return *(*this + __n); }
5759     };
5760 # 278 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5761   template<typename _Iterator>
5762     inline bool
5763     operator==(const reverse_iterator<_Iterator>& __x,
5764         const reverse_iterator<_Iterator>& __y)
5765     { return __x.base() == __y.base(); }
5766
5767   template<typename _Iterator>
5768     inline bool
5769     operator<(const reverse_iterator<_Iterator>& __x,
5770        const reverse_iterator<_Iterator>& __y)
5771     { return __y.base() < __x.base(); }
5772
5773   template<typename _Iterator>
5774     inline bool
5775     operator!=(const reverse_iterator<_Iterator>& __x,
5776         const reverse_iterator<_Iterator>& __y)
5777     { return !(__x == __y); }
5778
5779   template<typename _Iterator>
5780     inline bool
5781     operator>(const reverse_iterator<_Iterator>& __x,
5782        const reverse_iterator<_Iterator>& __y)
5783     { return __y < __x; }
5784
5785   template<typename _Iterator>
5786     inline bool
5787     operator<=(const reverse_iterator<_Iterator>& __x,
5788         const reverse_iterator<_Iterator>& __y)
5789     { return !(__y < __x); }
5790
5791   template<typename _Iterator>
5792     inline bool
5793     operator>=(const reverse_iterator<_Iterator>& __x,
5794         const reverse_iterator<_Iterator>& __y)
5795     { return !(__x < __y); }
5796
5797   template<typename _Iterator>
5798     inline typename reverse_iterator<_Iterator>::difference_type
5799     operator-(const reverse_iterator<_Iterator>& __x,
5800        const reverse_iterator<_Iterator>& __y)
5801     { return __y.base() - __x.base(); }
5802
5803   template<typename _Iterator>
5804     inline reverse_iterator<_Iterator>
5805     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
5806        const reverse_iterator<_Iterator>& __x)
5807     { return reverse_iterator<_Iterator>(__x.base() - __n); }
5808
5809
5810
5811   template<typename _IteratorL, typename _IteratorR>
5812     inline bool
5813     operator==(const reverse_iterator<_IteratorL>& __x,
5814         const reverse_iterator<_IteratorR>& __y)
5815     { return __x.base() == __y.base(); }
5816
5817   template<typename _IteratorL, typename _IteratorR>
5818     inline bool
5819     operator<(const reverse_iterator<_IteratorL>& __x,
5820        const reverse_iterator<_IteratorR>& __y)
5821     { return __y.base() < __x.base(); }
5822
5823   template<typename _IteratorL, typename _IteratorR>
5824     inline bool
5825     operator!=(const reverse_iterator<_IteratorL>& __x,
5826         const reverse_iterator<_IteratorR>& __y)
5827     { return !(__x == __y); }
5828
5829   template<typename _IteratorL, typename _IteratorR>
5830     inline bool
5831     operator>(const reverse_iterator<_IteratorL>& __x,
5832        const reverse_iterator<_IteratorR>& __y)
5833     { return __y < __x; }
5834
5835   template<typename _IteratorL, typename _IteratorR>
5836     inline bool
5837     operator<=(const reverse_iterator<_IteratorL>& __x,
5838         const reverse_iterator<_IteratorR>& __y)
5839     { return !(__y < __x); }
5840
5841   template<typename _IteratorL, typename _IteratorR>
5842     inline bool
5843     operator>=(const reverse_iterator<_IteratorL>& __x,
5844         const reverse_iterator<_IteratorR>& __y)
5845     { return !(__x < __y); }
5846
5847   template<typename _IteratorL, typename _IteratorR>
5848     inline typename reverse_iterator<_IteratorL>::difference_type
5849     operator-(const reverse_iterator<_IteratorL>& __x,
5850        const reverse_iterator<_IteratorR>& __y)
5851     { return __y.base() - __x.base(); }
5852 # 382 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5853   template<typename _Container>
5854     class back_insert_iterator
5855     : public iterator<output_iterator_tag, void, void, void, void>
5856     {
5857     protected:
5858       _Container* container;
5859
5860     public:
5861
5862       typedef _Container container_type;
5863
5864
5865       explicit
5866       back_insert_iterator(_Container& __x) : container(&__x) { }
5867 # 408 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5868       back_insert_iterator&
5869       operator=(typename _Container::const_reference __value)
5870       {
5871  container->push_back(__value);
5872  return *this;
5873       }
5874
5875
5876       back_insert_iterator&
5877       operator*()
5878       { return *this; }
5879
5880
5881       back_insert_iterator&
5882       operator++()
5883       { return *this; }
5884
5885
5886       back_insert_iterator
5887       operator++(int)
5888       { return *this; }
5889     };
5890 # 442 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5891   template<typename _Container>
5892     inline back_insert_iterator<_Container>
5893     back_inserter(_Container& __x)
5894     { return back_insert_iterator<_Container>(__x); }
5895 # 457 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5896   template<typename _Container>
5897     class front_insert_iterator
5898     : public iterator<output_iterator_tag, void, void, void, void>
5899     {
5900     protected:
5901       _Container* container;
5902
5903     public:
5904
5905       typedef _Container container_type;
5906
5907
5908       explicit front_insert_iterator(_Container& __x) : container(&__x) { }
5909 # 482 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5910       front_insert_iterator&
5911       operator=(typename _Container::const_reference __value)
5912       {
5913  container->push_front(__value);
5914  return *this;
5915       }
5916
5917
5918       front_insert_iterator&
5919       operator*()
5920       { return *this; }
5921
5922
5923       front_insert_iterator&
5924       operator++()
5925       { return *this; }
5926
5927
5928       front_insert_iterator
5929       operator++(int)
5930       { return *this; }
5931     };
5932 # 516 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5933   template<typename _Container>
5934     inline front_insert_iterator<_Container>
5935     front_inserter(_Container& __x)
5936     { return front_insert_iterator<_Container>(__x); }
5937 # 535 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5938   template<typename _Container>
5939     class insert_iterator
5940     : public iterator<output_iterator_tag, void, void, void, void>
5941     {
5942     protected:
5943       _Container* container;
5944       typename _Container::iterator iter;
5945
5946     public:
5947
5948       typedef _Container container_type;
5949
5950
5951
5952
5953
5954       insert_iterator(_Container& __x, typename _Container::iterator __i)
5955       : container(&__x), iter(__i) {}
5956 # 577 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5957       insert_iterator&
5958       operator=(const typename _Container::const_reference __value)
5959       {
5960  iter = container->insert(iter, __value);
5961  ++iter;
5962  return *this;
5963       }
5964
5965
5966       insert_iterator&
5967       operator*()
5968       { return *this; }
5969
5970
5971       insert_iterator&
5972       operator++()
5973       { return *this; }
5974
5975
5976       insert_iterator&
5977       operator++(int)
5978       { return *this; }
5979     };
5980 # 612 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
5981   template<typename _Container, typename _Iterator>
5982     inline insert_iterator<_Container>
5983     inserter(_Container& __x, _Iterator __i)
5984     {
5985       return insert_iterator<_Container>(__x,
5986       typename _Container::iterator(__i));
5987     }
5988 }
5989
5990 namespace __gnu_cxx
5991 {
5992
5993
5994
5995
5996
5997
5998
5999   using std::iterator_traits;
6000   using std::iterator;
6001   template<typename _Iterator, typename _Container>
6002     class __normal_iterator
6003     {
6004     protected:
6005       _Iterator _M_current;
6006
6007     public:
6008       typedef typename iterator_traits<_Iterator>::iterator_category
6009                                                              iterator_category;
6010       typedef typename iterator_traits<_Iterator>::value_type value_type;
6011       typedef typename iterator_traits<_Iterator>::difference_type
6012                                                              difference_type;
6013       typedef typename iterator_traits<_Iterator>::reference reference;
6014       typedef typename iterator_traits<_Iterator>::pointer pointer;
6015
6016       __normal_iterator() : _M_current(_Iterator()) { }
6017
6018       explicit
6019       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
6020
6021
6022       template<typename _Iter>
6023         __normal_iterator(const __normal_iterator<_Iter,
6024      typename std::__enable_if<_Container,
6025      (std::__are_same<_Iter,
6026       typename _Container::pointer>::__value)
6027      >::__type>& __i)
6028         : _M_current(__i.base()) { }
6029
6030
6031       reference
6032       operator*() const
6033       { return *_M_current; }
6034
6035       pointer
6036       operator->() const
6037       { return _M_current; }
6038
6039       __normal_iterator&
6040       operator++()
6041       {
6042  ++_M_current;
6043  return *this;
6044       }
6045
6046       __normal_iterator
6047       operator++(int)
6048       { return __normal_iterator(_M_current++); }
6049
6050
6051       __normal_iterator&
6052       operator--()
6053       {
6054  --_M_current;
6055  return *this;
6056       }
6057
6058       __normal_iterator
6059       operator--(int)
6060       { return __normal_iterator(_M_current--); }
6061
6062
6063       reference
6064       operator[](const difference_type& __n) const
6065       { return _M_current[__n]; }
6066
6067       __normal_iterator&
6068       operator+=(const difference_type& __n)
6069       { _M_current += __n; return *this; }
6070
6071       __normal_iterator
6072       operator+(const difference_type& __n) const
6073       { return __normal_iterator(_M_current + __n); }
6074
6075       __normal_iterator&
6076       operator-=(const difference_type& __n)
6077       { _M_current -= __n; return *this; }
6078
6079       __normal_iterator
6080       operator-(const difference_type& __n) const
6081       { return __normal_iterator(_M_current - __n); }
6082
6083       const _Iterator&
6084       base() const
6085       { return _M_current; }
6086     };
6087 # 728 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_iterator.h" 3
6088   template<typename _IteratorL, typename _IteratorR, typename _Container>
6089     inline bool
6090     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
6091         const __normal_iterator<_IteratorR, _Container>& __rhs)
6092     { return __lhs.base() == __rhs.base(); }
6093
6094   template<typename _Iterator, typename _Container>
6095     inline bool
6096     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
6097         const __normal_iterator<_Iterator, _Container>& __rhs)
6098     { return __lhs.base() == __rhs.base(); }
6099
6100   template<typename _IteratorL, typename _IteratorR, typename _Container>
6101     inline bool
6102     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
6103         const __normal_iterator<_IteratorR, _Container>& __rhs)
6104     { return __lhs.base() != __rhs.base(); }
6105
6106   template<typename _Iterator, typename _Container>
6107     inline bool
6108     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
6109         const __normal_iterator<_Iterator, _Container>& __rhs)
6110     { return __lhs.base() != __rhs.base(); }
6111
6112
6113   template<typename _IteratorL, typename _IteratorR, typename _Container>
6114     inline bool
6115     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
6116        const __normal_iterator<_IteratorR, _Container>& __rhs)
6117     { return __lhs.base() < __rhs.base(); }
6118
6119   template<typename _Iterator, typename _Container>
6120     inline bool
6121     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
6122        const __normal_iterator<_Iterator, _Container>& __rhs)
6123     { return __lhs.base() < __rhs.base(); }
6124
6125   template<typename _IteratorL, typename _IteratorR, typename _Container>
6126     inline bool
6127     operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
6128        const __normal_iterator<_IteratorR, _Container>& __rhs)
6129     { return __lhs.base() > __rhs.base(); }
6130
6131   template<typename _Iterator, typename _Container>
6132     inline bool
6133     operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
6134        const __normal_iterator<_Iterator, _Container>& __rhs)
6135     { return __lhs.base() > __rhs.base(); }
6136
6137   template<typename _IteratorL, typename _IteratorR, typename _Container>
6138     inline bool
6139     operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
6140         const __normal_iterator<_IteratorR, _Container>& __rhs)
6141     { return __lhs.base() <= __rhs.base(); }
6142
6143   template<typename _Iterator, typename _Container>
6144     inline bool
6145     operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
6146         const __normal_iterator<_Iterator, _Container>& __rhs)
6147     { return __lhs.base() <= __rhs.base(); }
6148
6149   template<typename _IteratorL, typename _IteratorR, typename _Container>
6150     inline bool
6151     operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
6152         const __normal_iterator<_IteratorR, _Container>& __rhs)
6153     { return __lhs.base() >= __rhs.base(); }
6154
6155   template<typename _Iterator, typename _Container>
6156     inline bool
6157     operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
6158         const __normal_iterator<_Iterator, _Container>& __rhs)
6159     { return __lhs.base() >= __rhs.base(); }
6160
6161
6162
6163
6164
6165   template<typename _IteratorL, typename _IteratorR, typename _Container>
6166     inline typename __normal_iterator<_IteratorL, _Container>::difference_type
6167     operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
6168        const __normal_iterator<_IteratorR, _Container>& __rhs)
6169     { return __lhs.base() - __rhs.base(); }
6170
6171   template<typename _Iterator, typename _Container>
6172     inline __normal_iterator<_Iterator, _Container>
6173     operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
6174        __n, const __normal_iterator<_Iterator, _Container>& __i)
6175     { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
6176 }
6177 # 75 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
6178
6179 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/debug/debug.h" 1 3
6180 # 77 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 2 3
6181
6182 namespace std
6183 {
6184 # 90 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6185   template<typename _Tp>
6186     inline void
6187     swap(_Tp& __a, _Tp& __b)
6188     {
6189
6190      
6191
6192       _Tp __tmp = __a;
6193       __a = __b;
6194       __b = __tmp;
6195     }
6196
6197
6198
6199
6200   template<bool _BoolType>
6201     struct __iter_swap
6202     {
6203       template<typename _ForwardIterator1, typename _ForwardIterator2>
6204         static void
6205         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
6206         {
6207           typedef typename iterator_traits<_ForwardIterator1>::value_type
6208             _ValueType1;
6209           _ValueType1 __tmp = *__a;
6210           *__a = *__b;
6211           *__b = __tmp;
6212  }
6213     };
6214
6215   template<>
6216     struct __iter_swap<true>
6217     {
6218       template<typename _ForwardIterator1, typename _ForwardIterator2>
6219         static void
6220         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
6221         {
6222           swap(*__a, *__b);
6223         }
6224     };
6225 # 140 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6226   template<typename _ForwardIterator1, typename _ForwardIterator2>
6227     inline void
6228     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
6229     {
6230       typedef typename iterator_traits<_ForwardIterator1>::value_type
6231  _ValueType1;
6232       typedef typename iterator_traits<_ForwardIterator2>::value_type
6233  _ValueType2;
6234
6235
6236      
6237
6238      
6239
6240      
6241
6242      
6243
6244
6245       typedef typename iterator_traits<_ForwardIterator1>::reference
6246  _ReferenceType1;
6247       typedef typename iterator_traits<_ForwardIterator2>::reference
6248  _ReferenceType2;
6249       std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
6250  __are_same<_ValueType1 &, _ReferenceType1>::__value &&
6251  __are_same<_ValueType2 &, _ReferenceType2>::__value>::
6252  iter_swap(__a, __b);
6253     }
6254 # 182 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6255   template<typename _Tp>
6256     inline const _Tp&
6257     min(const _Tp& __a, const _Tp& __b)
6258     {
6259
6260      
6261
6262       if (__b < __a)
6263  return __b;
6264       return __a;
6265     }
6266 # 204 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6267   template<typename _Tp>
6268     inline const _Tp&
6269     max(const _Tp& __a, const _Tp& __b)
6270     {
6271
6272      
6273
6274       if (__a < __b)
6275  return __b;
6276       return __a;
6277     }
6278 # 226 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6279   template<typename _Tp, typename _Compare>
6280     inline const _Tp&
6281     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
6282     {
6283
6284       if (__comp(__b, __a))
6285  return __b;
6286       return __a;
6287     }
6288 # 246 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6289   template<typename _Tp, typename _Compare>
6290     inline const _Tp&
6291     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
6292     {
6293
6294       if (__comp(__a, __b))
6295  return __b;
6296       return __a;
6297     }
6298
6299
6300
6301
6302
6303
6304
6305   template<bool, typename>
6306     struct __copy
6307     {
6308       template<typename _II, typename _OI>
6309         static _OI
6310         copy(_II __first, _II __last, _OI __result)
6311         {
6312    for (; __first != __last; ++__result, ++__first)
6313      *__result = *__first;
6314    return __result;
6315  }
6316     };
6317
6318   template<bool _BoolType>
6319     struct __copy<_BoolType, random_access_iterator_tag>
6320     {
6321       template<typename _II, typename _OI>
6322         static _OI
6323         copy(_II __first, _II __last, _OI __result)
6324         {
6325    typedef typename iterator_traits<_II>::difference_type _Distance;
6326    for(_Distance __n = __last - __first; __n > 0; --__n)
6327      {
6328        *__result = *__first;
6329        ++__first;
6330        ++__result;
6331      }
6332    return __result;
6333  }
6334     };
6335
6336   template<>
6337     struct __copy<true, random_access_iterator_tag>
6338     {
6339       template<typename _Tp>
6340         static _Tp*
6341         copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
6342         {
6343    std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
6344    return __result + (__last - __first);
6345  }
6346     };
6347
6348   template<typename _II, typename _OI>
6349     inline _OI
6350     __copy_aux(_II __first, _II __last, _OI __result)
6351     {
6352       typedef typename iterator_traits<_II>::value_type _ValueTypeI;
6353       typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
6354       typedef typename iterator_traits<_II>::iterator_category _Category;
6355       const bool __simple = (__is_scalar<_ValueTypeI>::__value
6356                       && __is_pointer<_II>::__value
6357                       && __is_pointer<_OI>::__value
6358         && __are_same<_ValueTypeI, _ValueTypeO>::__value);
6359
6360       return std::__copy<__simple, _Category>::copy(__first, __last, __result);
6361     }
6362
6363   template<bool, bool>
6364     struct __copy_normal
6365     {
6366       template<typename _II, typename _OI>
6367         static _OI
6368         copy_n(_II __first, _II __last, _OI __result)
6369         { return std::__copy_aux(__first, __last, __result); }
6370     };
6371
6372   template<>
6373     struct __copy_normal<true, false>
6374     {
6375       template<typename _II, typename _OI>
6376         static _OI
6377         copy_n(_II __first, _II __last, _OI __result)
6378         { return std::__copy_aux(__first.base(), __last.base(), __result); }
6379     };
6380
6381   template<>
6382     struct __copy_normal<false, true>
6383     {
6384       template<typename _II, typename _OI>
6385         static _OI
6386         copy_n(_II __first, _II __last, _OI __result)
6387         { return _OI(std::__copy_aux(__first, __last, __result.base())); }
6388     };
6389
6390   template<>
6391     struct __copy_normal<true, true>
6392     {
6393       template<typename _II, typename _OI>
6394         static _OI
6395         copy_n(_II __first, _II __last, _OI __result)
6396         { return _OI(std::__copy_aux(__first.base(), __last.base(),
6397          __result.base())); }
6398     };
6399 # 373 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6400   template<typename _InputIterator, typename _OutputIterator>
6401     inline _OutputIterator
6402     copy(_InputIterator __first, _InputIterator __last,
6403   _OutputIterator __result)
6404     {
6405
6406      
6407      
6408
6409       ;
6410
6411        const bool __in = __is_normal_iterator<_InputIterator>::__value;
6412        const bool __out = __is_normal_iterator<_OutputIterator>::__value;
6413        return std::__copy_normal<__in, __out>::copy_n(__first, __last,
6414             __result);
6415     }
6416
6417   template<bool, typename>
6418     struct __copy_backward
6419     {
6420       template<typename _BI1, typename _BI2>
6421         static _BI2
6422         copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
6423         {
6424    while (__first != __last)
6425      *--__result = *--__last;
6426    return __result;
6427  }
6428     };
6429
6430   template<bool _BoolType>
6431     struct __copy_backward<_BoolType, random_access_iterator_tag>
6432     {
6433       template<typename _BI1, typename _BI2>
6434         static _BI2
6435         copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
6436         {
6437    typename iterator_traits<_BI1>::difference_type __n;
6438    for (__n = __last - __first; __n > 0; --__n)
6439      *--__result = *--__last;
6440    return __result;
6441  }
6442     };
6443
6444   template<>
6445     struct __copy_backward<true, random_access_iterator_tag>
6446     {
6447       template<typename _Tp>
6448         static _Tp*
6449         copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
6450         {
6451    const ptrdiff_t _Num = __last - __first;
6452    std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
6453    return __result - _Num;
6454  }
6455     };
6456
6457   template<typename _BI1, typename _BI2>
6458     inline _BI2
6459     __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
6460     {
6461       typedef typename iterator_traits<_BI1>::value_type _ValueType1;
6462       typedef typename iterator_traits<_BI2>::value_type _ValueType2;
6463       typedef typename iterator_traits<_BI1>::iterator_category _Category;
6464       const bool __simple = (__is_scalar<_ValueType1>::__value
6465                       && __is_pointer<_BI1>::__value
6466                       && __is_pointer<_BI2>::__value
6467         && __are_same<_ValueType1, _ValueType2>::__value);
6468
6469       return std::__copy_backward<__simple, _Category>::copy_b(__first, __last,
6470               __result);
6471     }
6472
6473   template<bool, bool>
6474     struct __copy_backward_normal
6475     {
6476       template<typename _BI1, typename _BI2>
6477         static _BI2
6478         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
6479         { return std::__copy_backward_aux(__first, __last, __result); }
6480     };
6481
6482   template<>
6483     struct __copy_backward_normal<true, false>
6484     {
6485       template<typename _BI1, typename _BI2>
6486         static _BI2
6487         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
6488         { return std::__copy_backward_aux(__first.base(), __last.base(),
6489        __result); }
6490     };
6491
6492   template<>
6493     struct __copy_backward_normal<false, true>
6494     {
6495       template<typename _BI1, typename _BI2>
6496         static _BI2
6497         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
6498         { return _BI2(std::__copy_backward_aux(__first, __last,
6499             __result.base())); }
6500     };
6501
6502   template<>
6503     struct __copy_backward_normal<true, true>
6504     {
6505       template<typename _BI1, typename _BI2>
6506         static _BI2
6507         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
6508         { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
6509             __result.base())); }
6510     };
6511 # 502 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6512   template <typename _BI1, typename _BI2>
6513     inline _BI2
6514     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
6515     {
6516
6517      
6518      
6519      
6520
6521
6522       ;
6523
6524       const bool __bi1 = __is_normal_iterator<_BI1>::__value;
6525       const bool __bi2 = __is_normal_iterator<_BI2>::__value;
6526       return std::__copy_backward_normal<__bi1, __bi2>::copy_b_n(__first, __last,
6527          __result);
6528     }
6529
6530   template<bool>
6531     struct __fill
6532     {
6533       template<typename _ForwardIterator, typename _Tp>
6534         static void
6535         fill(_ForwardIterator __first, _ForwardIterator __last,
6536       const _Tp& __value)
6537         {
6538    for (; __first != __last; ++__first)
6539      *__first = __value;
6540  }
6541     };
6542
6543   template<>
6544     struct __fill<true>
6545     {
6546       template<typename _ForwardIterator, typename _Tp>
6547         static void
6548         fill(_ForwardIterator __first, _ForwardIterator __last,
6549       const _Tp& __value)
6550         {
6551    const _Tp __tmp = __value;
6552    for (; __first != __last; ++__first)
6553      *__first = __tmp;
6554  }
6555     };
6556 # 558 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6557   template<typename _ForwardIterator, typename _Tp>
6558     void
6559     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
6560     {
6561
6562      
6563
6564       ;
6565
6566       const bool __scalar = __is_scalar<_Tp>::__value;
6567       std::__fill<__scalar>::fill(__first, __last, __value);
6568     }
6569
6570
6571   inline void
6572   fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
6573   {
6574     ;
6575     const unsigned char __tmp = __c;
6576     std::memset(__first, __tmp, __last - __first);
6577   }
6578
6579   inline void
6580   fill(signed char* __first, signed char* __last, const signed char& __c)
6581   {
6582     ;
6583     const signed char __tmp = __c;
6584     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
6585   }
6586
6587   inline void
6588   fill(char* __first, char* __last, const char& __c)
6589   {
6590     ;
6591     const char __tmp = __c;
6592     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
6593   }
6594
6595   template<bool>
6596     struct __fill_n
6597     {
6598       template<typename _OutputIterator, typename _Size, typename _Tp>
6599         static _OutputIterator
6600         fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
6601         {
6602    for (; __n > 0; --__n, ++__first)
6603      *__first = __value;
6604    return __first;
6605  }
6606     };
6607
6608   template<>
6609     struct __fill_n<true>
6610     {
6611       template<typename _OutputIterator, typename _Size, typename _Tp>
6612         static _OutputIterator
6613         fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
6614         {
6615    const _Tp __tmp = __value;
6616    for (; __n > 0; --__n, ++__first)
6617      *__first = __tmp;
6618    return __first;
6619  }
6620     };
6621 # 634 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6622   template<typename _OutputIterator, typename _Size, typename _Tp>
6623     _OutputIterator
6624     fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
6625     {
6626
6627      
6628
6629       const bool __scalar = __is_scalar<_Tp>::__value;
6630       return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
6631     }
6632
6633   template<typename _Size>
6634     inline unsigned char*
6635     fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
6636     {
6637       std::fill(__first, __first + __n, __c);
6638       return __first + __n;
6639     }
6640
6641   template<typename _Size>
6642     inline signed char*
6643     fill_n(char* __first, _Size __n, const signed char& __c)
6644     {
6645       std::fill(__first, __first + __n, __c);
6646       return __first + __n;
6647     }
6648
6649   template<typename _Size>
6650     inline char*
6651     fill_n(char* __first, _Size __n, const char& __c)
6652     {
6653       std::fill(__first, __first + __n, __c);
6654       return __first + __n;
6655     }
6656 # 681 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6657   template<typename _InputIterator1, typename _InputIterator2>
6658     pair<_InputIterator1, _InputIterator2>
6659     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
6660       _InputIterator2 __first2)
6661     {
6662
6663      
6664      
6665      
6666
6667
6668       ;
6669
6670       while (__first1 != __last1 && *__first1 == *__first2)
6671         {
6672    ++__first1;
6673    ++__first2;
6674         }
6675       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
6676     }
6677 # 716 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6678   template<typename _InputIterator1, typename _InputIterator2,
6679     typename _BinaryPredicate>
6680     pair<_InputIterator1, _InputIterator2>
6681     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
6682       _InputIterator2 __first2, _BinaryPredicate __binary_pred)
6683     {
6684
6685      
6686      
6687       ;
6688
6689       while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
6690         {
6691    ++__first1;
6692    ++__first2;
6693         }
6694       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
6695     }
6696 # 746 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6697   template<typename _InputIterator1, typename _InputIterator2>
6698     inline bool
6699     equal(_InputIterator1 __first1, _InputIterator1 __last1,
6700    _InputIterator2 __first2)
6701     {
6702
6703      
6704      
6705      
6706
6707
6708       ;
6709
6710       for (; __first1 != __last1; ++__first1, ++__first2)
6711  if (!(*__first1 == *__first2))
6712    return false;
6713       return true;
6714     }
6715 # 778 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6716   template<typename _InputIterator1, typename _InputIterator2,
6717     typename _BinaryPredicate>
6718     inline bool
6719     equal(_InputIterator1 __first1, _InputIterator1 __last1,
6720    _InputIterator2 __first2,
6721    _BinaryPredicate __binary_pred)
6722     {
6723
6724      
6725      
6726       ;
6727
6728       for (; __first1 != __last1; ++__first1, ++__first2)
6729  if (!__binary_pred(*__first1, *__first2))
6730    return false;
6731       return true;
6732     }
6733 # 810 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6734   template<typename _InputIterator1, typename _InputIterator2>
6735     bool
6736     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
6737        _InputIterator2 __first2, _InputIterator2 __last2)
6738     {
6739
6740      
6741      
6742      
6743
6744
6745      
6746
6747
6748       ;
6749       ;
6750
6751       for (; __first1 != __last1 && __first2 != __last2;
6752     ++__first1, ++__first2)
6753  {
6754    if (*__first1 < *__first2)
6755      return true;
6756    if (*__first2 < *__first1)
6757      return false;
6758  }
6759       return __first1 == __last1 && __first2 != __last2;
6760     }
6761 # 850 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algobase.h" 3
6762   template<typename _InputIterator1, typename _InputIterator2,
6763     typename _Compare>
6764     bool
6765     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
6766        _InputIterator2 __first2, _InputIterator2 __last2,
6767        _Compare __comp)
6768     {
6769
6770      
6771      
6772       ;
6773       ;
6774
6775       for (; __first1 != __last1 && __first2 != __last2;
6776     ++__first1, ++__first2)
6777  {
6778    if (__comp(*__first1, *__first2))
6779      return true;
6780    if (__comp(*__first2, *__first1))
6781      return false;
6782  }
6783       return __first1 == __last1 && __first2 != __last2;
6784     }
6785
6786   inline bool
6787   lexicographical_compare(const unsigned char* __first1,
6788      const unsigned char* __last1,
6789      const unsigned char* __first2,
6790      const unsigned char* __last2)
6791   {
6792     ;
6793     ;
6794
6795     const size_t __len1 = __last1 - __first1;
6796     const size_t __len2 = __last2 - __first2;
6797     const int __result = std::memcmp(__first1, __first2,
6798          std::min(__len1, __len2));
6799     return __result != 0 ? __result < 0 : __len1 < __len2;
6800   }
6801
6802   inline bool
6803   lexicographical_compare(const char* __first1, const char* __last1,
6804      const char* __first2, const char* __last2)
6805   {
6806     ;
6807     ;
6808
6809
6810     return std::lexicographical_compare((const signed char*) __first1,
6811      (const signed char*) __last1,
6812      (const signed char*) __first2,
6813      (const signed char*) __last2);
6814
6815
6816
6817
6818
6819
6820   }
6821
6822 }
6823 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
6824 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/allocator.h" 1 3
6825 # 52 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/allocator.h" 3
6826 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++allocator.h" 1 3
6827 # 34 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++allocator.h" 3
6828 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ext/new_allocator.h" 1 3
6829 # 37 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ext/new_allocator.h" 3
6830 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/new" 1 3
6831 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/new" 3
6832 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/exception" 1 3
6833 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/exception" 3
6834 #pragma GCC visibility push(default)
6835
6836 extern "C++" {
6837
6838 namespace std
6839 {
6840 # 54 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/exception" 3
6841   class exception
6842   {
6843   public:
6844     exception() throw() { }
6845     virtual ~exception() throw();
6846
6847
6848     virtual const char* what() const throw();
6849   };
6850
6851
6852
6853   class bad_exception : public exception
6854   {
6855   public:
6856     bad_exception() throw() { }
6857
6858
6859     virtual ~bad_exception() throw();
6860   };
6861
6862
6863   typedef void (*terminate_handler) ();
6864
6865   typedef void (*unexpected_handler) ();
6866
6867
6868   terminate_handler set_terminate(terminate_handler) throw();
6869
6870
6871   void terminate() __attribute__ ((__noreturn__));
6872
6873
6874   unexpected_handler set_unexpected(unexpected_handler) throw();
6875
6876
6877   void unexpected() __attribute__ ((__noreturn__));
6878 # 102 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/exception" 3
6879   bool uncaught_exception() throw();
6880 }
6881
6882 namespace __gnu_cxx
6883 {
6884 # 117 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/exception" 3
6885   void __verbose_terminate_handler ();
6886 }
6887
6888 }
6889
6890 #pragma GCC visibility pop
6891 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/new" 2 3
6892
6893 #pragma GCC visibility push(default)
6894
6895 extern "C++" {
6896
6897 namespace std
6898 {
6899
6900
6901
6902
6903
6904   class bad_alloc : public exception
6905   {
6906   public:
6907     bad_alloc() throw() { }
6908
6909
6910     virtual ~bad_alloc() throw();
6911   };
6912
6913   struct nothrow_t { };
6914   extern const nothrow_t nothrow;
6915
6916
6917   typedef void (*new_handler)();
6918
6919   new_handler set_new_handler(new_handler) throw();
6920 }
6921 # 84 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/new" 3
6922 void* operator new(std::size_t) throw (std::bad_alloc);
6923 void* operator new[](std::size_t) throw (std::bad_alloc);
6924 void operator delete(void*) throw();
6925 void operator delete[](void*) throw();
6926 void* operator new(std::size_t, const std::nothrow_t&) throw();
6927 void* operator new[](std::size_t, const std::nothrow_t&) throw();
6928 void operator delete(void*, const std::nothrow_t&) throw();
6929 void operator delete[](void*, const std::nothrow_t&) throw();
6930
6931
6932 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
6933 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
6934
6935
6936 inline void operator delete (void*, void*) throw() { }
6937 inline void operator delete[](void*, void*) throw() { }
6938
6939 }
6940
6941 #pragma GCC visibility pop
6942 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ext/new_allocator.h" 2 3
6943
6944
6945 namespace __gnu_cxx
6946 {
6947
6948
6949
6950
6951
6952
6953
6954   template<typename _Tp>
6955     class new_allocator
6956     {
6957     public:
6958       typedef size_t size_type;
6959       typedef ptrdiff_t difference_type;
6960       typedef _Tp* pointer;
6961       typedef const _Tp* const_pointer;
6962       typedef _Tp& reference;
6963       typedef const _Tp& const_reference;
6964       typedef _Tp value_type;
6965
6966       template<typename _Tp1>
6967         struct rebind
6968         { typedef new_allocator<_Tp1> other; };
6969
6970       new_allocator() throw() { }
6971
6972       new_allocator(const new_allocator&) throw() { }
6973
6974       template<typename _Tp1>
6975         new_allocator(const new_allocator<_Tp1>&) throw() { }
6976
6977       ~new_allocator() throw() { }
6978
6979       pointer
6980       address(reference __x) const { return &__x; }
6981
6982       const_pointer
6983       address(const_reference __x) const { return &__x; }
6984
6985
6986
6987       pointer
6988       allocate(size_type __n, const void* = 0)
6989       {
6990  if (__builtin_expect(__n > this->max_size(), false))
6991    std::__throw_bad_alloc();
6992
6993  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
6994       }
6995
6996
6997       void
6998       deallocate(pointer __p, size_type)
6999       { ::operator delete(__p); }
7000
7001       size_type
7002       max_size() const throw()
7003       { return size_t(-1) / sizeof(_Tp); }
7004
7005
7006
7007       void
7008       construct(pointer __p, const _Tp& __val)
7009       { ::new(__p) _Tp(__val); }
7010
7011       void
7012       destroy(pointer __p) { __p->~_Tp(); }
7013     };
7014
7015   template<typename _Tp>
7016     inline bool
7017     operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
7018     { return true; }
7019
7020   template<typename _Tp>
7021     inline bool
7022     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
7023     { return false; }
7024 }
7025 # 35 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/c++allocator.h" 2 3
7026 # 53 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/allocator.h" 2 3
7027
7028 namespace std
7029 {
7030   template<typename _Tp>
7031     class allocator;
7032
7033
7034   template<>
7035     class allocator<void>
7036     {
7037     public:
7038       typedef size_t size_type;
7039       typedef ptrdiff_t difference_type;
7040       typedef void* pointer;
7041       typedef const void* const_pointer;
7042       typedef void value_type;
7043
7044       template<typename _Tp1>
7045         struct rebind
7046         { typedef allocator<_Tp1> other; };
7047     };
7048
7049
7050
7051
7052
7053
7054
7055   template<typename _Tp>
7056     class allocator: public __gnu_cxx::new_allocator<_Tp>
7057     {
7058    public:
7059       typedef size_t size_type;
7060       typedef ptrdiff_t difference_type;
7061       typedef _Tp* pointer;
7062       typedef const _Tp* const_pointer;
7063       typedef _Tp& reference;
7064       typedef const _Tp& const_reference;
7065       typedef _Tp value_type;
7066
7067       template<typename _Tp1>
7068         struct rebind
7069         { typedef allocator<_Tp1> other; };
7070
7071       allocator() throw() { }
7072
7073       allocator(const allocator& __a) throw()
7074       : __gnu_cxx::new_allocator<_Tp>(__a) { }
7075
7076       template<typename _Tp1>
7077         allocator(const allocator<_Tp1>&) throw() { }
7078
7079       ~allocator() throw() { }
7080
7081
7082     };
7083
7084   template<typename _T1, typename _T2>
7085     inline bool
7086     operator==(const allocator<_T1>&, const allocator<_T2>&)
7087     { return true; }
7088
7089   template<typename _T1, typename _T2>
7090     inline bool
7091     operator!=(const allocator<_T1>&, const allocator<_T2>&)
7092     { return false; }
7093
7094
7095
7096
7097
7098   extern template class allocator<char>;
7099   extern template class allocator<wchar_t>;
7100
7101
7102
7103
7104 }
7105 # 68 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
7106 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_construct.h" 1 3
7107 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_construct.h" 3
7108 namespace std
7109 {
7110
7111
7112
7113
7114
7115
7116   template<typename _T1, typename _T2>
7117     inline void
7118     _Construct(_T1* __p, const _T2& __value)
7119     {
7120
7121
7122       ::new(static_cast<void*>(__p)) _T1(__value);
7123     }
7124
7125
7126
7127
7128
7129
7130
7131   template<typename _T1>
7132     inline void
7133     _Construct(_T1* __p)
7134     {
7135
7136
7137       ::new(static_cast<void*>(__p)) _T1();
7138     }
7139
7140
7141
7142
7143
7144
7145   template<typename _Tp>
7146     inline void
7147     _Destroy(_Tp* __pointer)
7148     { __pointer->~_Tp(); }
7149 # 116 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_construct.h" 3
7150   template<typename _ForwardIterator>
7151     inline void
7152     __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
7153     __false_type)
7154     {
7155       for (; __first != __last; ++__first)
7156  std::_Destroy(&*__first);
7157     }
7158 # 134 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_construct.h" 3
7159   template<typename _ForwardIterator>
7160     inline void
7161     __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
7162     { }
7163 # 146 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_construct.h" 3
7164   template<typename _ForwardIterator>
7165     inline void
7166     _Destroy(_ForwardIterator __first, _ForwardIterator __last)
7167     {
7168       typedef typename iterator_traits<_ForwardIterator>::value_type
7169                        _Value_type;
7170       typedef typename std::__is_scalar<_Value_type>::__type
7171                 _Has_trivial_destructor;
7172
7173       std::__destroy_aux(__first, __last, _Has_trivial_destructor());
7174     }
7175 # 166 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_construct.h" 3
7176   template <typename _Tp> class allocator;
7177
7178   template<typename _ForwardIterator, typename _Allocator>
7179     void
7180     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
7181       _Allocator __alloc)
7182     {
7183       for (; __first != __last; ++__first)
7184  __alloc.destroy(&*__first);
7185     }
7186
7187   template<typename _ForwardIterator, typename _Tp>
7188     inline void
7189     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
7190       allocator<_Tp>)
7191     {
7192       _Destroy(__first, __last);
7193     }
7194
7195
7196 }
7197 # 69 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
7198 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_uninitialized.h" 1 3
7199 # 66 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_uninitialized.h" 3
7200 namespace std
7201 {
7202
7203   template<typename _InputIterator, typename _ForwardIterator>
7204     inline _ForwardIterator
7205     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
7206         _ForwardIterator __result,
7207         __true_type)
7208     { return std::copy(__first, __last, __result); }
7209
7210   template<typename _InputIterator, typename _ForwardIterator>
7211     inline _ForwardIterator
7212     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
7213         _ForwardIterator __result,
7214         __false_type)
7215     {
7216       _ForwardIterator __cur = __result;
7217       try
7218  {
7219    for (; __first != __last; ++__first, ++__cur)
7220      std::_Construct(&*__cur, *__first);
7221    return __cur;
7222  }
7223       catch(...)
7224  {
7225    std::_Destroy(__result, __cur);
7226    throw;
7227  }
7228     }
7229 # 105 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_uninitialized.h" 3
7230   template<typename _InputIterator, typename _ForwardIterator>
7231     inline _ForwardIterator
7232     uninitialized_copy(_InputIterator __first, _InputIterator __last,
7233          _ForwardIterator __result)
7234     {
7235       typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
7236       typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
7237       return std::__uninitialized_copy_aux(__first, __last, __result,
7238         _Is_POD());
7239     }
7240
7241   inline char*
7242   uninitialized_copy(const char* __first, const char* __last, char* __result)
7243   {
7244     std::memmove(__result, __first, __last - __first);
7245     return __result + (__last - __first);
7246   }
7247
7248   inline wchar_t*
7249   uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
7250        wchar_t* __result)
7251   {
7252     std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
7253     return __result + (__last - __first);
7254   }
7255
7256
7257
7258   template<typename _ForwardIterator, typename _Tp>
7259     inline void
7260     __uninitialized_fill_aux(_ForwardIterator __first,
7261         _ForwardIterator __last,
7262         const _Tp& __x, __true_type)
7263     { std::fill(__first, __last, __x); }
7264
7265   template<typename _ForwardIterator, typename _Tp>
7266     void
7267     __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
7268         const _Tp& __x, __false_type)
7269     {
7270       _ForwardIterator __cur = __first;
7271       try
7272  {
7273    for (; __cur != __last; ++__cur)
7274      std::_Construct(&*__cur, __x);
7275  }
7276       catch(...)
7277  {
7278    std::_Destroy(__first, __cur);
7279    throw;
7280  }
7281     }
7282 # 167 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_uninitialized.h" 3
7283   template<typename _ForwardIterator, typename _Tp>
7284     inline void
7285     uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
7286          const _Tp& __x)
7287     {
7288       typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
7289       typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
7290       std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
7291     }
7292
7293
7294
7295   template<typename _ForwardIterator, typename _Size, typename _Tp>
7296     inline void
7297     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
7298           const _Tp& __x, __true_type)
7299     { std::fill_n(__first, __n, __x); }
7300
7301   template<typename _ForwardIterator, typename _Size, typename _Tp>
7302     void
7303     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
7304           const _Tp& __x, __false_type)
7305     {
7306       _ForwardIterator __cur = __first;
7307       try
7308  {
7309    for (; __n > 0; --__n, ++__cur)
7310      std::_Construct(&*__cur, __x);
7311  }
7312       catch(...)
7313  {
7314    std::_Destroy(__first, __cur);
7315    throw;
7316  }
7317     }
7318 # 212 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_uninitialized.h" 3
7319   template<typename _ForwardIterator, typename _Size, typename _Tp>
7320     inline void
7321     uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
7322     {
7323       typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
7324       typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
7325       std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
7326     }
7327
7328
7329
7330
7331
7332
7333
7334   template<typename _InputIterator, typename _ForwardIterator,
7335     typename _Allocator>
7336     _ForwardIterator
7337     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
7338       _ForwardIterator __result,
7339       _Allocator __alloc)
7340     {
7341       _ForwardIterator __cur = __result;
7342       try
7343  {
7344    for (; __first != __last; ++__first, ++__cur)
7345      __alloc.construct(&*__cur, *__first);
7346    return __cur;
7347  }
7348       catch(...)
7349  {
7350    std::_Destroy(__result, __cur, __alloc);
7351    throw;
7352  }
7353     }
7354
7355   template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
7356     inline _ForwardIterator
7357     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
7358       _ForwardIterator __result,
7359       allocator<_Tp>)
7360     {
7361       return std::uninitialized_copy(__first, __last, __result);
7362     }
7363
7364   template<typename _ForwardIterator, typename _Tp, typename _Allocator>
7365     void
7366     __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
7367       const _Tp& __x, _Allocator __alloc)
7368     {
7369       _ForwardIterator __cur = __first;
7370       try
7371  {
7372    for (; __cur != __last; ++__cur)
7373      __alloc.construct(&*__cur, __x);
7374  }
7375       catch(...)
7376  {
7377    std::_Destroy(__first, __cur, __alloc);
7378    throw;
7379  }
7380     }
7381
7382   template<typename _ForwardIterator, typename _Tp, typename _Tp2>
7383     inline void
7384     __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
7385       const _Tp& __x, allocator<_Tp2>)
7386     {
7387       std::uninitialized_fill(__first, __last, __x);
7388     }
7389
7390   template<typename _ForwardIterator, typename _Size, typename _Tp,
7391     typename _Allocator>
7392     void
7393     __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
7394         const _Tp& __x,
7395         _Allocator __alloc)
7396     {
7397       _ForwardIterator __cur = __first;
7398       try
7399  {
7400    for (; __n > 0; --__n, ++__cur)
7401      __alloc.construct(&*__cur, __x);
7402  }
7403       catch(...)
7404  {
7405    std::_Destroy(__first, __cur, __alloc);
7406    throw;
7407  }
7408     }
7409
7410   template<typename _ForwardIterator, typename _Size, typename _Tp,
7411     typename _Tp2>
7412     void
7413     __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
7414         const _Tp& __x,
7415         allocator<_Tp2>)
7416     {
7417       std::uninitialized_fill_n(__first, __n, __x);
7418     }
7419 # 323 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_uninitialized.h" 3
7420   template<typename _InputIterator1, typename _InputIterator2,
7421     typename _ForwardIterator, typename _Allocator>
7422     inline _ForwardIterator
7423     __uninitialized_copy_copy(_InputIterator1 __first1,
7424          _InputIterator1 __last1,
7425          _InputIterator2 __first2,
7426          _InputIterator2 __last2,
7427          _ForwardIterator __result,
7428          _Allocator __alloc)
7429     {
7430       _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
7431           __result,
7432           __alloc);
7433       try
7434  {
7435    return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
7436  }
7437       catch(...)
7438  {
7439    std::_Destroy(__result, __mid, __alloc);
7440    throw;
7441  }
7442     }
7443
7444
7445
7446
7447   template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
7448     typename _Allocator>
7449     inline _ForwardIterator
7450     __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
7451          const _Tp& __x, _InputIterator __first,
7452          _InputIterator __last,
7453          _Allocator __alloc)
7454     {
7455       std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
7456       try
7457  {
7458    return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
7459  }
7460       catch(...)
7461  {
7462    std::_Destroy(__result, __mid, __alloc);
7463    throw;
7464  }
7465     }
7466
7467
7468
7469
7470   template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
7471     typename _Allocator>
7472     inline void
7473     __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
7474          _ForwardIterator __first2,
7475          _ForwardIterator __last2, const _Tp& __x,
7476          _Allocator __alloc)
7477     {
7478       _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
7479            __first2,
7480            __alloc);
7481       try
7482  {
7483    std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
7484  }
7485       catch(...)
7486  {
7487    std::_Destroy(__first2, __mid2, __alloc);
7488    throw;
7489  }
7490     }
7491
7492 }
7493 # 70 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
7494 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 1 3
7495 # 68 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7496 namespace std
7497 {
7498
7499
7500
7501
7502
7503   template<typename _Tp, typename _Alloc>
7504     struct _Vector_base
7505     {
7506       typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
7507
7508       struct _Vector_impl
7509       : public _Tp_alloc_type
7510       {
7511  _Tp* _M_start;
7512  _Tp* _M_finish;
7513  _Tp* _M_end_of_storage;
7514  _Vector_impl(_Tp_alloc_type const& __a)
7515  : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
7516  { }
7517       };
7518
7519     public:
7520       typedef _Alloc allocator_type;
7521
7522       _Tp_alloc_type&
7523       _M_get_Tp_allocator()
7524       { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
7525
7526       const _Tp_alloc_type&
7527       _M_get_Tp_allocator() const
7528       { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
7529
7530       allocator_type
7531       get_allocator() const
7532       { return _M_get_Tp_allocator(); }
7533
7534       _Vector_base(const allocator_type& __a)
7535       : _M_impl(__a)
7536       { }
7537
7538       _Vector_base(size_t __n, const allocator_type& __a)
7539       : _M_impl(__a)
7540       {
7541  this->_M_impl._M_start = this->_M_allocate(__n);
7542  this->_M_impl._M_finish = this->_M_impl._M_start;
7543  this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
7544       }
7545
7546       ~_Vector_base()
7547       { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
7548         - this->_M_impl._M_start); }
7549
7550     public:
7551       _Vector_impl _M_impl;
7552
7553       _Tp*
7554       _M_allocate(size_t __n)
7555       { return _M_impl.allocate(__n); }
7556
7557       void
7558       _M_deallocate(_Tp* __p, size_t __n)
7559       {
7560  if (__p)
7561    _M_impl.deallocate(__p, __n);
7562       }
7563     };
7564 # 157 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7565   template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
7566     class vector : protected _Vector_base<_Tp, _Alloc>
7567     {
7568
7569       typedef typename _Alloc::value_type _Alloc_value_type;
7570      
7571      
7572
7573       typedef _Vector_base<_Tp, _Alloc> _Base;
7574       typedef vector<_Tp, _Alloc> vector_type;
7575       typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
7576
7577     public:
7578       typedef _Tp value_type;
7579       typedef typename _Tp_alloc_type::pointer pointer;
7580       typedef typename _Tp_alloc_type::const_pointer const_pointer;
7581       typedef typename _Tp_alloc_type::reference reference;
7582       typedef typename _Tp_alloc_type::const_reference const_reference;
7583       typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
7584       typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>
7585       const_iterator;
7586       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
7587       typedef std::reverse_iterator<iterator> reverse_iterator;
7588       typedef size_t size_type;
7589       typedef ptrdiff_t difference_type;
7590       typedef _Alloc allocator_type;
7591
7592     protected:
7593
7594
7595
7596
7597
7598       using _Base::_M_allocate;
7599       using _Base::_M_deallocate;
7600       using _Base::_M_impl;
7601       using _Base::_M_get_Tp_allocator;
7602
7603     public:
7604
7605
7606
7607
7608
7609       explicit
7610       vector(const allocator_type& __a = allocator_type())
7611       : _Base(__a)
7612       { }
7613 # 213 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7614       explicit
7615       vector(size_type __n, const value_type& __value = value_type(),
7616       const allocator_type& __a = allocator_type())
7617       : _Base(__n, __a)
7618       {
7619  std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
7620           _M_get_Tp_allocator());
7621  this->_M_impl._M_finish = this->_M_impl._M_start + __n;
7622       }
7623 # 232 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7624       vector(const vector& __x)
7625       : _Base(__x.size(), __x.get_allocator())
7626       { this->_M_impl._M_finish =
7627    std::__uninitialized_copy_a(__x.begin(), __x.end(),
7628           this->_M_impl._M_start,
7629           _M_get_Tp_allocator());
7630       }
7631 # 255 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7632       template<typename _InputIterator>
7633         vector(_InputIterator __first, _InputIterator __last,
7634         const allocator_type& __a = allocator_type())
7635  : _Base(__a)
7636         {
7637
7638    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
7639    _M_initialize_dispatch(__first, __last, _Integral());
7640  }
7641
7642
7643
7644
7645
7646
7647
7648       ~vector()
7649       { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
7650         _M_get_Tp_allocator());
7651       }
7652 # 284 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7653       vector&
7654       operator=(const vector& __x);
7655 # 297 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7656       void
7657       assign(size_type __n, const value_type& __val)
7658       { _M_fill_assign(__n, __val); }
7659 # 313 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7660       template<typename _InputIterator>
7661         void
7662         assign(_InputIterator __first, _InputIterator __last)
7663         {
7664
7665    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
7666    _M_assign_dispatch(__first, __last, _Integral());
7667  }
7668
7669
7670       using _Base::get_allocator;
7671
7672
7673
7674
7675
7676
7677
7678       iterator
7679       begin()
7680       { return iterator (this->_M_impl._M_start); }
7681
7682
7683
7684
7685
7686
7687       const_iterator
7688       begin() const
7689       { return const_iterator (this->_M_impl._M_start); }
7690
7691
7692
7693
7694
7695
7696       iterator
7697       end()
7698       { return iterator (this->_M_impl._M_finish); }
7699
7700
7701
7702
7703
7704
7705       const_iterator
7706       end() const
7707       { return const_iterator (this->_M_impl._M_finish); }
7708
7709
7710
7711
7712
7713
7714       reverse_iterator
7715       rbegin()
7716       { return reverse_iterator(end()); }
7717
7718
7719
7720
7721
7722
7723       const_reverse_iterator
7724       rbegin() const
7725       { return const_reverse_iterator(end()); }
7726
7727
7728
7729
7730
7731
7732       reverse_iterator
7733       rend()
7734       { return reverse_iterator(begin()); }
7735
7736
7737
7738
7739
7740
7741       const_reverse_iterator
7742       rend() const
7743       { return const_reverse_iterator(begin()); }
7744
7745
7746
7747       size_type
7748       size() const
7749       { return size_type(end() - begin()); }
7750
7751
7752       size_type
7753       max_size() const
7754       { return size_type(-1) / sizeof(value_type); }
7755 # 420 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7756       void
7757       resize(size_type __new_size, value_type __x = value_type())
7758       {
7759  if (__new_size < size())
7760    erase(begin() + __new_size, end());
7761  else
7762    insert(end(), __new_size - size(), __x);
7763       }
7764
7765
7766
7767
7768
7769       size_type
7770       capacity() const
7771       { return size_type(const_iterator(this->_M_impl._M_end_of_storage)
7772     - begin()); }
7773
7774
7775
7776
7777
7778       bool
7779       empty() const
7780       { return begin() == end(); }
7781 # 463 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7782       void
7783       reserve(size_type __n);
7784 # 478 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7785       reference
7786       operator[](size_type __n)
7787       { return *(begin() + __n); }
7788 # 493 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7789       const_reference
7790       operator[](size_type __n) const
7791       { return *(begin() + __n); }
7792
7793     protected:
7794
7795       void
7796       _M_range_check(size_type __n) const
7797       {
7798  if (__n >= this->size())
7799    __throw_out_of_range(("vector::_M_range_check"));
7800       }
7801
7802     public:
7803 # 518 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7804       reference
7805       at(size_type __n)
7806       {
7807  _M_range_check(__n);
7808  return (*this)[__n];
7809       }
7810 # 536 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7811       const_reference
7812       at(size_type __n) const
7813       {
7814  _M_range_check(__n);
7815  return (*this)[__n];
7816       }
7817
7818
7819
7820
7821
7822       reference
7823       front()
7824       { return *begin(); }
7825
7826
7827
7828
7829
7830       const_reference
7831       front() const
7832       { return *begin(); }
7833
7834
7835
7836
7837
7838       reference
7839       back()
7840       { return *(end() - 1); }
7841
7842
7843
7844
7845
7846       const_reference
7847       back() const
7848       { return *(end() - 1); }
7849 # 582 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7850       pointer
7851       data()
7852       { return pointer(this->_M_impl._M_start); }
7853
7854       const_pointer
7855       data() const
7856       { return const_pointer(this->_M_impl._M_start); }
7857 # 601 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7858       void
7859       push_back(const value_type& __x)
7860       {
7861  if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
7862    {
7863      this->_M_impl.construct(this->_M_impl._M_finish, __x);
7864      ++this->_M_impl._M_finish;
7865    }
7866  else
7867    _M_insert_aux(end(), __x);
7868       }
7869 # 622 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7870       void
7871       pop_back()
7872       {
7873  --this->_M_impl._M_finish;
7874  this->_M_impl.destroy(this->_M_impl._M_finish);
7875       }
7876 # 640 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7877       iterator
7878       insert(iterator __position, const value_type& __x);
7879 # 656 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7880       void
7881       insert(iterator __position, size_type __n, const value_type& __x)
7882       { _M_fill_insert(__position, __n, __x); }
7883 # 674 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7884       template<typename _InputIterator>
7885         void
7886         insert(iterator __position, _InputIterator __first,
7887         _InputIterator __last)
7888         {
7889
7890    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
7891    _M_insert_dispatch(__position, __first, __last, _Integral());
7892  }
7893 # 699 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7894       iterator
7895       erase(iterator __position);
7896 # 720 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7897       iterator
7898       erase(iterator __first, iterator __last);
7899 # 732 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
7900       void
7901       swap(vector& __x)
7902       {
7903  std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
7904  std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
7905  std::swap(this->_M_impl._M_end_of_storage,
7906     __x._M_impl._M_end_of_storage);
7907       }
7908
7909
7910
7911
7912
7913
7914
7915       void
7916       clear()
7917       {
7918  std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
7919         _M_get_Tp_allocator());
7920  this->_M_impl._M_finish = this->_M_impl._M_start;
7921       }
7922
7923     protected:
7924
7925
7926
7927
7928
7929
7930       template<typename _ForwardIterator>
7931         pointer
7932         _M_allocate_and_copy(size_type __n,
7933         _ForwardIterator __first, _ForwardIterator __last)
7934         {
7935    pointer __result = this->_M_allocate(__n);
7936    try
7937      {
7938        std::__uninitialized_copy_a(__first, __last, __result,
7939        _M_get_Tp_allocator());
7940        return __result;
7941      }
7942    catch(...)
7943      {
7944        _M_deallocate(__result, __n);
7945        throw;
7946      }
7947  }
7948
7949
7950
7951
7952
7953       template<typename _Integer>
7954         void
7955         _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type)
7956         {
7957    this->_M_impl._M_start = _M_allocate(__n);
7958    this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
7959    std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
7960      _M_get_Tp_allocator());
7961    this->_M_impl._M_finish = this->_M_impl._M_end_of_storage;
7962  }
7963
7964
7965       template<typename _InputIterator>
7966         void
7967         _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
7968           __false_type)
7969         {
7970    typedef typename std::iterator_traits<_InputIterator>::
7971      iterator_category _IterCategory;
7972    _M_range_initialize(__first, __last, _IterCategory());
7973  }
7974
7975
7976       template<typename _InputIterator>
7977         void
7978         _M_range_initialize(_InputIterator __first,
7979        _InputIterator __last, std::input_iterator_tag)
7980         {
7981    for (; __first != __last; ++__first)
7982      push_back(*__first);
7983  }
7984
7985
7986       template<typename _ForwardIterator>
7987         void
7988         _M_range_initialize(_ForwardIterator __first,
7989        _ForwardIterator __last, std::forward_iterator_tag)
7990         {
7991    const size_type __n = std::distance(__first, __last);
7992    this->_M_impl._M_start = this->_M_allocate(__n);
7993    this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
7994    this->_M_impl._M_finish =
7995      std::__uninitialized_copy_a(__first, __last,
7996      this->_M_impl._M_start,
7997      _M_get_Tp_allocator());
7998  }
7999
8000
8001
8002
8003
8004
8005       template<typename _Integer>
8006         void
8007         _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
8008         {
8009    _M_fill_assign(static_cast<size_type>(__n),
8010     static_cast<value_type>(__val));
8011  }
8012
8013
8014       template<typename _InputIterator>
8015         void
8016         _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
8017       __false_type)
8018         {
8019    typedef typename std::iterator_traits<_InputIterator>::
8020      iterator_category _IterCategory;
8021    _M_assign_aux(__first, __last, _IterCategory());
8022  }
8023
8024
8025       template<typename _InputIterator>
8026         void
8027         _M_assign_aux(_InputIterator __first, _InputIterator __last,
8028         std::input_iterator_tag);
8029
8030
8031       template<typename _ForwardIterator>
8032         void
8033         _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
8034         std::forward_iterator_tag);
8035
8036
8037
8038       void
8039       _M_fill_assign(size_type __n, const value_type& __val);
8040
8041
8042
8043
8044
8045       template<typename _Integer>
8046         void
8047         _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val,
8048       __true_type)
8049         {
8050    _M_fill_insert(__pos, static_cast<size_type>(__n),
8051     static_cast<value_type>(__val));
8052  }
8053
8054
8055       template<typename _InputIterator>
8056         void
8057         _M_insert_dispatch(iterator __pos, _InputIterator __first,
8058       _InputIterator __last, __false_type)
8059         {
8060    typedef typename std::iterator_traits<_InputIterator>::
8061      iterator_category _IterCategory;
8062    _M_range_insert(__pos, __first, __last, _IterCategory());
8063  }
8064
8065
8066       template<typename _InputIterator>
8067         void
8068         _M_range_insert(iterator __pos, _InputIterator __first,
8069    _InputIterator __last, std::input_iterator_tag);
8070
8071
8072       template<typename _ForwardIterator>
8073         void
8074         _M_range_insert(iterator __pos, _ForwardIterator __first,
8075    _ForwardIterator __last, std::forward_iterator_tag);
8076
8077
8078
8079       void
8080       _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
8081
8082
8083       void
8084       _M_insert_aux(iterator __position, const value_type& __x);
8085     };
8086 # 930 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
8087   template<typename _Tp, typename _Alloc>
8088     inline bool
8089     operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
8090     { return (__x.size() == __y.size()
8091        && std::equal(__x.begin(), __x.end(), __y.begin())); }
8092 # 947 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_vector.h" 3
8093   template<typename _Tp, typename _Alloc>
8094     inline bool
8095     operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
8096     { return std::lexicographical_compare(__x.begin(), __x.end(),
8097        __y.begin(), __y.end()); }
8098
8099
8100   template<typename _Tp, typename _Alloc>
8101     inline bool
8102     operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
8103     { return !(__x == __y); }
8104
8105
8106   template<typename _Tp, typename _Alloc>
8107     inline bool
8108     operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
8109     { return __y < __x; }
8110
8111
8112   template<typename _Tp, typename _Alloc>
8113     inline bool
8114     operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
8115     { return !(__y < __x); }
8116
8117
8118   template<typename _Tp, typename _Alloc>
8119     inline bool
8120     operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
8121     { return !(__x < __y); }
8122
8123
8124   template<typename _Tp, typename _Alloc>
8125     inline void
8126     swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
8127     { __x.swap(__y); }
8128 }
8129 # 71 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
8130 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_bvector.h" 1 3
8131 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_bvector.h" 3
8132 namespace std
8133 {
8134   typedef unsigned long _Bit_type;
8135   enum { _S_word_bit = int(8 * sizeof(_Bit_type)) };
8136
8137   struct _Bit_reference
8138   {
8139     _Bit_type * _M_p;
8140     _Bit_type _M_mask;
8141
8142     _Bit_reference(_Bit_type * __x, _Bit_type __y)
8143     : _M_p(__x), _M_mask(__y) { }
8144
8145     _Bit_reference() : _M_p(0), _M_mask(0) { }
8146
8147     operator bool() const
8148     { return !!(*_M_p & _M_mask); }
8149
8150     _Bit_reference&
8151     operator=(bool __x)
8152     {
8153       if (__x)
8154  *_M_p |= _M_mask;
8155       else
8156  *_M_p &= ~_M_mask;
8157       return *this;
8158     }
8159
8160     _Bit_reference&
8161     operator=(const _Bit_reference& __x)
8162     { return *this = bool(__x); }
8163
8164     bool
8165     operator==(const _Bit_reference& __x) const
8166     { return bool(*this) == bool(__x); }
8167
8168     bool
8169     operator<(const _Bit_reference& __x) const
8170     { return !bool(*this) && bool(__x); }
8171
8172     void
8173     flip()
8174     { *_M_p ^= _M_mask; }
8175   };
8176
8177   struct _Bit_iterator_base
8178   : public std::iterator<std::random_access_iterator_tag, bool>
8179   {
8180     _Bit_type * _M_p;
8181     unsigned int _M_offset;
8182
8183     _Bit_iterator_base(_Bit_type * __x, unsigned int __y)
8184     : _M_p(__x), _M_offset(__y) { }
8185
8186     void
8187     _M_bump_up()
8188     {
8189       if (_M_offset++ == int(_S_word_bit) - 1)
8190  {
8191    _M_offset = 0;
8192    ++_M_p;
8193  }
8194     }
8195
8196     void
8197     _M_bump_down()
8198     {
8199       if (_M_offset-- == 0)
8200  {
8201    _M_offset = int(_S_word_bit) - 1;
8202    --_M_p;
8203  }
8204     }
8205
8206     void
8207     _M_incr(ptrdiff_t __i)
8208     {
8209       difference_type __n = __i + _M_offset;
8210       _M_p += __n / int(_S_word_bit);
8211       __n = __n % int(_S_word_bit);
8212       if (__n < 0)
8213  {
8214    _M_offset = static_cast<unsigned int>(__n + int(_S_word_bit));
8215    --_M_p;
8216  }
8217       else
8218  _M_offset = static_cast<unsigned int>(__n);
8219     }
8220
8221     bool
8222     operator==(const _Bit_iterator_base& __i) const
8223     { return _M_p == __i._M_p && _M_offset == __i._M_offset; }
8224
8225     bool
8226     operator<(const _Bit_iterator_base& __i) const
8227     {
8228       return _M_p < __i._M_p
8229       || (_M_p == __i._M_p && _M_offset < __i._M_offset);
8230     }
8231
8232     bool
8233     operator!=(const _Bit_iterator_base& __i) const
8234     { return !(*this == __i); }
8235
8236     bool
8237     operator>(const _Bit_iterator_base& __i) const
8238     { return __i < *this; }
8239
8240     bool
8241     operator<=(const _Bit_iterator_base& __i) const
8242     { return !(__i < *this); }
8243
8244     bool
8245     operator>=(const _Bit_iterator_base& __i) const
8246     { return !(*this < __i); }
8247   };
8248
8249   inline ptrdiff_t
8250   operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y)
8251   {
8252     return (int(_S_word_bit) * (__x._M_p - __y._M_p)
8253      + __x._M_offset - __y._M_offset);
8254   }
8255
8256   struct _Bit_iterator : public _Bit_iterator_base
8257   {
8258     typedef _Bit_reference reference;
8259     typedef _Bit_reference* pointer;
8260     typedef _Bit_iterator iterator;
8261
8262     _Bit_iterator() : _Bit_iterator_base(0, 0) { }
8263
8264     _Bit_iterator(_Bit_type * __x, unsigned int __y)
8265     : _Bit_iterator_base(__x, __y) { }
8266
8267     reference
8268     operator*() const
8269     { return reference(_M_p, 1UL << _M_offset); }
8270
8271     iterator&
8272     operator++()
8273     {
8274       _M_bump_up();
8275       return *this;
8276     }
8277
8278     iterator
8279     operator++(int)
8280     {
8281       iterator __tmp = *this;
8282       _M_bump_up();
8283       return __tmp;
8284     }
8285
8286     iterator&
8287     operator--()
8288     {
8289       _M_bump_down();
8290       return *this;
8291     }
8292
8293     iterator
8294     operator--(int)
8295     {
8296       iterator __tmp = *this;
8297       _M_bump_down();
8298       return __tmp;
8299     }
8300
8301     iterator&
8302     operator+=(difference_type __i)
8303     {
8304       _M_incr(__i);
8305       return *this;
8306     }
8307
8308     iterator&
8309     operator-=(difference_type __i)
8310     {
8311       *this += -__i;
8312       return *this;
8313     }
8314
8315     iterator
8316     operator+(difference_type __i) const
8317     {
8318       iterator __tmp = *this;
8319       return __tmp += __i;
8320     }
8321
8322     iterator
8323     operator-(difference_type __i) const
8324     {
8325       iterator __tmp = *this;
8326       return __tmp -= __i;
8327     }
8328
8329     reference
8330     operator[](difference_type __i) const
8331     { return *(*this + __i); }
8332   };
8333
8334   inline _Bit_iterator
8335   operator+(ptrdiff_t __n, const _Bit_iterator& __x)
8336   { return __x + __n; }
8337
8338   struct _Bit_const_iterator : public _Bit_iterator_base
8339   {
8340     typedef bool reference;
8341     typedef bool const_reference;
8342     typedef const bool* pointer;
8343     typedef _Bit_const_iterator const_iterator;
8344
8345     _Bit_const_iterator() : _Bit_iterator_base(0, 0) { }
8346
8347     _Bit_const_iterator(_Bit_type * __x, unsigned int __y)
8348     : _Bit_iterator_base(__x, __y) { }
8349
8350     _Bit_const_iterator(const _Bit_iterator& __x)
8351     : _Bit_iterator_base(__x._M_p, __x._M_offset) { }
8352
8353     const_reference
8354     operator*() const
8355     { return _Bit_reference(_M_p, 1UL << _M_offset); }
8356
8357     const_iterator&
8358     operator++()
8359     {
8360       _M_bump_up();
8361       return *this;
8362     }
8363
8364     const_iterator
8365     operator++(int)
8366     {
8367       const_iterator __tmp = *this;
8368       _M_bump_up();
8369       return __tmp;
8370     }
8371
8372     const_iterator&
8373     operator--()
8374     {
8375       _M_bump_down();
8376       return *this;
8377     }
8378
8379     const_iterator
8380     operator--(int)
8381     {
8382       const_iterator __tmp = *this;
8383       _M_bump_down();
8384       return __tmp;
8385     }
8386
8387     const_iterator&
8388     operator+=(difference_type __i)
8389     {
8390       _M_incr(__i);
8391       return *this;
8392     }
8393
8394     const_iterator&
8395     operator-=(difference_type __i)
8396     {
8397       *this += -__i;
8398       return *this;
8399     }
8400
8401     const_iterator
8402     operator+(difference_type __i) const
8403     {
8404       const_iterator __tmp = *this;
8405       return __tmp += __i;
8406     }
8407
8408     const_iterator
8409     operator-(difference_type __i) const
8410     {
8411       const_iterator __tmp = *this;
8412       return __tmp -= __i;
8413     }
8414
8415     const_reference
8416     operator[](difference_type __i) const
8417     { return *(*this + __i); }
8418   };
8419
8420   inline _Bit_const_iterator
8421   operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
8422   { return __x + __n; }
8423
8424   template<class _Alloc>
8425     class _Bvector_base
8426     {
8427       typedef typename _Alloc::template rebind<_Bit_type>::other
8428         _Bit_alloc_type;
8429
8430       struct _Bvector_impl : public _Bit_alloc_type
8431       {
8432  _Bit_iterator _M_start;
8433  _Bit_iterator _M_finish;
8434  _Bit_type* _M_end_of_storage;
8435  _Bvector_impl(const _Bit_alloc_type& __a)
8436  : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage(0)
8437  { }
8438       };
8439
8440     public:
8441       typedef _Alloc allocator_type;
8442
8443       allocator_type
8444       get_allocator() const
8445       { return *static_cast<const _Bit_alloc_type*>(&this->_M_impl); }
8446
8447       _Bvector_base(const allocator_type& __a) : _M_impl(__a) { }
8448
8449       ~_Bvector_base()
8450       { this->_M_deallocate(); }
8451
8452     protected:
8453       _Bvector_impl _M_impl;
8454
8455       _Bit_type*
8456       _M_allocate(size_t __n)
8457       { return _M_impl.allocate((__n + int(_S_word_bit) - 1)
8458     / int(_S_word_bit)); }
8459
8460       void
8461       _M_deallocate()
8462       {
8463  if (_M_impl._M_start._M_p)
8464    _M_impl.deallocate(_M_impl._M_start._M_p,
8465         _M_impl._M_end_of_storage - _M_impl._M_start._M_p);
8466       }
8467     };
8468 }
8469
8470
8471
8472
8473 namespace std
8474 {
8475 # 425 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_bvector.h" 3
8476 template<typename _Alloc>
8477   class vector<bool, _Alloc> : public _Bvector_base<_Alloc>
8478   {
8479   public:
8480     typedef bool value_type;
8481     typedef size_t size_type;
8482     typedef ptrdiff_t difference_type;
8483     typedef _Bit_reference reference;
8484     typedef bool const_reference;
8485     typedef _Bit_reference* pointer;
8486     typedef const bool* const_pointer;
8487
8488     typedef _Bit_iterator iterator;
8489     typedef _Bit_const_iterator const_iterator;
8490
8491     typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
8492     typedef std::reverse_iterator<iterator> reverse_iterator;
8493
8494     typedef typename _Bvector_base<_Alloc>::allocator_type allocator_type;
8495
8496     allocator_type get_allocator() const
8497     { return _Bvector_base<_Alloc>::get_allocator(); }
8498
8499   protected:
8500     using _Bvector_base<_Alloc>::_M_allocate;
8501     using _Bvector_base<_Alloc>::_M_deallocate;
8502
8503   protected:
8504     void
8505     _M_initialize(size_type __n)
8506     {
8507       _Bit_type* __q = this->_M_allocate(__n);
8508       this->_M_impl._M_end_of_storage = (__q
8509       + ((__n + int(_S_word_bit) - 1)
8510          / int(_S_word_bit)));
8511       this->_M_impl._M_start = iterator(__q, 0);
8512       this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n);
8513     }
8514
8515     void
8516     _M_insert_aux(iterator __position, bool __x)
8517     {
8518       if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage)
8519  {
8520    std::copy_backward(__position, this->_M_impl._M_finish,
8521         this->_M_impl._M_finish + 1);
8522    *__position = __x;
8523    ++this->_M_impl._M_finish;
8524  }
8525       else
8526  {
8527    const size_type __len = size() ? 2 * size()
8528                                   : static_cast<size_type>(_S_word_bit);
8529    _Bit_type * __q = this->_M_allocate(__len);
8530    iterator __i = std::copy(begin(), __position, iterator(__q, 0));
8531    *__i++ = __x;
8532    this->_M_impl._M_finish = std::copy(__position, end(), __i);
8533    this->_M_deallocate();
8534    this->_M_impl._M_end_of_storage = (__q + ((__len
8535            + int(_S_word_bit) - 1)
8536           / int(_S_word_bit)));
8537    this->_M_impl._M_start = iterator(__q, 0);
8538  }
8539     }
8540
8541     template<class _InputIterator>
8542       void
8543       _M_initialize_range(_InputIterator __first, _InputIterator __last,
8544      std::input_iterator_tag)
8545       {
8546  this->_M_impl._M_start = iterator();
8547  this->_M_impl._M_finish = iterator();
8548  this->_M_impl._M_end_of_storage = 0;
8549  for (; __first != __last; ++__first)
8550    push_back(*__first);
8551       }
8552
8553     template<class _ForwardIterator>
8554       void
8555       _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last,
8556      std::forward_iterator_tag)
8557       {
8558  const size_type __n = std::distance(__first, __last);
8559  _M_initialize(__n);
8560  std::copy(__first, __last, this->_M_impl._M_start);
8561       }
8562
8563     template<class _InputIterator>
8564       void
8565       _M_insert_range(iterator __pos, _InputIterator __first,
8566         _InputIterator __last, std::input_iterator_tag)
8567       {
8568  for (; __first != __last; ++__first)
8569    {
8570      __pos = insert(__pos, *__first);
8571      ++__pos;
8572    }
8573       }
8574
8575     template<class _ForwardIterator>
8576       void
8577       _M_insert_range(iterator __position, _ForwardIterator __first,
8578         _ForwardIterator __last, std::forward_iterator_tag)
8579       {
8580  if (__first != __last)
8581    {
8582      size_type __n = std::distance(__first, __last);
8583      if (capacity() - size() >= __n)
8584        {
8585   std::copy_backward(__position, end(),
8586        this->_M_impl._M_finish
8587        + difference_type(__n));
8588   std::copy(__first, __last, __position);
8589   this->_M_impl._M_finish += difference_type(__n);
8590        }
8591      else
8592        {
8593   const size_type __len = size() + std::max(size(), __n);
8594   _Bit_type * __q = this->_M_allocate(__len);
8595   iterator __i = std::copy(begin(), __position,
8596       iterator(__q, 0));
8597   __i = std::copy(__first, __last, __i);
8598   this->_M_impl._M_finish = std::copy(__position, end(), __i);
8599   this->_M_deallocate();
8600   this->_M_impl._M_end_of_storage = (__q
8601          + ((__len
8602              + int(_S_word_bit) - 1)
8603             / int(_S_word_bit)));
8604   this->_M_impl._M_start = iterator(__q, 0);
8605        }
8606    }
8607       }
8608
8609   public:
8610     iterator
8611     begin()
8612     { return this->_M_impl._M_start; }
8613
8614     const_iterator
8615     begin() const
8616     { return this->_M_impl._M_start; }
8617
8618     iterator
8619     end()
8620     { return this->_M_impl._M_finish; }
8621
8622     const_iterator
8623     end() const
8624     { return this->_M_impl._M_finish; }
8625
8626     reverse_iterator
8627     rbegin()
8628     { return reverse_iterator(end()); }
8629
8630     const_reverse_iterator
8631     rbegin() const
8632     { return const_reverse_iterator(end()); }
8633
8634     reverse_iterator
8635     rend()
8636     { return reverse_iterator(begin()); }
8637
8638     const_reverse_iterator
8639     rend() const
8640     { return const_reverse_iterator(begin()); }
8641
8642     size_type
8643     size() const
8644     { return size_type(end() - begin()); }
8645
8646     size_type
8647     max_size() const
8648     { return size_type(-1); }
8649
8650     size_type
8651     capacity() const
8652     { return size_type(const_iterator(this->_M_impl._M_end_of_storage, 0)
8653          - begin()); }
8654     bool
8655     empty() const
8656     { return begin() == end(); }
8657
8658     reference
8659     operator[](size_type __n)
8660     { return *(begin() + difference_type(__n)); }
8661
8662     const_reference
8663     operator[](size_type __n) const
8664     { return *(begin() + difference_type(__n)); }
8665
8666     void
8667     _M_range_check(size_type __n) const
8668     {
8669       if (__n >= this->size())
8670         __throw_out_of_range(("vector<bool>::_M_range_check"));
8671     }
8672
8673     reference
8674     at(size_type __n)
8675     { _M_range_check(__n); return (*this)[__n]; }
8676
8677     const_reference
8678     at(size_type __n) const
8679     { _M_range_check(__n); return (*this)[__n]; }
8680
8681     explicit
8682     vector(const allocator_type& __a = allocator_type())
8683     : _Bvector_base<_Alloc>(__a) { }
8684
8685     vector(size_type __n, bool __value,
8686     const allocator_type& __a = allocator_type())
8687     : _Bvector_base<_Alloc>(__a)
8688     {
8689       _M_initialize(__n);
8690       std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage,
8691   __value ? ~0 : 0);
8692     }
8693
8694     explicit
8695     vector(size_type __n)
8696     : _Bvector_base<_Alloc>(allocator_type())
8697     {
8698       _M_initialize(__n);
8699       std::fill(this->_M_impl._M_start._M_p,
8700   this->_M_impl._M_end_of_storage, 0);
8701     }
8702
8703     vector(const vector& __x)
8704     : _Bvector_base<_Alloc>(__x.get_allocator())
8705     {
8706       _M_initialize(__x.size());
8707       std::copy(__x.begin(), __x.end(), this->_M_impl._M_start);
8708     }
8709
8710
8711     template<class _Integer>
8712       void
8713       _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
8714       {
8715  _M_initialize(__n);
8716  std::fill(this->_M_impl._M_start._M_p,
8717     this->_M_impl._M_end_of_storage, __x ? ~0 : 0);
8718       }
8719
8720     template<class _InputIterator>
8721       void
8722       _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
8723         __false_type)
8724       { _M_initialize_range(__first, __last,
8725        std::__iterator_category(__first)); }
8726
8727     template<class _InputIterator>
8728       vector(_InputIterator __first, _InputIterator __last,
8729       const allocator_type& __a = allocator_type())
8730       : _Bvector_base<_Alloc>(__a)
8731       {
8732  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
8733  _M_initialize_dispatch(__first, __last, _Integral());
8734       }
8735
8736     ~vector() { }
8737
8738     vector&
8739     operator=(const vector& __x)
8740     {
8741       if (&__x == this)
8742  return *this;
8743       if (__x.size() > capacity())
8744  {
8745    this->_M_deallocate();
8746    _M_initialize(__x.size());
8747  }
8748       std::copy(__x.begin(), __x.end(), begin());
8749       this->_M_impl._M_finish = begin() + difference_type(__x.size());
8750       return *this;
8751     }
8752
8753
8754
8755
8756
8757
8758     void
8759     _M_fill_assign(size_t __n, bool __x)
8760     {
8761       if (__n > size())
8762  {
8763    std::fill(this->_M_impl._M_start._M_p,
8764       this->_M_impl._M_end_of_storage, __x ? ~0 : 0);
8765    insert(end(), __n - size(), __x);
8766  }
8767       else
8768  {
8769    erase(begin() + __n, end());
8770    std::fill(this->_M_impl._M_start._M_p,
8771       this->_M_impl._M_end_of_storage, __x ? ~0 : 0);
8772  }
8773     }
8774
8775     void
8776     assign(size_t __n, bool __x)
8777     { _M_fill_assign(__n, __x); }
8778
8779     template<class _InputIterator>
8780       void
8781       assign(_InputIterator __first, _InputIterator __last)
8782       {
8783  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
8784  _M_assign_dispatch(__first, __last, _Integral());
8785       }
8786
8787     template<class _Integer>
8788       void
8789       _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
8790       { _M_fill_assign((size_t) __n, (bool) __val); }
8791
8792     template<class _InputIterator>
8793       void
8794       _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
8795     __false_type)
8796       { _M_assign_aux(__first, __last, std::__iterator_category(__first)); }
8797
8798     template<class _InputIterator>
8799       void
8800       _M_assign_aux(_InputIterator __first, _InputIterator __last,
8801       std::input_iterator_tag)
8802       {
8803  iterator __cur = begin();
8804  for (; __first != __last && __cur != end(); ++__cur, ++__first)
8805    *__cur = *__first;
8806  if (__first == __last)
8807    erase(__cur, end());
8808  else
8809    insert(end(), __first, __last);
8810       }
8811
8812     template<class _ForwardIterator>
8813       void
8814       _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
8815       std::forward_iterator_tag)
8816       {
8817  const size_type __len = std::distance(__first, __last);
8818  if (__len < size())
8819    erase(std::copy(__first, __last, begin()), end());
8820  else
8821    {
8822      _ForwardIterator __mid = __first;
8823      std::advance(__mid, size());
8824      std::copy(__first, __mid, begin());
8825      insert(end(), __mid, __last);
8826    }
8827       }
8828
8829     void
8830     reserve(size_type __n)
8831     {
8832       if (__n > this->max_size())
8833  __throw_length_error(("vector::reserve"));
8834       if (this->capacity() < __n)
8835  {
8836    _Bit_type* __q = this->_M_allocate(__n);
8837    this->_M_impl._M_finish = std::copy(begin(), end(),
8838            iterator(__q, 0));
8839    this->_M_deallocate();
8840    this->_M_impl._M_start = iterator(__q, 0);
8841    this->_M_impl._M_end_of_storage = (__q + (__n + int(_S_word_bit) - 1)
8842           / int(_S_word_bit));
8843  }
8844     }
8845
8846     reference
8847     front()
8848     { return *begin(); }
8849
8850     const_reference
8851     front() const
8852     { return *begin(); }
8853
8854     reference
8855     back()
8856     { return *(end() - 1); }
8857
8858     const_reference
8859     back() const
8860     { return *(end() - 1); }
8861
8862
8863
8864
8865
8866
8867     void
8868     data() { }
8869
8870     void
8871     push_back(bool __x)
8872     {
8873       if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage)
8874         *this->_M_impl._M_finish++ = __x;
8875       else
8876         _M_insert_aux(end(), __x);
8877     }
8878
8879     void
8880     swap(vector<bool, _Alloc>& __x)
8881     {
8882       std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
8883       std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
8884       std::swap(this->_M_impl._M_end_of_storage,
8885   __x._M_impl._M_end_of_storage);
8886     }
8887
8888
8889     static void
8890     swap(reference __x, reference __y)
8891     {
8892       bool __tmp = __x;
8893       __x = __y;
8894       __y = __tmp;
8895     }
8896
8897     iterator
8898     insert(iterator __position, bool __x = bool())
8899     {
8900       const difference_type __n = __position - begin();
8901       if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage
8902    && __position == end())
8903         *this->_M_impl._M_finish++ = __x;
8904       else
8905         _M_insert_aux(__position, __x);
8906       return begin() + __n;
8907     }
8908
8909
8910
8911     template<class _Integer>
8912       void
8913       _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
8914     __true_type)
8915       { _M_fill_insert(__pos, __n, __x); }
8916
8917     template<class _InputIterator>
8918       void
8919       _M_insert_dispatch(iterator __pos,
8920     _InputIterator __first, _InputIterator __last,
8921     __false_type)
8922       { _M_insert_range(__pos, __first, __last,
8923    std::__iterator_category(__first)); }
8924
8925     template<class _InputIterator>
8926       void
8927       insert(iterator __position,
8928       _InputIterator __first, _InputIterator __last)
8929       {
8930  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
8931  _M_insert_dispatch(__position, __first, __last, _Integral());
8932       }
8933
8934     void
8935     _M_fill_insert(iterator __position, size_type __n, bool __x)
8936     {
8937       if (__n == 0)
8938  return;
8939       if (capacity() - size() >= __n)
8940  {
8941    std::copy_backward(__position, end(),
8942         this->_M_impl._M_finish + difference_type(__n));
8943    std::fill(__position, __position + difference_type(__n), __x);
8944    this->_M_impl._M_finish += difference_type(__n);
8945  }
8946       else
8947  {
8948    const size_type __len = size() + std::max(size(), __n);
8949    _Bit_type * __q = this->_M_allocate(__len);
8950    iterator __i = std::copy(begin(), __position, iterator(__q, 0));
8951    std::fill_n(__i, __n, __x);
8952    this->_M_impl._M_finish = std::copy(__position, end(),
8953            __i + difference_type(__n));
8954    this->_M_deallocate();
8955    this->_M_impl._M_end_of_storage = (__q + ((__len
8956            + int(_S_word_bit) - 1)
8957           / int(_S_word_bit)));
8958    this->_M_impl._M_start = iterator(__q, 0);
8959  }
8960     }
8961
8962     void
8963     insert(iterator __position, size_type __n, bool __x)
8964     { _M_fill_insert(__position, __n, __x); }
8965
8966     void
8967     pop_back()
8968     { --this->_M_impl._M_finish; }
8969
8970     iterator
8971     erase(iterator __position)
8972     {
8973       if (__position + 1 != end())
8974         std::copy(__position + 1, end(), __position);
8975       --this->_M_impl._M_finish;
8976       return __position;
8977     }
8978
8979     iterator
8980     erase(iterator __first, iterator __last)
8981     {
8982       this->_M_impl._M_finish = std::copy(__last, end(), __first);
8983       return __first;
8984     }
8985
8986     void
8987     resize(size_type __new_size, bool __x = bool())
8988     {
8989       if (__new_size < size())
8990         erase(begin() + difference_type(__new_size), end());
8991       else
8992         insert(end(), __new_size - size(), __x);
8993     }
8994
8995     void
8996     flip()
8997     {
8998       for (_Bit_type * __p = this->_M_impl._M_start._M_p;
8999     __p != this->_M_impl._M_end_of_storage; ++__p)
9000         *__p = ~*__p;
9001     }
9002
9003     void
9004     clear()
9005     { erase(begin(), end()); }
9006   };
9007 }
9008 # 72 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
9009
9010
9011 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/vector.tcc" 1 3
9012 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/vector.tcc" 3
9013 namespace std
9014 {
9015   template<typename _Tp, typename _Alloc>
9016     void
9017     vector<_Tp, _Alloc>::
9018     reserve(size_type __n)
9019     {
9020       if (__n > this->max_size())
9021  __throw_length_error(("vector::reserve"));
9022       if (this->capacity() < __n)
9023  {
9024    const size_type __old_size = size();
9025    pointer __tmp = _M_allocate_and_copy(__n,
9026             this->_M_impl._M_start,
9027             this->_M_impl._M_finish);
9028    std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
9029    _M_get_Tp_allocator());
9030    _M_deallocate(this->_M_impl._M_start,
9031    this->_M_impl._M_end_of_storage
9032    - this->_M_impl._M_start);
9033    this->_M_impl._M_start = __tmp;
9034    this->_M_impl._M_finish = __tmp + __old_size;
9035    this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
9036  }
9037     }
9038
9039   template<typename _Tp, typename _Alloc>
9040     typename vector<_Tp, _Alloc>::iterator
9041     vector<_Tp, _Alloc>::
9042     insert(iterator __position, const value_type& __x)
9043     {
9044       const size_type __n = __position - begin();
9045       if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage
9046    && __position == end())
9047  {
9048    this->_M_impl.construct(this->_M_impl._M_finish, __x);
9049    ++this->_M_impl._M_finish;
9050  }
9051       else
9052         _M_insert_aux(__position, __x);
9053       return begin() + __n;
9054     }
9055
9056   template<typename _Tp, typename _Alloc>
9057     typename vector<_Tp, _Alloc>::iterator
9058     vector<_Tp, _Alloc>::
9059     erase(iterator __position)
9060     {
9061       if (__position + 1 != end())
9062         std::copy(__position + 1, end(), __position);
9063       --this->_M_impl._M_finish;
9064       this->_M_impl.destroy(this->_M_impl._M_finish);
9065       return __position;
9066     }
9067
9068   template<typename _Tp, typename _Alloc>
9069     typename vector<_Tp, _Alloc>::iterator
9070     vector<_Tp, _Alloc>::
9071     erase(iterator __first, iterator __last)
9072     {
9073       iterator __i(std::copy(__last, end(), __first));
9074       std::_Destroy(__i, end(), _M_get_Tp_allocator());
9075       this->_M_impl._M_finish = this->_M_impl._M_finish - (__last - __first);
9076       return __first;
9077     }
9078
9079   template<typename _Tp, typename _Alloc>
9080     vector<_Tp, _Alloc>&
9081     vector<_Tp, _Alloc>::
9082     operator=(const vector<_Tp, _Alloc>& __x)
9083     {
9084       if (&__x != this)
9085  {
9086    const size_type __xlen = __x.size();
9087    if (__xlen > capacity())
9088      {
9089        pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(),
9090          __x.end());
9091        std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
9092        _M_get_Tp_allocator());
9093        _M_deallocate(this->_M_impl._M_start,
9094        this->_M_impl._M_end_of_storage
9095        - this->_M_impl._M_start);
9096        this->_M_impl._M_start = __tmp;
9097        this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen;
9098      }
9099    else if (size() >= __xlen)
9100      {
9101        iterator __i(std::copy(__x.begin(), __x.end(), begin()));
9102        std::_Destroy(__i, end(), _M_get_Tp_allocator());
9103      }
9104    else
9105      {
9106        std::copy(__x.begin(), __x.begin() + size(),
9107    this->_M_impl._M_start);
9108        std::__uninitialized_copy_a(__x.begin() + size(),
9109        __x.end(), this->_M_impl._M_finish,
9110        _M_get_Tp_allocator());
9111      }
9112    this->_M_impl._M_finish = this->_M_impl._M_start + __xlen;
9113  }
9114       return *this;
9115     }
9116
9117   template<typename _Tp, typename _Alloc>
9118     void
9119     vector<_Tp, _Alloc>::
9120     _M_fill_assign(size_t __n, const value_type& __val)
9121     {
9122       if (__n > capacity())
9123  {
9124    vector __tmp(__n, __val, _M_get_Tp_allocator());
9125    __tmp.swap(*this);
9126  }
9127       else if (__n > size())
9128  {
9129    std::fill(begin(), end(), __val);
9130    std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
9131      __n - size(), __val,
9132      _M_get_Tp_allocator());
9133    this->_M_impl._M_finish += __n - size();
9134  }
9135       else
9136         erase(std::fill_n(begin(), __n, __val), end());
9137     }
9138
9139   template<typename _Tp, typename _Alloc>
9140     template<typename _InputIterator>
9141       void
9142       vector<_Tp, _Alloc>::
9143       _M_assign_aux(_InputIterator __first, _InputIterator __last,
9144       std::input_iterator_tag)
9145       {
9146  iterator __cur(begin());
9147  for (; __first != __last && __cur != end(); ++__cur, ++__first)
9148    *__cur = *__first;
9149  if (__first == __last)
9150    erase(__cur, end());
9151  else
9152    insert(end(), __first, __last);
9153       }
9154
9155   template<typename _Tp, typename _Alloc>
9156     template<typename _ForwardIterator>
9157       void
9158       vector<_Tp, _Alloc>::
9159       _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
9160       std::forward_iterator_tag)
9161       {
9162  const size_type __len = std::distance(__first, __last);
9163
9164  if (__len > capacity())
9165    {
9166      pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
9167      std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
9168      _M_get_Tp_allocator());
9169      _M_deallocate(this->_M_impl._M_start,
9170      this->_M_impl._M_end_of_storage
9171      - this->_M_impl._M_start);
9172      this->_M_impl._M_start = __tmp;
9173      this->_M_impl._M_finish = this->_M_impl._M_start + __len;
9174      this->_M_impl._M_end_of_storage = this->_M_impl._M_finish;
9175    }
9176  else if (size() >= __len)
9177    {
9178      iterator __new_finish(std::copy(__first, __last,
9179            this->_M_impl._M_start));
9180      std::_Destroy(__new_finish, end(), _M_get_Tp_allocator());
9181      this->_M_impl._M_finish = __new_finish.base();
9182    }
9183  else
9184    {
9185      _ForwardIterator __mid = __first;
9186      std::advance(__mid, size());
9187      std::copy(__first, __mid, this->_M_impl._M_start);
9188      this->_M_impl._M_finish =
9189        std::__uninitialized_copy_a(__mid, __last,
9190        this->_M_impl._M_finish,
9191        _M_get_Tp_allocator());
9192    }
9193       }
9194
9195   template<typename _Tp, typename _Alloc>
9196     void
9197     vector<_Tp, _Alloc>::
9198     _M_insert_aux(iterator __position, const _Tp& __x)
9199     {
9200       if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
9201  {
9202    this->_M_impl.construct(this->_M_impl._M_finish,
9203       *(this->_M_impl._M_finish - 1));
9204    ++this->_M_impl._M_finish;
9205    _Tp __x_copy = __x;
9206    std::copy_backward(__position,
9207         iterator(this->_M_impl._M_finish-2),
9208         iterator(this->_M_impl._M_finish-1));
9209    *__position = __x_copy;
9210  }
9211       else
9212  {
9213    const size_type __old_size = size();
9214    if (__old_size == this->max_size())
9215      __throw_length_error(("vector::_M_insert_aux"));
9216
9217
9218
9219
9220    size_type __len = __old_size != 0 ? 2 * __old_size : 1;
9221    if (__len < __old_size)
9222      __len = this->max_size();
9223
9224    iterator __new_start(this->_M_allocate(__len));
9225    iterator __new_finish(__new_start);
9226    try
9227      {
9228        __new_finish =
9229   std::__uninitialized_copy_a(iterator(this->_M_impl._M_start),
9230          __position,
9231          __new_start,
9232          _M_get_Tp_allocator());
9233        this->_M_impl.construct(__new_finish.base(), __x);
9234        ++__new_finish;
9235        __new_finish =
9236   std::__uninitialized_copy_a(__position,
9237          iterator(this->_M_impl._M_finish),
9238          __new_finish,
9239          _M_get_Tp_allocator());
9240      }
9241    catch(...)
9242      {
9243        std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator());
9244        _M_deallocate(__new_start.base(),__len);
9245        throw;
9246      }
9247    std::_Destroy(begin(), end(), _M_get_Tp_allocator());
9248    _M_deallocate(this->_M_impl._M_start,
9249    this->_M_impl._M_end_of_storage
9250    - this->_M_impl._M_start);
9251    this->_M_impl._M_start = __new_start.base();
9252    this->_M_impl._M_finish = __new_finish.base();
9253    this->_M_impl._M_end_of_storage = __new_start.base() + __len;
9254  }
9255     }
9256
9257   template<typename _Tp, typename _Alloc>
9258     void
9259     vector<_Tp, _Alloc>::
9260     _M_fill_insert(iterator __position, size_type __n, const value_type& __x)
9261     {
9262       if (__n != 0)
9263  {
9264    if (size_type(this->_M_impl._M_end_of_storage
9265    - this->_M_impl._M_finish) >= __n)
9266      {
9267        value_type __x_copy = __x;
9268        const size_type __elems_after = end() - __position;
9269        iterator __old_finish(this->_M_impl._M_finish);
9270        if (__elems_after > __n)
9271   {
9272     std::__uninitialized_copy_a(this->_M_impl._M_finish - __n,
9273            this->_M_impl._M_finish,
9274            this->_M_impl._M_finish,
9275            _M_get_Tp_allocator());
9276     this->_M_impl._M_finish += __n;
9277     std::copy_backward(__position, __old_finish - __n,
9278          __old_finish);
9279     std::fill(__position, __position + __n, __x_copy);
9280   }
9281        else
9282   {
9283     std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
9284       __n - __elems_after,
9285       __x_copy,
9286       _M_get_Tp_allocator());
9287     this->_M_impl._M_finish += __n - __elems_after;
9288     std::__uninitialized_copy_a(__position, __old_finish,
9289            this->_M_impl._M_finish,
9290            _M_get_Tp_allocator());
9291     this->_M_impl._M_finish += __elems_after;
9292     std::fill(__position, __old_finish, __x_copy);
9293   }
9294      }
9295    else
9296      {
9297        const size_type __old_size = size();
9298        if (this->max_size() - __old_size < __n)
9299   __throw_length_error(("vector::_M_fill_insert"));
9300
9301
9302        size_type __len = __old_size + std::max(__old_size, __n);
9303        if (__len < __old_size)
9304   __len = this->max_size();
9305
9306        iterator __new_start(this->_M_allocate(__len));
9307        iterator __new_finish(__new_start);
9308        try
9309   {
9310     __new_finish =
9311       std::__uninitialized_copy_a(begin(), __position,
9312       __new_start,
9313       _M_get_Tp_allocator());
9314     std::__uninitialized_fill_n_a(__new_finish, __n, __x,
9315       _M_get_Tp_allocator());
9316     __new_finish += __n;
9317     __new_finish =
9318       std::__uninitialized_copy_a(__position, end(), __new_finish,
9319       _M_get_Tp_allocator());
9320   }
9321        catch(...)
9322   {
9323     std::_Destroy(__new_start, __new_finish,
9324     _M_get_Tp_allocator());
9325     _M_deallocate(__new_start.base(), __len);
9326     throw;
9327   }
9328        std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
9329        _M_get_Tp_allocator());
9330        _M_deallocate(this->_M_impl._M_start,
9331        this->_M_impl._M_end_of_storage
9332        - this->_M_impl._M_start);
9333        this->_M_impl._M_start = __new_start.base();
9334        this->_M_impl._M_finish = __new_finish.base();
9335        this->_M_impl._M_end_of_storage = __new_start.base() + __len;
9336      }
9337  }
9338     }
9339
9340   template<typename _Tp, typename _Alloc> template<typename _InputIterator>
9341     void
9342     vector<_Tp, _Alloc>::
9343     _M_range_insert(iterator __pos, _InputIterator __first,
9344       _InputIterator __last, std::input_iterator_tag)
9345     {
9346       for (; __first != __last; ++__first)
9347  {
9348    __pos = insert(__pos, *__first);
9349    ++__pos;
9350  }
9351     }
9352
9353   template<typename _Tp, typename _Alloc>
9354     template<typename _ForwardIterator>
9355       void
9356       vector<_Tp, _Alloc>::
9357       _M_range_insert(iterator __position, _ForwardIterator __first,
9358         _ForwardIterator __last, std::forward_iterator_tag)
9359       {
9360  if (__first != __last)
9361    {
9362      const size_type __n = std::distance(__first, __last);
9363      if (size_type(this->_M_impl._M_end_of_storage
9364      - this->_M_impl._M_finish) >= __n)
9365        {
9366   const size_type __elems_after = end() - __position;
9367   iterator __old_finish(this->_M_impl._M_finish);
9368   if (__elems_after > __n)
9369     {
9370       std::__uninitialized_copy_a(this->_M_impl._M_finish - __n,
9371       this->_M_impl._M_finish,
9372       this->_M_impl._M_finish,
9373       _M_get_Tp_allocator());
9374       this->_M_impl._M_finish += __n;
9375       std::copy_backward(__position, __old_finish - __n,
9376            __old_finish);
9377       std::copy(__first, __last, __position);
9378     }
9379   else
9380     {
9381       _ForwardIterator __mid = __first;
9382       std::advance(__mid, __elems_after);
9383       std::__uninitialized_copy_a(__mid, __last,
9384       this->_M_impl._M_finish,
9385       _M_get_Tp_allocator());
9386       this->_M_impl._M_finish += __n - __elems_after;
9387       std::__uninitialized_copy_a(__position, __old_finish,
9388       this->_M_impl._M_finish,
9389       _M_get_Tp_allocator());
9390       this->_M_impl._M_finish += __elems_after;
9391       std::copy(__first, __mid, __position);
9392     }
9393        }
9394      else
9395        {
9396   const size_type __old_size = size();
9397   if (this->max_size() - __old_size < __n)
9398     __throw_length_error(("vector::_M_range_insert"));
9399
9400
9401   size_type __len = __old_size + std::max(__old_size, __n);
9402   if (__len < __old_size)
9403     __len = this->max_size();
9404
9405   iterator __new_start(this->_M_allocate(__len));
9406   iterator __new_finish(__new_start);
9407   try
9408     {
9409       __new_finish =
9410         std::__uninitialized_copy_a(iterator(this->_M_impl._M_start),
9411         __position,
9412         __new_start,
9413         _M_get_Tp_allocator());
9414       __new_finish =
9415         std::__uninitialized_copy_a(__first, __last, __new_finish,
9416         _M_get_Tp_allocator());
9417       __new_finish =
9418         std::__uninitialized_copy_a(__position,
9419         iterator(this->_M_impl._M_finish),
9420         __new_finish,
9421         _M_get_Tp_allocator());
9422     }
9423   catch(...)
9424     {
9425       std::_Destroy(__new_start,__new_finish,
9426       _M_get_Tp_allocator());
9427       _M_deallocate(__new_start.base(), __len);
9428       throw;
9429     }
9430   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
9431          _M_get_Tp_allocator());
9432   _M_deallocate(this->_M_impl._M_start,
9433          this->_M_impl._M_end_of_storage
9434          - this->_M_impl._M_start);
9435   this->_M_impl._M_start = __new_start.base();
9436   this->_M_impl._M_finish = __new_finish.base();
9437   this->_M_impl._M_end_of_storage = __new_start.base() + __len;
9438        }
9439    }
9440       }
9441 }
9442 # 75 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/vector" 2 3
9443 # 18 "./boost/format.hpp" 2
9444 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 1 3
9445 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 3
9446        
9447 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 3
9448
9449
9450
9451 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 1 3
9452 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 3
9453        
9454 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 3
9455
9456
9457
9458
9459
9460 namespace __gnu_cxx
9461 {
9462 # 61 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 3
9463   template <class _CharT>
9464     struct _Char_types
9465     {
9466       typedef unsigned long int_type;
9467       typedef std::streampos pos_type;
9468       typedef std::streamoff off_type;
9469       typedef std::mbstate_t state_type;
9470     };
9471 # 86 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 3
9472   template<typename _CharT>
9473     struct char_traits
9474     {
9475       typedef _CharT char_type;
9476       typedef typename _Char_types<_CharT>::int_type int_type;
9477       typedef typename _Char_types<_CharT>::pos_type pos_type;
9478       typedef typename _Char_types<_CharT>::off_type off_type;
9479       typedef typename _Char_types<_CharT>::state_type state_type;
9480
9481       static void
9482       assign(char_type& __c1, const char_type& __c2)
9483       { __c1 = __c2; }
9484
9485       static bool
9486       eq(const char_type& __c1, const char_type& __c2)
9487       { return __c1 == __c2; }
9488
9489       static bool
9490       lt(const char_type& __c1, const char_type& __c2)
9491       { return __c1 < __c2; }
9492
9493       static int
9494       compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
9495
9496       static std::size_t
9497       length(const char_type* __s);
9498
9499       static const char_type*
9500       find(const char_type* __s, std::size_t __n, const char_type& __a);
9501
9502       static char_type*
9503       move(char_type* __s1, const char_type* __s2, std::size_t __n);
9504
9505       static char_type*
9506       copy(char_type* __s1, const char_type* __s2, std::size_t __n);
9507
9508       static char_type*
9509       assign(char_type* __s, std::size_t __n, char_type __a);
9510
9511       static char_type
9512       to_char_type(const int_type& __c)
9513       { return static_cast<char_type>(__c); }
9514
9515       static int_type
9516       to_int_type(const char_type& __c)
9517       { return static_cast<int_type>(__c); }
9518
9519       static bool
9520       eq_int_type(const int_type& __c1, const int_type& __c2)
9521       { return __c1 == __c2; }
9522
9523       static int_type
9524       eof()
9525       { return static_cast<int_type>((-1)); }
9526
9527       static int_type
9528       not_eof(const int_type& __c)
9529       { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
9530     };
9531
9532   template<typename _CharT>
9533     int
9534     char_traits<_CharT>::
9535     compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
9536     {
9537       for (size_t __i = 0; __i < __n; ++__i)
9538  if (lt(__s1[__i], __s2[__i]))
9539    return -1;
9540  else if (lt(__s2[__i], __s1[__i]))
9541    return 1;
9542       return 0;
9543     }
9544
9545   template<typename _CharT>
9546     std::size_t
9547     char_traits<_CharT>::
9548     length(const char_type* __p)
9549     {
9550       std::size_t __i = 0;
9551       while (!eq(__p[__i], char_type()))
9552         ++__i;
9553       return __i;
9554     }
9555
9556   template<typename _CharT>
9557     const typename char_traits<_CharT>::char_type*
9558     char_traits<_CharT>::
9559     find(const char_type* __s, std::size_t __n, const char_type& __a)
9560     {
9561       for (std::size_t __i = 0; __i < __n; ++__i)
9562         if (eq(__s[__i], __a))
9563           return __s + __i;
9564       return 0;
9565     }
9566
9567   template<typename _CharT>
9568     typename char_traits<_CharT>::char_type*
9569     char_traits<_CharT>::
9570     move(char_type* __s1, const char_type* __s2, std::size_t __n)
9571     {
9572       return static_cast<_CharT*>(std::memmove(__s1, __s2,
9573             __n * sizeof(char_type)));
9574     }
9575
9576   template<typename _CharT>
9577     typename char_traits<_CharT>::char_type*
9578     char_traits<_CharT>::
9579     copy(char_type* __s1, const char_type* __s2, std::size_t __n)
9580     {
9581       std::copy(__s2, __s2 + __n, __s1);
9582       return __s1;
9583     }
9584
9585   template<typename _CharT>
9586     typename char_traits<_CharT>::char_type*
9587     char_traits<_CharT>::
9588     assign(char_type* __s, std::size_t __n, char_type __a)
9589     {
9590       std::fill_n(__s, __n, __a);
9591       return __s;
9592     }
9593 }
9594
9595 namespace std
9596 {
9597 # 224 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 3
9598   template<class _CharT>
9599     struct char_traits : public __gnu_cxx::char_traits<_CharT>
9600     { };
9601
9602
9603
9604   template<>
9605     struct char_traits<char>
9606     {
9607       typedef char char_type;
9608       typedef int int_type;
9609       typedef streampos pos_type;
9610       typedef streamoff off_type;
9611       typedef mbstate_t state_type;
9612
9613       static void
9614       assign(char_type& __c1, const char_type& __c2)
9615       { __c1 = __c2; }
9616
9617       static bool
9618       eq(const char_type& __c1, const char_type& __c2)
9619       { return __c1 == __c2; }
9620
9621       static bool
9622       lt(const char_type& __c1, const char_type& __c2)
9623       { return __c1 < __c2; }
9624
9625       static int
9626       compare(const char_type* __s1, const char_type* __s2, size_t __n)
9627       { return memcmp(__s1, __s2, __n); }
9628
9629       static size_t
9630       length(const char_type* __s)
9631       { return strlen(__s); }
9632
9633       static const char_type*
9634       find(const char_type* __s, size_t __n, const char_type& __a)
9635       { return static_cast<const char_type*>(memchr(__s, __a, __n)); }
9636
9637       static char_type*
9638       move(char_type* __s1, const char_type* __s2, size_t __n)
9639       { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }
9640
9641       static char_type*
9642       copy(char_type* __s1, const char_type* __s2, size_t __n)
9643       { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }
9644
9645       static char_type*
9646       assign(char_type* __s, size_t __n, char_type __a)
9647       { return static_cast<char_type*>(memset(__s, __a, __n)); }
9648
9649       static char_type
9650       to_char_type(const int_type& __c)
9651       { return static_cast<char_type>(__c); }
9652
9653
9654
9655       static int_type
9656       to_int_type(const char_type& __c)
9657       { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
9658
9659       static bool
9660       eq_int_type(const int_type& __c1, const int_type& __c2)
9661       { return __c1 == __c2; }
9662
9663       static int_type
9664       eof() { return static_cast<int_type>((-1)); }
9665
9666       static int_type
9667       not_eof(const int_type& __c)
9668       { return (__c == eof()) ? 0 : __c; }
9669   };
9670 # 364 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/char_traits.h" 3
9671 }
9672 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 2 3
9673 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 1 3
9674 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
9675        
9676 # 52 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
9677
9678
9679
9680
9681
9682
9683 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_raw_storage_iter.h" 1 3
9684 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_raw_storage_iter.h" 3
9685 namespace std
9686 {
9687
9688
9689
9690
9691   template <class _ForwardIterator, class _Tp>
9692     class raw_storage_iterator
9693     : public iterator<output_iterator_tag, void, void, void, void>
9694     {
9695     protected:
9696       _ForwardIterator _M_iter;
9697
9698     public:
9699       explicit
9700       raw_storage_iterator(_ForwardIterator __x)
9701       : _M_iter(__x) {}
9702
9703       raw_storage_iterator&
9704       operator*() { return *this; }
9705
9706       raw_storage_iterator&
9707       operator=(const _Tp& __element)
9708       {
9709  std::_Construct(&*_M_iter, __element);
9710  return *this;
9711       }
9712
9713       raw_storage_iterator<_ForwardIterator, _Tp>&
9714       operator++()
9715       {
9716  ++_M_iter;
9717  return *this;
9718       }
9719
9720       raw_storage_iterator<_ForwardIterator, _Tp>
9721       operator++(int)
9722       {
9723  raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
9724  ++_M_iter;
9725  return __tmp;
9726       }
9727     };
9728 }
9729 # 59 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 2 3
9730
9731 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/limits" 1 3
9732 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/limits" 3
9733        
9734 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/limits" 3
9735 # 149 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/limits" 3
9736 namespace std
9737 {
9738
9739
9740
9741
9742
9743   enum float_round_style
9744   {
9745     round_indeterminate = -1,
9746     round_toward_zero = 0,
9747     round_to_nearest = 1,
9748     round_toward_infinity = 2,
9749     round_toward_neg_infinity = 3
9750   };
9751
9752
9753
9754
9755
9756
9757
9758   enum float_denorm_style
9759   {
9760
9761     denorm_indeterminate = -1,
9762
9763     denorm_absent = 0,
9764
9765     denorm_present = 1
9766   };
9767 # 191 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/limits" 3
9768   struct __numeric_limits_base
9769   {
9770
9771
9772     static const bool is_specialized = false;
9773
9774
9775
9776
9777     static const int digits = 0;
9778
9779     static const int digits10 = 0;
9780
9781     static const bool is_signed = false;
9782
9783
9784
9785
9786
9787     static const bool is_integer = false;
9788
9789
9790
9791
9792     static const bool is_exact = false;
9793
9794
9795     static const int radix = 0;
9796
9797
9798
9799     static const int min_exponent = 0;
9800
9801
9802     static const int min_exponent10 = 0;
9803
9804
9805
9806     static const int max_exponent = 0;
9807
9808
9809     static const int max_exponent10 = 0;
9810
9811
9812     static const bool has_infinity = false;
9813
9814
9815     static const bool has_quiet_NaN = false;
9816
9817
9818     static const bool has_signaling_NaN = false;
9819
9820     static const float_denorm_style has_denorm = denorm_absent;
9821
9822
9823     static const bool has_denorm_loss = false;
9824
9825
9826
9827     static const bool is_iec559 = false;
9828
9829
9830
9831     static const bool is_bounded = false;
9832
9833
9834
9835
9836     static const bool is_modulo = false;
9837
9838
9839     static const bool traps = false;
9840
9841     static const bool tinyness_before = false;
9842
9843
9844
9845     static const float_round_style round_style = round_toward_zero;
9846   };
9847 # 284 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/limits" 3
9848   template<typename _Tp>
9849     struct numeric_limits : public __numeric_limits_base
9850     {
9851
9852
9853       static _Tp min() throw() { return static_cast<_Tp>(0); }
9854
9855       static _Tp max() throw() { return static_cast<_Tp>(0); }
9856
9857
9858       static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
9859
9860       static _Tp round_error() throw() { return static_cast<_Tp>(0); }
9861
9862       static _Tp infinity() throw() { return static_cast<_Tp>(0); }
9863
9864       static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
9865
9866
9867       static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
9868
9869
9870
9871       static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
9872     };
9873
9874
9875
9876
9877
9878   template<>
9879     struct numeric_limits<bool>
9880     {
9881       static const bool is_specialized = true;
9882
9883       static bool min() throw()
9884       { return false; }
9885       static bool max() throw()
9886       { return true; }
9887
9888       static const int digits = 1;
9889       static const int digits10 = 0;
9890       static const bool is_signed = false;
9891       static const bool is_integer = true;
9892       static const bool is_exact = true;
9893       static const int radix = 2;
9894       static bool epsilon() throw()
9895       { return false; }
9896       static bool round_error() throw()
9897       { return false; }
9898
9899       static const int min_exponent = 0;
9900       static const int min_exponent10 = 0;
9901       static const int max_exponent = 0;
9902       static const int max_exponent10 = 0;
9903
9904       static const bool has_infinity = false;
9905       static const bool has_quiet_NaN = false;
9906       static const bool has_signaling_NaN = false;
9907       static const float_denorm_style has_denorm = denorm_absent;
9908       static const bool has_denorm_loss = false;
9909
9910       static bool infinity() throw()
9911       { return false; }
9912       static bool quiet_NaN() throw()
9913       { return false; }
9914       static bool signaling_NaN() throw()
9915       { return false; }
9916       static bool denorm_min() throw()
9917       { return false; }
9918
9919       static const bool is_iec559 = false;
9920       static const bool is_bounded = true;
9921       static const bool is_modulo = false;
9922
9923
9924
9925
9926       static const bool traps = true;
9927       static const bool tinyness_before = false;
9928       static const float_round_style round_style = round_toward_zero;
9929     };
9930
9931
9932   template<>
9933     struct numeric_limits<char>
9934     {
9935       static const bool is_specialized = true;
9936
9937       static char min() throw()
9938       { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
9939       static char max() throw()
9940       { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
9941
9942       static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
9943       static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
9944       static const bool is_signed = ((char)(-1) < 0);
9945       static const bool is_integer = true;
9946       static const bool is_exact = true;
9947       static const int radix = 2;
9948       static char epsilon() throw()
9949       { return 0; }
9950       static char round_error() throw()
9951       { return 0; }
9952
9953       static const int min_exponent = 0;
9954       static const int min_exponent10 = 0;
9955       static const int max_exponent = 0;
9956       static const int max_exponent10 = 0;
9957
9958       static const bool has_infinity = false;
9959       static const bool has_quiet_NaN = false;
9960       static const bool has_signaling_NaN = false;
9961       static const float_denorm_style has_denorm = denorm_absent;
9962       static const bool has_denorm_loss = false;
9963
9964       static char infinity() throw()
9965       { return char(); }
9966       static char quiet_NaN() throw()
9967       { return char(); }
9968       static char signaling_NaN() throw()
9969       { return char(); }
9970       static char denorm_min() throw()
9971       { return static_cast<char>(0); }
9972
9973       static const bool is_iec559 = false;
9974       static const bool is_bounded = true;
9975       static const bool is_modulo = true;
9976
9977       static const bool traps = true;
9978       static const bool tinyness_before = false;
9979       static const float_round_style round_style = round_toward_zero;
9980     };
9981
9982
9983   template<>
9984     struct numeric_limits<signed char>
9985     {
9986       static const bool is_specialized = true;
9987
9988       static signed char min() throw()
9989       { return -127 - 1; }
9990       static signed char max() throw()
9991       { return 127; }
9992
9993       static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
9994       static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
9995       static const bool is_signed = true;
9996       static const bool is_integer = true;
9997       static const bool is_exact = true;
9998       static const int radix = 2;
9999       static signed char epsilon() throw()
10000       { return 0; }
10001       static signed char round_error() throw()
10002       { return 0; }
10003
10004       static const int min_exponent = 0;
10005       static const int min_exponent10 = 0;
10006       static const int max_exponent = 0;
10007       static const int max_exponent10 = 0;
10008
10009       static const bool has_infinity = false;
10010       static const bool has_quiet_NaN = false;
10011       static const bool has_signaling_NaN = false;
10012       static const float_denorm_style has_denorm = denorm_absent;
10013       static const bool has_denorm_loss = false;
10014
10015       static signed char infinity() throw()
10016       { return static_cast<signed char>(0); }
10017       static signed char quiet_NaN() throw()
10018       { return static_cast<signed char>(0); }
10019       static signed char signaling_NaN() throw()
10020       { return static_cast<signed char>(0); }
10021       static signed char denorm_min() throw()
10022       { return static_cast<signed char>(0); }
10023
10024       static const bool is_iec559 = false;
10025       static const bool is_bounded = true;
10026       static const bool is_modulo = true;
10027
10028       static const bool traps = true;
10029       static const bool tinyness_before = false;
10030       static const float_round_style round_style = round_toward_zero;
10031     };
10032
10033
10034   template<>
10035     struct numeric_limits<unsigned char>
10036     {
10037       static const bool is_specialized = true;
10038
10039       static unsigned char min() throw()
10040       { return 0; }
10041       static unsigned char max() throw()
10042       { return 127 * 2U + 1; }
10043
10044       static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
10045       static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
10046       static const bool is_signed = false;
10047       static const bool is_integer = true;
10048       static const bool is_exact = true;
10049       static const int radix = 2;
10050       static unsigned char epsilon() throw()
10051       { return 0; }
10052       static unsigned char round_error() throw()
10053       { return 0; }
10054
10055       static const int min_exponent = 0;
10056       static const int min_exponent10 = 0;
10057       static const int max_exponent = 0;
10058       static const int max_exponent10 = 0;
10059
10060       static const bool has_infinity = false;
10061       static const bool has_quiet_NaN = false;
10062       static const bool has_signaling_NaN = false;
10063       static const float_denorm_style has_denorm = denorm_absent;
10064       static const bool has_denorm_loss = false;
10065
10066       static unsigned char infinity() throw()
10067       { return static_cast<unsigned char>(0); }
10068       static unsigned char quiet_NaN() throw()
10069       { return static_cast<unsigned char>(0); }
10070       static unsigned char signaling_NaN() throw()
10071       { return static_cast<unsigned char>(0); }
10072       static unsigned char denorm_min() throw()
10073       { return static_cast<unsigned char>(0); }
10074
10075       static const bool is_iec559 = false;
10076       static const bool is_bounded = true;
10077       static const bool is_modulo = true;
10078
10079       static const bool traps = true;
10080       static const bool tinyness_before = false;
10081       static const float_round_style round_style = round_toward_zero;
10082     };
10083
10084
10085   template<>
10086     struct numeric_limits<wchar_t>
10087     {
10088       static const bool is_specialized = true;
10089
10090       static wchar_t min() throw()
10091       { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
10092       static wchar_t max() throw()
10093       { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
10094
10095       static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
10096       static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
10097       static const bool is_signed = ((wchar_t)(-1) < 0);
10098       static const bool is_integer = true;
10099       static const bool is_exact = true;
10100       static const int radix = 2;
10101       static wchar_t epsilon() throw()
10102       { return 0; }
10103       static wchar_t round_error() throw()
10104       { return 0; }
10105
10106       static const int min_exponent = 0;
10107       static const int min_exponent10 = 0;
10108       static const int max_exponent = 0;
10109       static const int max_exponent10 = 0;
10110
10111       static const bool has_infinity = false;
10112       static const bool has_quiet_NaN = false;
10113       static const bool has_signaling_NaN = false;
10114       static const float_denorm_style has_denorm = denorm_absent;
10115       static const bool has_denorm_loss = false;
10116
10117       static wchar_t infinity() throw()
10118       { return wchar_t(); }
10119       static wchar_t quiet_NaN() throw()
10120       { return wchar_t(); }
10121       static wchar_t signaling_NaN() throw()
10122       { return wchar_t(); }
10123       static wchar_t denorm_min() throw()
10124       { return wchar_t(); }
10125
10126       static const bool is_iec559 = false;
10127       static const bool is_bounded = true;
10128       static const bool is_modulo = true;
10129
10130       static const bool traps = true;
10131       static const bool tinyness_before = false;
10132       static const float_round_style round_style = round_toward_zero;
10133     };
10134
10135
10136   template<>
10137     struct numeric_limits<short>
10138     {
10139       static const bool is_specialized = true;
10140
10141       static short min() throw()
10142       { return -32767 - 1; }
10143       static short max() throw()
10144       { return 32767; }
10145
10146       static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
10147       static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
10148       static const bool is_signed = true;
10149       static const bool is_integer = true;
10150       static const bool is_exact = true;
10151       static const int radix = 2;
10152       static short epsilon() throw()
10153       { return 0; }
10154       static short round_error() throw()
10155       { return 0; }
10156
10157       static const int min_exponent = 0;
10158       static const int min_exponent10 = 0;
10159       static const int max_exponent = 0;
10160       static const int max_exponent10 = 0;
10161
10162       static const bool has_infinity = false;
10163       static const bool has_quiet_NaN = false;
10164       static const bool has_signaling_NaN = false;
10165       static const float_denorm_style has_denorm = denorm_absent;
10166       static const bool has_denorm_loss = false;
10167
10168       static short infinity() throw()
10169       { return short(); }
10170       static short quiet_NaN() throw()
10171       { return short(); }
10172       static short signaling_NaN() throw()
10173       { return short(); }
10174       static short denorm_min() throw()
10175       { return short(); }
10176
10177       static const bool is_iec559 = false;
10178       static const bool is_bounded = true;
10179       static const bool is_modulo = true;
10180
10181       static const bool traps = true;
10182       static const bool tinyness_before = false;
10183       static const float_round_style round_style = round_toward_zero;
10184     };
10185
10186
10187   template<>
10188     struct numeric_limits<unsigned short>
10189     {
10190       static const bool is_specialized = true;
10191
10192       static unsigned short min() throw()
10193       { return 0; }
10194       static unsigned short max() throw()
10195       { return 32767 * 2U + 1; }
10196
10197       static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
10198       static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
10199       static const bool is_signed = false;
10200       static const bool is_integer = true;
10201       static const bool is_exact = true;
10202       static const int radix = 2;
10203       static unsigned short epsilon() throw()
10204       { return 0; }
10205       static unsigned short round_error() throw()
10206       { return 0; }
10207
10208       static const int min_exponent = 0;
10209       static const int min_exponent10 = 0;
10210       static const int max_exponent = 0;
10211       static const int max_exponent10 = 0;
10212
10213       static const bool has_infinity = false;
10214       static const bool has_quiet_NaN = false;
10215       static const bool has_signaling_NaN = false;
10216       static const float_denorm_style has_denorm = denorm_absent;
10217       static const bool has_denorm_loss = false;
10218
10219       static unsigned short infinity() throw()
10220       { return static_cast<unsigned short>(0); }
10221       static unsigned short quiet_NaN() throw()
10222       { return static_cast<unsigned short>(0); }
10223       static unsigned short signaling_NaN() throw()
10224       { return static_cast<unsigned short>(0); }
10225       static unsigned short denorm_min() throw()
10226       { return static_cast<unsigned short>(0); }
10227
10228       static const bool is_iec559 = false;
10229       static const bool is_bounded = true;
10230       static const bool is_modulo = true;
10231
10232       static const bool traps = true;
10233       static const bool tinyness_before = false;
10234       static const float_round_style round_style = round_toward_zero;
10235     };
10236
10237
10238   template<>
10239     struct numeric_limits<int>
10240     {
10241       static const bool is_specialized = true;
10242
10243       static int min() throw()
10244       { return -2147483647 - 1; }
10245       static int max() throw()
10246       { return 2147483647; }
10247
10248       static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
10249       static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
10250       static const bool is_signed = true;
10251       static const bool is_integer = true;
10252       static const bool is_exact = true;
10253       static const int radix = 2;
10254       static int epsilon() throw()
10255       { return 0; }
10256       static int round_error() throw()
10257       { return 0; }
10258
10259       static const int min_exponent = 0;
10260       static const int min_exponent10 = 0;
10261       static const int max_exponent = 0;
10262       static const int max_exponent10 = 0;
10263
10264       static const bool has_infinity = false;
10265       static const bool has_quiet_NaN = false;
10266       static const bool has_signaling_NaN = false;
10267       static const float_denorm_style has_denorm = denorm_absent;
10268       static const bool has_denorm_loss = false;
10269
10270       static int infinity() throw()
10271       { return static_cast<int>(0); }
10272       static int quiet_NaN() throw()
10273       { return static_cast<int>(0); }
10274       static int signaling_NaN() throw()
10275       { return static_cast<int>(0); }
10276       static int denorm_min() throw()
10277       { return static_cast<int>(0); }
10278
10279       static const bool is_iec559 = false;
10280       static const bool is_bounded = true;
10281       static const bool is_modulo = true;
10282
10283       static const bool traps = true;
10284       static const bool tinyness_before = false;
10285       static const float_round_style round_style = round_toward_zero;
10286     };
10287
10288
10289   template<>
10290     struct numeric_limits<unsigned int>
10291     {
10292       static const bool is_specialized = true;
10293
10294       static unsigned int min() throw()
10295       { return 0; }
10296       static unsigned int max() throw()
10297       { return 2147483647 * 2U + 1; }
10298
10299       static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
10300       static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
10301       static const bool is_signed = false;
10302       static const bool is_integer = true;
10303       static const bool is_exact = true;
10304       static const int radix = 2;
10305       static unsigned int epsilon() throw()
10306       { return 0; }
10307       static unsigned int round_error() throw()
10308       { return 0; }
10309
10310       static const int min_exponent = 0;
10311       static const int min_exponent10 = 0;
10312       static const int max_exponent = 0;
10313       static const int max_exponent10 = 0;
10314
10315       static const bool has_infinity = false;
10316       static const bool has_quiet_NaN = false;
10317       static const bool has_signaling_NaN = false;
10318       static const float_denorm_style has_denorm = denorm_absent;
10319       static const bool has_denorm_loss = false;
10320
10321       static unsigned int infinity() throw()
10322       { return static_cast<unsigned int>(0); }
10323       static unsigned int quiet_NaN() throw()
10324       { return static_cast<unsigned int>(0); }
10325       static unsigned int signaling_NaN() throw()
10326       { return static_cast<unsigned int>(0); }
10327       static unsigned int denorm_min() throw()
10328       { return static_cast<unsigned int>(0); }
10329
10330       static const bool is_iec559 = false;
10331       static const bool is_bounded = true;
10332       static const bool is_modulo = true;
10333
10334       static const bool traps = true;
10335       static const bool tinyness_before = false;
10336       static const float_round_style round_style = round_toward_zero;
10337     };
10338
10339
10340   template<>
10341     struct numeric_limits<long>
10342     {
10343       static const bool is_specialized = true;
10344
10345       static long min() throw()
10346       { return -2147483647L - 1; }
10347       static long max() throw()
10348       { return 2147483647L; }
10349
10350       static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
10351       static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
10352       static const bool is_signed = true;
10353       static const bool is_integer = true;
10354       static const bool is_exact = true;
10355       static const int radix = 2;
10356       static long epsilon() throw()
10357       { return 0; }
10358       static long round_error() throw()
10359       { return 0; }
10360
10361       static const int min_exponent = 0;
10362       static const int min_exponent10 = 0;
10363       static const int max_exponent = 0;
10364       static const int max_exponent10 = 0;
10365
10366       static const bool has_infinity = false;
10367       static const bool has_quiet_NaN = false;
10368       static const bool has_signaling_NaN = false;
10369       static const float_denorm_style has_denorm = denorm_absent;
10370       static const bool has_denorm_loss = false;
10371
10372       static long infinity() throw()
10373       { return static_cast<long>(0); }
10374       static long quiet_NaN() throw()
10375       { return static_cast<long>(0); }
10376       static long signaling_NaN() throw()
10377       { return static_cast<long>(0); }
10378       static long denorm_min() throw()
10379       { return static_cast<long>(0); }
10380
10381       static const bool is_iec559 = false;
10382       static const bool is_bounded = true;
10383       static const bool is_modulo = true;
10384
10385       static const bool traps = true;
10386       static const bool tinyness_before = false;
10387       static const float_round_style round_style = round_toward_zero;
10388     };
10389
10390
10391   template<>
10392     struct numeric_limits<unsigned long>
10393     {
10394       static const bool is_specialized = true;
10395
10396       static unsigned long min() throw()
10397       { return 0; }
10398       static unsigned long max() throw()
10399       { return 2147483647L * 2UL + 1; }
10400
10401       static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
10402       static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
10403       static const bool is_signed = false;
10404       static const bool is_integer = true;
10405       static const bool is_exact = true;
10406       static const int radix = 2;
10407       static unsigned long epsilon() throw()
10408       { return 0; }
10409       static unsigned long round_error() throw()
10410       { return 0; }
10411
10412       static const int min_exponent = 0;
10413       static const int min_exponent10 = 0;
10414       static const int max_exponent = 0;
10415       static const int max_exponent10 = 0;
10416
10417       static const bool has_infinity = false;
10418       static const bool has_quiet_NaN = false;
10419       static const bool has_signaling_NaN = false;
10420       static const float_denorm_style has_denorm = denorm_absent;
10421       static const bool has_denorm_loss = false;
10422
10423       static unsigned long infinity() throw()
10424       { return static_cast<unsigned long>(0); }
10425       static unsigned long quiet_NaN() throw()
10426       { return static_cast<unsigned long>(0); }
10427       static unsigned long signaling_NaN() throw()
10428       { return static_cast<unsigned long>(0); }
10429       static unsigned long denorm_min() throw()
10430       { return static_cast<unsigned long>(0); }
10431
10432       static const bool is_iec559 = false;
10433       static const bool is_bounded = true;
10434       static const bool is_modulo = true;
10435
10436       static const bool traps = true;
10437       static const bool tinyness_before = false;
10438       static const float_round_style round_style = round_toward_zero;
10439     };
10440
10441
10442   template<>
10443     struct numeric_limits<long long>
10444     {
10445       static const bool is_specialized = true;
10446
10447       static long long min() throw()
10448       { return -9223372036854775807LL - 1; }
10449       static long long max() throw()
10450       { return 9223372036854775807LL; }
10451
10452       static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
10453       static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
10454       static const bool is_signed = true;
10455       static const bool is_integer = true;
10456       static const bool is_exact = true;
10457       static const int radix = 2;
10458       static long long epsilon() throw()
10459       { return 0; }
10460       static long long round_error() throw()
10461       { return 0; }
10462
10463       static const int min_exponent = 0;
10464       static const int min_exponent10 = 0;
10465       static const int max_exponent = 0;
10466       static const int max_exponent10 = 0;
10467
10468       static const bool has_infinity = false;
10469       static const bool has_quiet_NaN = false;
10470       static const bool has_signaling_NaN = false;
10471       static const float_denorm_style has_denorm = denorm_absent;
10472       static const bool has_denorm_loss = false;
10473
10474       static long long infinity() throw()
10475       { return static_cast<long long>(0); }
10476       static long long quiet_NaN() throw()
10477       { return static_cast<long long>(0); }
10478       static long long signaling_NaN() throw()
10479       { return static_cast<long long>(0); }
10480       static long long denorm_min() throw()
10481       { return static_cast<long long>(0); }
10482
10483       static const bool is_iec559 = false;
10484       static const bool is_bounded = true;
10485       static const bool is_modulo = true;
10486
10487       static const bool traps = true;
10488       static const bool tinyness_before = false;
10489       static const float_round_style round_style = round_toward_zero;
10490     };
10491
10492
10493   template<>
10494     struct numeric_limits<unsigned long long>
10495     {
10496       static const bool is_specialized = true;
10497
10498       static unsigned long long min() throw()
10499       { return 0; }
10500       static unsigned long long max() throw()
10501       { return 9223372036854775807LL * 2ULL + 1; }
10502
10503       static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
10504       static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
10505       static const bool is_signed = false;
10506       static const bool is_integer = true;
10507       static const bool is_exact = true;
10508       static const int radix = 2;
10509       static unsigned long long epsilon() throw()
10510       { return 0; }
10511       static unsigned long long round_error() throw()
10512       { return 0; }
10513
10514       static const int min_exponent = 0;
10515       static const int min_exponent10 = 0;
10516       static const int max_exponent = 0;
10517       static const int max_exponent10 = 0;
10518
10519       static const bool has_infinity = false;
10520       static const bool has_quiet_NaN = false;
10521       static const bool has_signaling_NaN = false;
10522       static const float_denorm_style has_denorm = denorm_absent;
10523       static const bool has_denorm_loss = false;
10524
10525       static unsigned long long infinity() throw()
10526       { return static_cast<unsigned long long>(0); }
10527       static unsigned long long quiet_NaN() throw()
10528       { return static_cast<unsigned long long>(0); }
10529       static unsigned long long signaling_NaN() throw()
10530       { return static_cast<unsigned long long>(0); }
10531       static unsigned long long denorm_min() throw()
10532       { return static_cast<unsigned long long>(0); }
10533
10534       static const bool is_iec559 = false;
10535       static const bool is_bounded = true;
10536       static const bool is_modulo = true;
10537
10538       static const bool traps = true;
10539       static const bool tinyness_before = false;
10540       static const float_round_style round_style = round_toward_zero;
10541     };
10542
10543
10544   template<>
10545     struct numeric_limits<float>
10546     {
10547       static const bool is_specialized = true;
10548
10549       static float min() throw()
10550       { return 1.17549435e-38F; }
10551       static float max() throw()
10552       { return 3.40282347e+38F; }
10553
10554       static const int digits = 24;
10555       static const int digits10 = 6;
10556       static const bool is_signed = true;
10557       static const bool is_integer = false;
10558       static const bool is_exact = false;
10559       static const int radix = 2;
10560       static float epsilon() throw()
10561       { return 1.19209290e-7F; }
10562       static float round_error() throw()
10563       { return 0.5F; }
10564
10565       static const int min_exponent = (-125);
10566       static const int min_exponent10 = (-37);
10567       static const int max_exponent = 128;
10568       static const int max_exponent10 = 38;
10569
10570       static const bool has_infinity = 1;
10571       static const bool has_quiet_NaN = 1;
10572       static const bool has_signaling_NaN = has_quiet_NaN;
10573       static const float_denorm_style has_denorm
10574  = bool(1.40129846e-45F) ? denorm_present : denorm_absent;
10575       static const bool has_denorm_loss = false;
10576
10577       static float infinity() throw()
10578       { return __builtin_huge_valf (); }
10579       static float quiet_NaN() throw()
10580       { return __builtin_nanf (""); }
10581       static float signaling_NaN() throw()
10582       { return __builtin_nansf (""); }
10583       static float denorm_min() throw()
10584       { return 1.40129846e-45F; }
10585
10586       static const bool is_iec559
10587  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
10588       static const bool is_bounded = true;
10589       static const bool is_modulo = false;
10590
10591       static const bool traps = false;
10592       static const bool tinyness_before = false;
10593       static const float_round_style round_style = round_to_nearest;
10594     };
10595
10596
10597
10598
10599
10600
10601   template<>
10602     struct numeric_limits<double>
10603     {
10604       static const bool is_specialized = true;
10605
10606       static double min() throw()
10607       { return 2.2250738585072014e-308; }
10608       static double max() throw()
10609       { return 1.7976931348623157e+308; }
10610
10611       static const int digits = 53;
10612       static const int digits10 = 15;
10613       static const bool is_signed = true;
10614       static const bool is_integer = false;
10615       static const bool is_exact = false;
10616       static const int radix = 2;
10617       static double epsilon() throw()
10618       { return 2.2204460492503131e-16; }
10619       static double round_error() throw()
10620       { return 0.5; }
10621
10622       static const int min_exponent = (-1021);
10623       static const int min_exponent10 = (-307);
10624       static const int max_exponent = 1024;
10625       static const int max_exponent10 = 308;
10626
10627       static const bool has_infinity = 1;
10628       static const bool has_quiet_NaN = 1;
10629       static const bool has_signaling_NaN = has_quiet_NaN;
10630       static const float_denorm_style has_denorm
10631  = bool(4.9406564584124654e-324) ? denorm_present : denorm_absent;
10632       static const bool has_denorm_loss = false;
10633
10634       static double infinity() throw()
10635       { return __builtin_huge_val(); }
10636       static double quiet_NaN() throw()
10637       { return __builtin_nan (""); }
10638       static double signaling_NaN() throw()
10639       { return __builtin_nans (""); }
10640       static double denorm_min() throw()
10641       { return 4.9406564584124654e-324; }
10642
10643       static const bool is_iec559
10644  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
10645       static const bool is_bounded = true;
10646       static const bool is_modulo = false;
10647
10648       static const bool traps = false;
10649       static const bool tinyness_before = false;
10650       static const float_round_style round_style = round_to_nearest;
10651     };
10652
10653
10654
10655
10656
10657
10658   template<>
10659     struct numeric_limits<long double>
10660     {
10661       static const bool is_specialized = true;
10662
10663       static long double min() throw()
10664       { return 2.2250738585072014e-308L; }
10665       static long double max() throw()
10666       { return 1.7976931348623157e+308L; }
10667
10668       static const int digits = 53;
10669       static const int digits10 = 15;
10670       static const bool is_signed = true;
10671       static const bool is_integer = false;
10672       static const bool is_exact = false;
10673       static const int radix = 2;
10674       static long double epsilon() throw()
10675       { return 2.2204460492503131e-16L; }
10676       static long double round_error() throw()
10677       { return 0.5L; }
10678
10679       static const int min_exponent = (-1021);
10680       static const int min_exponent10 = (-307);
10681       static const int max_exponent = 1024;
10682       static const int max_exponent10 = 308;
10683
10684       static const bool has_infinity = 1;
10685       static const bool has_quiet_NaN = 1;
10686       static const bool has_signaling_NaN = has_quiet_NaN;
10687       static const float_denorm_style has_denorm
10688  = bool(4.9406564584124654e-324L) ? denorm_present : denorm_absent;
10689       static const bool has_denorm_loss
10690  = false;
10691
10692       static long double infinity() throw()
10693       { return __builtin_huge_vall (); }
10694       static long double quiet_NaN() throw()
10695       { return __builtin_nanl (""); }
10696       static long double signaling_NaN() throw()
10697       { return __builtin_nansl (""); }
10698       static long double denorm_min() throw()
10699       { return 4.9406564584124654e-324L; }
10700
10701       static const bool is_iec559
10702  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
10703       static const bool is_bounded = true;
10704       static const bool is_modulo = false;
10705
10706       static const bool traps = false;
10707       static const bool tinyness_before = false;
10708       static const float_round_style round_style = round_to_nearest;
10709     };
10710
10711
10712
10713
10714
10715 }
10716 # 61 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 2 3
10717
10718 namespace std
10719 {
10720 # 72 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10721   template<typename _Tp>
10722     pair<_Tp*, ptrdiff_t>
10723     __get_temporary_buffer(ptrdiff_t __len, _Tp*)
10724     {
10725       const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
10726       if (__len > __max)
10727  __len = __max;
10728
10729       while (__len > 0)
10730  {
10731    _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
10732        nothrow));
10733    if (__tmp != 0)
10734      return pair<_Tp*, ptrdiff_t>(__tmp, __len);
10735    __len /= 2;
10736  }
10737       return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
10738     }
10739 # 108 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10740   template<typename _Tp>
10741     inline pair<_Tp*, ptrdiff_t>
10742     get_temporary_buffer(ptrdiff_t __len)
10743     { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
10744 # 120 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10745   template<typename _Tp>
10746     void
10747     return_temporary_buffer(_Tp* __p)
10748     { ::operator delete(__p, nothrow); }
10749 # 132 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10750   template<typename _Tp1>
10751     struct auto_ptr_ref
10752     {
10753       _Tp1* _M_ptr;
10754
10755       explicit
10756       auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
10757     };
10758 # 173 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10759   template<typename _Tp>
10760     class auto_ptr
10761     {
10762     private:
10763       _Tp* _M_ptr;
10764
10765     public:
10766
10767       typedef _Tp element_type;
10768
10769
10770
10771
10772
10773
10774
10775       explicit
10776       auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
10777 # 199 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10778       auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
10779 # 211 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10780       template<typename _Tp1>
10781         auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
10782 # 222 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10783       auto_ptr&
10784       operator=(auto_ptr& __a) throw()
10785       {
10786  reset(__a.release());
10787  return *this;
10788       }
10789 # 239 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10790       template<typename _Tp1>
10791         auto_ptr&
10792         operator=(auto_ptr<_Tp1>& __a) throw()
10793         {
10794    reset(__a.release());
10795    return *this;
10796  }
10797 # 259 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10798       ~auto_ptr() { delete _M_ptr; }
10799 # 269 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10800       element_type&
10801       operator*() const throw()
10802       {
10803  ;
10804  return *_M_ptr;
10805       }
10806
10807
10808
10809
10810
10811
10812
10813       element_type*
10814       operator->() const throw()
10815       {
10816  ;
10817  return _M_ptr;
10818       }
10819 # 299 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10820       element_type*
10821       get() const throw() { return _M_ptr; }
10822 # 313 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10823       element_type*
10824       release() throw()
10825       {
10826  element_type* __tmp = _M_ptr;
10827  _M_ptr = 0;
10828  return __tmp;
10829       }
10830 # 328 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10831       void
10832       reset(element_type* __p = 0) throw()
10833       {
10834  if (__p != _M_ptr)
10835    {
10836      delete _M_ptr;
10837      _M_ptr = __p;
10838    }
10839       }
10840 # 349 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/memory" 3
10841       auto_ptr(auto_ptr_ref<element_type> __ref) throw()
10842       : _M_ptr(__ref._M_ptr) { }
10843
10844       auto_ptr&
10845       operator=(auto_ptr_ref<element_type> __ref) throw()
10846       {
10847  if (__ref._M_ptr != this->get())
10848    {
10849      delete _M_ptr;
10850      _M_ptr = __ref._M_ptr;
10851    }
10852  return *this;
10853       }
10854
10855       template<typename _Tp1>
10856         operator auto_ptr_ref<_Tp1>() throw()
10857         { return auto_ptr_ref<_Tp1>(this->release()); }
10858
10859       template<typename _Tp1>
10860         operator auto_ptr<_Tp1>() throw()
10861         { return auto_ptr<_Tp1>(this->release()); }
10862   };
10863 }
10864 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 2 3
10865
10866
10867
10868 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 1 3
10869 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
10870 namespace std
10871 {
10872 # 101 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
10873   template <class _Arg, class _Result>
10874     struct unary_function
10875     {
10876       typedef _Arg argument_type;
10877
10878
10879       typedef _Result result_type;
10880     };
10881
10882
10883
10884
10885   template <class _Arg1, class _Arg2, class _Result>
10886     struct binary_function
10887     {
10888       typedef _Arg1 first_argument_type;
10889
10890
10891       typedef _Arg2 second_argument_type;
10892       typedef _Result result_type;
10893     };
10894 # 133 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
10895   template <class _Tp>
10896     struct plus : public binary_function<_Tp, _Tp, _Tp>
10897     {
10898       _Tp
10899       operator()(const _Tp& __x, const _Tp& __y) const
10900       { return __x + __y; }
10901     };
10902
10903
10904   template <class _Tp>
10905     struct minus : public binary_function<_Tp, _Tp, _Tp>
10906     {
10907       _Tp
10908       operator()(const _Tp& __x, const _Tp& __y) const
10909       { return __x - __y; }
10910     };
10911
10912
10913   template <class _Tp>
10914     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
10915     {
10916       _Tp
10917       operator()(const _Tp& __x, const _Tp& __y) const
10918       { return __x * __y; }
10919     };
10920
10921
10922   template <class _Tp>
10923     struct divides : public binary_function<_Tp, _Tp, _Tp>
10924     {
10925       _Tp
10926       operator()(const _Tp& __x, const _Tp& __y) const
10927       { return __x / __y; }
10928     };
10929
10930
10931   template <class _Tp>
10932     struct modulus : public binary_function<_Tp, _Tp, _Tp>
10933     {
10934       _Tp
10935       operator()(const _Tp& __x, const _Tp& __y) const
10936       { return __x % __y; }
10937     };
10938
10939
10940   template <class _Tp>
10941     struct negate : public unary_function<_Tp, _Tp>
10942     {
10943       _Tp
10944       operator()(const _Tp& __x) const
10945       { return -__x; }
10946     };
10947 # 195 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
10948   template <class _Tp>
10949     struct equal_to : public binary_function<_Tp, _Tp, bool>
10950     {
10951       bool
10952       operator()(const _Tp& __x, const _Tp& __y) const
10953       { return __x == __y; }
10954     };
10955
10956
10957   template <class _Tp>
10958     struct not_equal_to : public binary_function<_Tp, _Tp, bool>
10959     {
10960       bool
10961       operator()(const _Tp& __x, const _Tp& __y) const
10962       { return __x != __y; }
10963     };
10964
10965
10966   template <class _Tp>
10967     struct greater : public binary_function<_Tp, _Tp, bool>
10968     {
10969       bool
10970       operator()(const _Tp& __x, const _Tp& __y) const
10971       { return __x > __y; }
10972     };
10973
10974
10975   template <class _Tp>
10976     struct less : public binary_function<_Tp, _Tp, bool>
10977     {
10978       bool
10979       operator()(const _Tp& __x, const _Tp& __y) const
10980       { return __x < __y; }
10981     };
10982
10983
10984   template <class _Tp>
10985     struct greater_equal : public binary_function<_Tp, _Tp, bool>
10986     {
10987       bool
10988       operator()(const _Tp& __x, const _Tp& __y) const
10989       { return __x >= __y; }
10990     };
10991
10992
10993   template <class _Tp>
10994     struct less_equal : public binary_function<_Tp, _Tp, bool>
10995     {
10996       bool
10997       operator()(const _Tp& __x, const _Tp& __y) const
10998       { return __x <= __y; }
10999     };
11000 # 256 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
11001   template <class _Tp>
11002     struct logical_and : public binary_function<_Tp, _Tp, bool>
11003     {
11004       bool
11005       operator()(const _Tp& __x, const _Tp& __y) const
11006       { return __x && __y; }
11007     };
11008
11009
11010   template <class _Tp>
11011     struct logical_or : public binary_function<_Tp, _Tp, bool>
11012     {
11013       bool
11014       operator()(const _Tp& __x, const _Tp& __y) const
11015       { return __x || __y; }
11016     };
11017
11018
11019   template <class _Tp>
11020     struct logical_not : public unary_function<_Tp, bool>
11021     {
11022       bool
11023       operator()(const _Tp& __x) const
11024       { return !__x; }
11025     };
11026 # 311 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
11027   template <class _Predicate>
11028     class unary_negate
11029     : public unary_function<typename _Predicate::argument_type, bool>
11030     {
11031     protected:
11032       _Predicate _M_pred;
11033     public:
11034       explicit
11035       unary_negate(const _Predicate& __x) : _M_pred(__x) {}
11036
11037       bool
11038       operator()(const typename _Predicate::argument_type& __x) const
11039       { return !_M_pred(__x); }
11040     };
11041
11042
11043   template <class _Predicate>
11044     inline unary_negate<_Predicate>
11045     not1(const _Predicate& __pred)
11046     { return unary_negate<_Predicate>(__pred); }
11047
11048
11049   template <class _Predicate>
11050     class binary_negate
11051     : public binary_function<typename _Predicate::first_argument_type,
11052         typename _Predicate::second_argument_type,
11053         bool>
11054     {
11055     protected:
11056       _Predicate _M_pred;
11057     public:
11058       explicit
11059       binary_negate(const _Predicate& __x)
11060       : _M_pred(__x) { }
11061
11062       bool
11063       operator()(const typename _Predicate::first_argument_type& __x,
11064    const typename _Predicate::second_argument_type& __y) const
11065       { return !_M_pred(__x, __y); }
11066     };
11067
11068
11069   template <class _Predicate>
11070     inline binary_negate<_Predicate>
11071     not2(const _Predicate& __pred)
11072     { return binary_negate<_Predicate>(__pred); }
11073 # 391 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
11074   template <class _Operation>
11075     class binder1st
11076     : public unary_function<typename _Operation::second_argument_type,
11077        typename _Operation::result_type>
11078     {
11079     protected:
11080       _Operation op;
11081       typename _Operation::first_argument_type value;
11082     public:
11083       binder1st(const _Operation& __x,
11084   const typename _Operation::first_argument_type& __y)
11085       : op(__x), value(__y) {}
11086
11087       typename _Operation::result_type
11088       operator()(const typename _Operation::second_argument_type& __x) const
11089       { return op(value, __x); }
11090
11091
11092
11093       typename _Operation::result_type
11094       operator()(typename _Operation::second_argument_type& __x) const
11095       { return op(value, __x); }
11096     };
11097
11098
11099   template <class _Operation, class _Tp>
11100     inline binder1st<_Operation>
11101     bind1st(const _Operation& __fn, const _Tp& __x)
11102     {
11103       typedef typename _Operation::first_argument_type _Arg1_type;
11104       return binder1st<_Operation>(__fn, _Arg1_type(__x));
11105     }
11106
11107
11108   template <class _Operation>
11109     class binder2nd
11110     : public unary_function<typename _Operation::first_argument_type,
11111        typename _Operation::result_type>
11112     {
11113     protected:
11114       _Operation op;
11115       typename _Operation::second_argument_type value;
11116     public:
11117       binder2nd(const _Operation& __x,
11118   const typename _Operation::second_argument_type& __y)
11119       : op(__x), value(__y) {}
11120
11121       typename _Operation::result_type
11122       operator()(const typename _Operation::first_argument_type& __x) const
11123       { return op(__x, value); }
11124
11125
11126
11127       typename _Operation::result_type
11128       operator()(typename _Operation::first_argument_type& __x) const
11129       { return op(__x, value); }
11130     };
11131
11132
11133   template <class _Operation, class _Tp>
11134     inline binder2nd<_Operation>
11135     bind2nd(const _Operation& __fn, const _Tp& __x)
11136     {
11137       typedef typename _Operation::second_argument_type _Arg2_type;
11138       return binder2nd<_Operation>(__fn, _Arg2_type(__x));
11139     }
11140 # 480 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
11141   template <class _Arg, class _Result>
11142     class pointer_to_unary_function : public unary_function<_Arg, _Result>
11143     {
11144     protected:
11145       _Result (*_M_ptr)(_Arg);
11146     public:
11147       pointer_to_unary_function() {}
11148
11149       explicit
11150       pointer_to_unary_function(_Result (*__x)(_Arg))
11151       : _M_ptr(__x) {}
11152
11153       _Result
11154       operator()(_Arg __x) const
11155       { return _M_ptr(__x); }
11156     };
11157
11158
11159   template <class _Arg, class _Result>
11160     inline pointer_to_unary_function<_Arg, _Result>
11161     ptr_fun(_Result (*__x)(_Arg))
11162     { return pointer_to_unary_function<_Arg, _Result>(__x); }
11163
11164
11165   template <class _Arg1, class _Arg2, class _Result>
11166     class pointer_to_binary_function
11167     : public binary_function<_Arg1, _Arg2, _Result>
11168     {
11169     protected:
11170       _Result (*_M_ptr)(_Arg1, _Arg2);
11171     public:
11172       pointer_to_binary_function() {}
11173
11174       explicit
11175       pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
11176       : _M_ptr(__x) {}
11177
11178       _Result
11179       operator()(_Arg1 __x, _Arg2 __y) const
11180       { return _M_ptr(__x, __y); }
11181     };
11182
11183
11184   template <class _Arg1, class _Arg2, class _Result>
11185     inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
11186     ptr_fun(_Result (*__x)(_Arg1, _Arg2))
11187     { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
11188
11189
11190   template <class _Tp>
11191     struct _Identity : public unary_function<_Tp,_Tp>
11192     {
11193       _Tp&
11194       operator()(_Tp& __x) const
11195       { return __x; }
11196
11197       const _Tp&
11198       operator()(const _Tp& __x) const
11199       { return __x; }
11200     };
11201
11202   template <class _Pair>
11203     struct _Select1st : public unary_function<_Pair,
11204            typename _Pair::first_type>
11205     {
11206       typename _Pair::first_type&
11207       operator()(_Pair& __x) const
11208       { return __x.first; }
11209
11210       const typename _Pair::first_type&
11211       operator()(const _Pair& __x) const
11212       { return __x.first; }
11213     };
11214
11215   template <class _Pair>
11216     struct _Select2nd : public unary_function<_Pair,
11217            typename _Pair::second_type>
11218     {
11219       typename _Pair::second_type&
11220       operator()(_Pair& __x) const
11221       { return __x.second; }
11222
11223       const typename _Pair::second_type&
11224       operator()(const _Pair& __x) const
11225       { return __x.second; }
11226     };
11227 # 582 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_function.h" 3
11228   template <class _Ret, class _Tp>
11229     class mem_fun_t : public unary_function<_Tp*, _Ret>
11230     {
11231     public:
11232       explicit
11233       mem_fun_t(_Ret (_Tp::*__pf)())
11234       : _M_f(__pf) {}
11235
11236       _Ret
11237       operator()(_Tp* __p) const
11238       { return (__p->*_M_f)(); }
11239     private:
11240       _Ret (_Tp::*_M_f)();
11241     };
11242
11243
11244   template <class _Ret, class _Tp>
11245     class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
11246     {
11247     public:
11248       explicit
11249       const_mem_fun_t(_Ret (_Tp::*__pf)() const)
11250       : _M_f(__pf) {}
11251
11252       _Ret
11253       operator()(const _Tp* __p) const
11254       { return (__p->*_M_f)(); }
11255     private:
11256       _Ret (_Tp::*_M_f)() const;
11257     };
11258
11259
11260   template <class _Ret, class _Tp>
11261     class mem_fun_ref_t : public unary_function<_Tp, _Ret>
11262     {
11263     public:
11264       explicit
11265       mem_fun_ref_t(_Ret (_Tp::*__pf)())
11266       : _M_f(__pf) {}
11267
11268       _Ret
11269       operator()(_Tp& __r) const
11270       { return (__r.*_M_f)(); }
11271     private:
11272       _Ret (_Tp::*_M_f)();
11273   };
11274
11275
11276   template <class _Ret, class _Tp>
11277     class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
11278     {
11279     public:
11280       explicit
11281       const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
11282       : _M_f(__pf) {}
11283
11284       _Ret
11285       operator()(const _Tp& __r) const
11286       { return (__r.*_M_f)(); }
11287     private:
11288       _Ret (_Tp::*_M_f)() const;
11289     };
11290
11291
11292   template <class _Ret, class _Tp, class _Arg>
11293     class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
11294     {
11295     public:
11296       explicit
11297       mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
11298       : _M_f(__pf) {}
11299
11300       _Ret
11301       operator()(_Tp* __p, _Arg __x) const
11302       { return (__p->*_M_f)(__x); }
11303     private:
11304       _Ret (_Tp::*_M_f)(_Arg);
11305     };
11306
11307
11308   template <class _Ret, class _Tp, class _Arg>
11309     class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
11310     {
11311     public:
11312       explicit
11313       const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
11314       : _M_f(__pf) {}
11315
11316       _Ret
11317       operator()(const _Tp* __p, _Arg __x) const
11318       { return (__p->*_M_f)(__x); }
11319     private:
11320       _Ret (_Tp::*_M_f)(_Arg) const;
11321     };
11322
11323
11324   template <class _Ret, class _Tp, class _Arg>
11325     class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
11326     {
11327     public:
11328       explicit
11329       mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
11330       : _M_f(__pf) {}
11331
11332       _Ret
11333       operator()(_Tp& __r, _Arg __x) const
11334       { return (__r.*_M_f)(__x); }
11335     private:
11336       _Ret (_Tp::*_M_f)(_Arg);
11337     };
11338
11339
11340   template <class _Ret, class _Tp, class _Arg>
11341     class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
11342     {
11343     public:
11344       explicit
11345       const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
11346       : _M_f(__pf) {}
11347
11348       _Ret
11349       operator()(const _Tp& __r, _Arg __x) const
11350       { return (__r.*_M_f)(__x); }
11351     private:
11352       _Ret (_Tp::*_M_f)(_Arg) const;
11353     };
11354
11355
11356
11357   template <class _Ret, class _Tp>
11358     inline mem_fun_t<_Ret, _Tp>
11359     mem_fun(_Ret (_Tp::*__f)())
11360     { return mem_fun_t<_Ret, _Tp>(__f); }
11361
11362   template <class _Ret, class _Tp>
11363     inline const_mem_fun_t<_Ret, _Tp>
11364     mem_fun(_Ret (_Tp::*__f)() const)
11365     { return const_mem_fun_t<_Ret, _Tp>(__f); }
11366
11367   template <class _Ret, class _Tp>
11368     inline mem_fun_ref_t<_Ret, _Tp>
11369     mem_fun_ref(_Ret (_Tp::*__f)())
11370     { return mem_fun_ref_t<_Ret, _Tp>(__f); }
11371
11372   template <class _Ret, class _Tp>
11373     inline const_mem_fun_ref_t<_Ret, _Tp>
11374     mem_fun_ref(_Ret (_Tp::*__f)() const)
11375     { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
11376
11377   template <class _Ret, class _Tp, class _Arg>
11378     inline mem_fun1_t<_Ret, _Tp, _Arg>
11379     mem_fun(_Ret (_Tp::*__f)(_Arg))
11380     { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
11381
11382   template <class _Ret, class _Tp, class _Arg>
11383     inline const_mem_fun1_t<_Ret, _Tp, _Arg>
11384     mem_fun(_Ret (_Tp::*__f)(_Arg) const)
11385     { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
11386
11387   template <class _Ret, class _Tp, class _Arg>
11388     inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
11389     mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
11390     { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
11391
11392   template <class _Ret, class _Tp, class _Arg>
11393     inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
11394     mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
11395     { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
11396
11397
11398
11399 }
11400 # 52 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 2 3
11401 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 1 3
11402 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11403        
11404 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11405
11406 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/atomicity.h" 1 3
11407 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/atomicity.h" 3
11408 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/atomic_word.h" 1 3
11409 # 33 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/atomic_word.h" 3
11410 typedef int _Atomic_word;
11411 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/atomicity.h" 2 3
11412
11413 namespace __gnu_cxx
11414 {
11415   _Atomic_word
11416   __attribute__ ((__unused__))
11417   __exchange_and_add(volatile _Atomic_word* __mem, int __val);
11418
11419   void
11420   __attribute__ ((__unused__))
11421   __atomic_add(volatile _Atomic_word* __mem, int __val);
11422 }
11423 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 2 3
11424
11425
11426 namespace std
11427 {
11428 # 109 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11429   template<typename _CharT, typename _Traits, typename _Alloc>
11430     class basic_string
11431     {
11432       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
11433
11434
11435     public:
11436       typedef _Traits traits_type;
11437       typedef typename _Traits::char_type value_type;
11438       typedef _Alloc allocator_type;
11439       typedef typename _CharT_alloc_type::size_type size_type;
11440       typedef typename _CharT_alloc_type::difference_type difference_type;
11441       typedef typename _CharT_alloc_type::reference reference;
11442       typedef typename _CharT_alloc_type::const_reference const_reference;
11443       typedef typename _CharT_alloc_type::pointer pointer;
11444       typedef typename _CharT_alloc_type::const_pointer const_pointer;
11445       typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
11446       typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
11447                                                             const_iterator;
11448       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
11449       typedef std::reverse_iterator<iterator> reverse_iterator;
11450
11451     private:
11452 # 146 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11453       struct _Rep_base
11454       {
11455  size_type _M_length;
11456  size_type _M_capacity;
11457  _Atomic_word _M_refcount;
11458       };
11459
11460       struct _Rep : _Rep_base
11461       {
11462
11463  typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
11464 # 171 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11465  static const size_type _S_max_size;
11466  static const _CharT _S_terminal;
11467
11468
11469
11470         static size_type _S_empty_rep_storage[];
11471
11472         static _Rep&
11473         _S_empty_rep()
11474         {
11475    void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
11476    return *reinterpret_cast<_Rep*>(__p);
11477  }
11478
11479         bool
11480  _M_is_leaked() const
11481         { return this->_M_refcount < 0; }
11482
11483         bool
11484  _M_is_shared() const
11485         { return this->_M_refcount > 0; }
11486
11487         void
11488  _M_set_leaked()
11489         { this->_M_refcount = -1; }
11490
11491         void
11492  _M_set_sharable()
11493         { this->_M_refcount = 0; }
11494
11495  void
11496  _M_set_length_and_sharable(size_type __n)
11497  {
11498    this->_M_set_sharable();
11499    this->_M_length = __n;
11500    traits_type::assign(this->_M_refdata()[__n], _S_terminal);
11501
11502
11503  }
11504
11505  _CharT*
11506  _M_refdata() throw()
11507  { return reinterpret_cast<_CharT*>(this + 1); }
11508
11509  _CharT*
11510  _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
11511  {
11512    return (!_M_is_leaked() && __alloc1 == __alloc2)
11513            ? _M_refcopy() : _M_clone(__alloc1);
11514  }
11515
11516
11517  static _Rep*
11518  _S_create(size_type, size_type, const _Alloc&);
11519
11520  void
11521  _M_dispose(const _Alloc& __a)
11522  {
11523
11524    if (__builtin_expect(this != &_S_empty_rep(), false))
11525
11526      if (__gnu_cxx::__exchange_and_add(&this->_M_refcount, -1) <= 0)
11527        _M_destroy(__a);
11528  }
11529
11530  void
11531  _M_destroy(const _Alloc&) throw();
11532
11533  _CharT*
11534  _M_refcopy() throw()
11535  {
11536
11537    if (__builtin_expect(this != &_S_empty_rep(), false))
11538
11539             __gnu_cxx::__atomic_add(&this->_M_refcount, 1);
11540    return _M_refdata();
11541  }
11542
11543  _CharT*
11544  _M_clone(const _Alloc&, size_type __res = 0);
11545       };
11546
11547
11548       struct _Alloc_hider : _Alloc
11549       {
11550  _Alloc_hider(_CharT* __dat, const _Alloc& __a)
11551  : _Alloc(__a), _M_p(__dat) { }
11552
11553  _CharT* _M_p;
11554       };
11555
11556     public:
11557
11558
11559
11560
11561       static const size_type npos = static_cast<size_type>(-1);
11562
11563     private:
11564
11565       mutable _Alloc_hider _M_dataplus;
11566
11567       _CharT*
11568       _M_data() const
11569       { return _M_dataplus._M_p; }
11570
11571       _CharT*
11572       _M_data(_CharT* __p)
11573       { return (_M_dataplus._M_p = __p); }
11574
11575       _Rep*
11576       _M_rep() const
11577       { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
11578
11579
11580
11581       iterator
11582       _M_ibegin() const
11583       { return iterator(_M_data()); }
11584
11585       iterator
11586       _M_iend() const
11587       { return iterator(_M_data() + this->size()); }
11588
11589       void
11590       _M_leak()
11591       {
11592  if (!_M_rep()->_M_is_leaked())
11593    _M_leak_hard();
11594       }
11595
11596       size_type
11597       _M_check(size_type __pos, const char* __s) const
11598       {
11599  if (__pos > this->size())
11600    __throw_out_of_range((__s));
11601  return __pos;
11602       }
11603
11604       void
11605       _M_check_length(size_type __n1, size_type __n2, const char* __s) const
11606       {
11607  if (this->max_size() - (this->size() - __n1) < __n2)
11608    __throw_length_error((__s));
11609       }
11610
11611
11612       size_type
11613       _M_limit(size_type __pos, size_type __off) const
11614       {
11615  const bool __testoff = __off < this->size() - __pos;
11616  return __testoff ? __off : this->size() - __pos;
11617       }
11618
11619
11620       bool
11621       _M_disjunct(const _CharT* __s) const
11622       {
11623  return (less<const _CharT*>()(__s, _M_data())
11624   || less<const _CharT*>()(_M_data() + this->size(), __s));
11625       }
11626
11627
11628
11629       static void
11630       _M_copy(_CharT* __d, const _CharT* __s, size_type __n)
11631       {
11632  if (__n == 1)
11633    traits_type::assign(*__d, *__s);
11634  else
11635    traits_type::copy(__d, __s, __n);
11636       }
11637
11638       static void
11639       _M_move(_CharT* __d, const _CharT* __s, size_type __n)
11640       {
11641  if (__n == 1)
11642    traits_type::assign(*__d, *__s);
11643  else
11644    traits_type::move(__d, __s, __n);
11645       }
11646
11647       static void
11648       _M_assign(_CharT* __d, size_type __n, _CharT __c)
11649       {
11650  if (__n == 1)
11651    traits_type::assign(*__d, __c);
11652  else
11653    traits_type::assign(__d, __n, __c);
11654       }
11655
11656
11657
11658       template<class _Iterator>
11659         static void
11660         _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
11661         {
11662    for (; __k1 != __k2; ++__k1, ++__p)
11663      traits_type::assign(*__p, *__k1);
11664  }
11665
11666       static void
11667       _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
11668       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
11669
11670       static void
11671       _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
11672       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
11673
11674       static void
11675       _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
11676       { _M_copy(__p, __k1, __k2 - __k1); }
11677
11678       static void
11679       _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
11680       { _M_copy(__p, __k1, __k2 - __k1); }
11681
11682       void
11683       _M_mutate(size_type __pos, size_type __len1, size_type __len2);
11684
11685       void
11686       _M_leak_hard();
11687
11688       static _Rep&
11689       _S_empty_rep()
11690       { return _Rep::_S_empty_rep(); }
11691
11692     public:
11693
11694
11695
11696
11697
11698
11699
11700       inline
11701       basic_string();
11702
11703
11704
11705
11706       explicit
11707       basic_string(const _Alloc& __a);
11708
11709
11710
11711
11712
11713
11714       basic_string(const basic_string& __str);
11715
11716
11717
11718
11719
11720
11721       basic_string(const basic_string& __str, size_type __pos,
11722      size_type __n = npos);
11723
11724
11725
11726
11727
11728
11729
11730       basic_string(const basic_string& __str, size_type __pos,
11731      size_type __n, const _Alloc& __a);
11732 # 448 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11733       basic_string(const _CharT* __s, size_type __n,
11734      const _Alloc& __a = _Alloc());
11735
11736
11737
11738
11739
11740       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
11741
11742
11743
11744
11745
11746
11747       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
11748
11749
11750
11751
11752
11753
11754
11755       template<class _InputIterator>
11756         basic_string(_InputIterator __beg, _InputIterator __end,
11757        const _Alloc& __a = _Alloc());
11758
11759
11760
11761
11762       ~basic_string()
11763       { _M_rep()->_M_dispose(this->get_allocator()); }
11764
11765
11766
11767
11768
11769       basic_string&
11770       operator=(const basic_string& __str)
11771       { return this->assign(__str); }
11772
11773
11774
11775
11776
11777       basic_string&
11778       operator=(const _CharT* __s)
11779       { return this->assign(__s); }
11780 # 503 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11781       basic_string&
11782       operator=(_CharT __c)
11783       {
11784  this->assign(1, __c);
11785  return *this;
11786       }
11787
11788
11789
11790
11791
11792
11793       iterator
11794       begin()
11795       {
11796  _M_leak();
11797  return iterator(_M_data());
11798       }
11799
11800
11801
11802
11803
11804       const_iterator
11805       begin() const
11806       { return const_iterator(_M_data()); }
11807
11808
11809
11810
11811
11812       iterator
11813       end()
11814       {
11815  _M_leak();
11816  return iterator(_M_data() + this->size());
11817       }
11818
11819
11820
11821
11822
11823       const_iterator
11824       end() const
11825       { return const_iterator(_M_data() + this->size()); }
11826
11827
11828
11829
11830
11831
11832       reverse_iterator
11833       rbegin()
11834       { return reverse_iterator(this->end()); }
11835
11836
11837
11838
11839
11840
11841       const_reverse_iterator
11842       rbegin() const
11843       { return const_reverse_iterator(this->end()); }
11844
11845
11846
11847
11848
11849
11850       reverse_iterator
11851       rend()
11852       { return reverse_iterator(this->begin()); }
11853
11854
11855
11856
11857
11858
11859       const_reverse_iterator
11860       rend() const
11861       { return const_reverse_iterator(this->begin()); }
11862
11863     public:
11864
11865
11866
11867       size_type
11868       size() const
11869       { return _M_rep()->_M_length; }
11870
11871
11872
11873       size_type
11874       length() const
11875       { return _M_rep()->_M_length; }
11876
11877
11878       size_type
11879       max_size() const
11880       { return _Rep::_S_max_size; }
11881 # 614 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11882       void
11883       resize(size_type __n, _CharT __c);
11884 # 627 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11885       void
11886       resize(size_type __n)
11887       { this->resize(__n, _CharT()); }
11888
11889
11890
11891
11892
11893       size_type
11894       capacity() const
11895       { return _M_rep()->_M_capacity; }
11896 # 656 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11897       void
11898       reserve(size_type __res_arg = 0);
11899
11900
11901
11902
11903       void
11904       clear()
11905       { _M_mutate(0, this->size(), 0); }
11906
11907
11908
11909
11910       bool
11911       empty() const
11912       { return this->size() == 0; }
11913 # 684 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11914       const_reference
11915       operator[] (size_type __pos) const
11916       {
11917  ;
11918  return _M_data()[__pos];
11919       }
11920 # 701 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11921       reference
11922       operator[](size_type __pos)
11923       {
11924
11925  ;
11926
11927  ;
11928  _M_leak();
11929  return _M_data()[__pos];
11930       }
11931 # 722 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11932       const_reference
11933       at(size_type __n) const
11934       {
11935  if (__n >= this->size())
11936    __throw_out_of_range(("basic_string::at"));
11937  return _M_data()[__n];
11938       }
11939 # 741 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11940       reference
11941       at(size_type __n)
11942       {
11943  if (__n >= size())
11944    __throw_out_of_range(("basic_string::at"));
11945  _M_leak();
11946  return _M_data()[__n];
11947       }
11948
11949
11950
11951
11952
11953
11954
11955       basic_string&
11956       operator+=(const basic_string& __str)
11957       { return this->append(__str); }
11958
11959
11960
11961
11962
11963
11964       basic_string&
11965       operator+=(const _CharT* __s)
11966       { return this->append(__s); }
11967
11968
11969
11970
11971
11972
11973       basic_string&
11974       operator+=(_CharT __c)
11975       {
11976  this->push_back(__c);
11977  return *this;
11978       }
11979
11980
11981
11982
11983
11984
11985       basic_string&
11986       append(const basic_string& __str);
11987 # 801 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
11988       basic_string&
11989       append(const basic_string& __str, size_type __pos, size_type __n);
11990
11991
11992
11993
11994
11995
11996
11997       basic_string&
11998       append(const _CharT* __s, size_type __n);
11999
12000
12001
12002
12003
12004
12005       basic_string&
12006       append(const _CharT* __s)
12007       {
12008  ;
12009  return this->append(__s, traits_type::length(__s));
12010       }
12011 # 833 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12012       basic_string&
12013       append(size_type __n, _CharT __c);
12014 # 844 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12015       template<class _InputIterator>
12016         basic_string&
12017         append(_InputIterator __first, _InputIterator __last)
12018         { return this->replace(_M_iend(), _M_iend(), __first, __last); }
12019
12020
12021
12022
12023
12024       void
12025       push_back(_CharT __c)
12026       {
12027  const size_type __len = 1 + this->size();
12028  if (__len > this->capacity() || _M_rep()->_M_is_shared())
12029    this->reserve(__len);
12030  traits_type::assign(_M_data()[this->size()], __c);
12031  _M_rep()->_M_set_length_and_sharable(__len);
12032       }
12033
12034
12035
12036
12037
12038
12039       basic_string&
12040       assign(const basic_string& __str);
12041 # 883 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12042       basic_string&
12043       assign(const basic_string& __str, size_type __pos, size_type __n)
12044       { return this->assign(__str._M_data()
12045        + __str._M_check(__pos, "basic_string::assign"),
12046        __str._M_limit(__pos, __n)); }
12047 # 899 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12048       basic_string&
12049       assign(const _CharT* __s, size_type __n);
12050 # 911 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12051       basic_string&
12052       assign(const _CharT* __s)
12053       {
12054  ;
12055  return this->assign(__s, traits_type::length(__s));
12056       }
12057 # 927 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12058       basic_string&
12059       assign(size_type __n, _CharT __c)
12060       { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
12061 # 939 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12062       template<class _InputIterator>
12063         basic_string&
12064         assign(_InputIterator __first, _InputIterator __last)
12065         { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
12066 # 956 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12067       void
12068       insert(iterator __p, size_type __n, _CharT __c)
12069       { this->replace(__p, __p, __n, __c); }
12070 # 971 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12071       template<class _InputIterator>
12072         void
12073         insert(iterator __p, _InputIterator __beg, _InputIterator __end)
12074         { this->replace(__p, __p, __beg, __end); }
12075 # 987 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12076       basic_string&
12077       insert(size_type __pos1, const basic_string& __str)
12078       { return this->insert(__pos1, __str, size_type(0), __str.size()); }
12079 # 1009 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12080       basic_string&
12081       insert(size_type __pos1, const basic_string& __str,
12082       size_type __pos2, size_type __n)
12083       { return this->insert(__pos1, __str._M_data()
12084        + __str._M_check(__pos2, "basic_string::insert"),
12085        __str._M_limit(__pos2, __n)); }
12086 # 1032 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12087       basic_string&
12088       insert(size_type __pos, const _CharT* __s, size_type __n);
12089 # 1050 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12090       basic_string&
12091       insert(size_type __pos, const _CharT* __s)
12092       {
12093  ;
12094  return this->insert(__pos, __s, traits_type::length(__s));
12095       }
12096 # 1073 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12097       basic_string&
12098       insert(size_type __pos, size_type __n, _CharT __c)
12099       { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
12100          size_type(0), __n, __c); }
12101 # 1090 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12102       iterator
12103       insert(iterator __p, _CharT __c)
12104       {
12105  ;
12106  const size_type __pos = __p - _M_ibegin();
12107  _M_replace_aux(__pos, size_type(0), size_type(1), __c);
12108  _M_rep()->_M_set_leaked();
12109  return this->_M_ibegin() + __pos;
12110       }
12111 # 1114 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12112       basic_string&
12113       erase(size_type __pos = 0, size_type __n = npos)
12114       {
12115  _M_mutate(_M_check(__pos, "basic_string::erase"),
12116     _M_limit(__pos, __n), size_type(0));
12117  return *this;
12118       }
12119 # 1130 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12120       iterator
12121       erase(iterator __position)
12122       {
12123  ;
12124
12125  const size_type __pos = __position - _M_ibegin();
12126  _M_mutate(__pos, size_type(1), size_type(0));
12127  _M_rep()->_M_set_leaked();
12128  return _M_ibegin() + __pos;
12129       }
12130 # 1150 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12131       iterator
12132       erase(iterator __first, iterator __last)
12133       {
12134  ;
12135
12136         const size_type __pos = __first - _M_ibegin();
12137  _M_mutate(__pos, __last - __first, size_type(0));
12138  _M_rep()->_M_set_leaked();
12139  return _M_ibegin() + __pos;
12140       }
12141 # 1177 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12142       basic_string&
12143       replace(size_type __pos, size_type __n, const basic_string& __str)
12144       { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
12145 # 1199 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12146       basic_string&
12147       replace(size_type __pos1, size_type __n1, const basic_string& __str,
12148        size_type __pos2, size_type __n2)
12149       { return this->replace(__pos1, __n1, __str._M_data()
12150         + __str._M_check(__pos2, "basic_string::replace"),
12151         __str._M_limit(__pos2, __n2)); }
12152 # 1223 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12153       basic_string&
12154       replace(size_type __pos, size_type __n1, const _CharT* __s,
12155        size_type __n2);
12156 # 1242 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12157       basic_string&
12158       replace(size_type __pos, size_type __n1, const _CharT* __s)
12159       {
12160  ;
12161  return this->replace(__pos, __n1, __s, traits_type::length(__s));
12162       }
12163 # 1265 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12164       basic_string&
12165       replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
12166       { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
12167          _M_limit(__pos, __n1), __n2, __c); }
12168 # 1283 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12169       basic_string&
12170       replace(iterator __i1, iterator __i2, const basic_string& __str)
12171       { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
12172 # 1301 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12173       basic_string&
12174       replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
12175       {
12176  ;
12177
12178  return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
12179       }
12180 # 1322 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12181       basic_string&
12182       replace(iterator __i1, iterator __i2, const _CharT* __s)
12183       {
12184  ;
12185  return this->replace(__i1, __i2, __s, traits_type::length(__s));
12186       }
12187 # 1343 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12188       basic_string&
12189       replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
12190       {
12191  ;
12192
12193  return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
12194       }
12195 # 1365 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12196       template<class _InputIterator>
12197         basic_string&
12198         replace(iterator __i1, iterator __i2,
12199   _InputIterator __k1, _InputIterator __k2)
12200         {
12201    ;
12202
12203    ;
12204    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
12205    return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
12206  }
12207
12208
12209
12210       basic_string&
12211       replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
12212       {
12213  ;
12214
12215  ;
12216  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12217         __k1, __k2 - __k1);
12218       }
12219
12220       basic_string&
12221       replace(iterator __i1, iterator __i2,
12222        const _CharT* __k1, const _CharT* __k2)
12223       {
12224  ;
12225
12226  ;
12227  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12228         __k1, __k2 - __k1);
12229       }
12230
12231       basic_string&
12232       replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
12233       {
12234  ;
12235
12236  ;
12237  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12238         __k1.base(), __k2 - __k1);
12239       }
12240
12241       basic_string&
12242       replace(iterator __i1, iterator __i2,
12243        const_iterator __k1, const_iterator __k2)
12244       {
12245  ;
12246
12247  ;
12248  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
12249         __k1.base(), __k2 - __k1);
12250       }
12251
12252     private:
12253       template<class _Integer>
12254  basic_string&
12255  _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
12256        _Integer __val, __true_type)
12257         { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
12258
12259       template<class _InputIterator>
12260  basic_string&
12261  _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
12262        _InputIterator __k2, __false_type);
12263
12264       basic_string&
12265       _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
12266        _CharT __c);
12267
12268       basic_string&
12269       _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
12270         size_type __n2);
12271
12272
12273
12274       template<class _InIterator>
12275         static _CharT*
12276         _S_construct_aux(_InIterator __beg, _InIterator __end,
12277     const _Alloc& __a, __false_type)
12278  {
12279           typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
12280           return _S_construct(__beg, __end, __a, _Tag());
12281  }
12282
12283       template<class _InIterator>
12284         static _CharT*
12285         _S_construct_aux(_InIterator __beg, _InIterator __end,
12286     const _Alloc& __a, __true_type)
12287  { return _S_construct(static_cast<size_type>(__beg),
12288          static_cast<value_type>(__end), __a); }
12289
12290       template<class _InIterator>
12291         static _CharT*
12292         _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
12293  {
12294    typedef typename std::__is_integer<_InIterator>::__type _Integral;
12295    return _S_construct_aux(__beg, __end, __a, _Integral());
12296         }
12297
12298
12299       template<class _InIterator>
12300         static _CharT*
12301          _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
12302         input_iterator_tag);
12303
12304
12305
12306       template<class _FwdIterator>
12307         static _CharT*
12308         _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
12309        forward_iterator_tag);
12310
12311       static _CharT*
12312       _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
12313
12314     public:
12315 # 1496 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12316       size_type
12317       copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
12318 # 1506 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12319       void
12320       swap(basic_string& __s);
12321 # 1516 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12322       const _CharT*
12323       c_str() const
12324       { return _M_data(); }
12325
12326
12327
12328
12329
12330
12331
12332       const _CharT*
12333       data() const
12334       { return _M_data(); }
12335
12336
12337
12338
12339       allocator_type
12340       get_allocator() const
12341       { return _M_dataplus; }
12342 # 1548 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12343       size_type
12344       find(const _CharT* __s, size_type __pos, size_type __n) const;
12345 # 1561 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12346       size_type
12347       find(const basic_string& __str, size_type __pos = 0) const
12348       { return this->find(__str.data(), __pos, __str.size()); }
12349 # 1575 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12350       size_type
12351       find(const _CharT* __s, size_type __pos = 0) const
12352       {
12353  ;
12354  return this->find(__s, __pos, traits_type::length(__s));
12355       }
12356 # 1592 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12357       size_type
12358       find(_CharT __c, size_type __pos = 0) const;
12359 # 1605 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12360       size_type
12361       rfind(const basic_string& __str, size_type __pos = npos) const
12362       { return this->rfind(__str.data(), __pos, __str.size()); }
12363 # 1620 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12364       size_type
12365       rfind(const _CharT* __s, size_type __pos, size_type __n) const;
12366 # 1633 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12367       size_type
12368       rfind(const _CharT* __s, size_type __pos = npos) const
12369       {
12370  ;
12371  return this->rfind(__s, __pos, traits_type::length(__s));
12372       }
12373 # 1650 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12374       size_type
12375       rfind(_CharT __c, size_type __pos = npos) const;
12376 # 1663 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12377       size_type
12378       find_first_of(const basic_string& __str, size_type __pos = 0) const
12379       { return this->find_first_of(__str.data(), __pos, __str.size()); }
12380 # 1678 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12381       size_type
12382       find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
12383 # 1691 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12384       size_type
12385       find_first_of(const _CharT* __s, size_type __pos = 0) const
12386       {
12387  ;
12388  return this->find_first_of(__s, __pos, traits_type::length(__s));
12389       }
12390 # 1710 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12391       size_type
12392       find_first_of(_CharT __c, size_type __pos = 0) const
12393       { return this->find(__c, __pos); }
12394 # 1724 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12395       size_type
12396       find_last_of(const basic_string& __str, size_type __pos = npos) const
12397       { return this->find_last_of(__str.data(), __pos, __str.size()); }
12398 # 1739 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12399       size_type
12400       find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
12401 # 1752 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12402       size_type
12403       find_last_of(const _CharT* __s, size_type __pos = npos) const
12404       {
12405  ;
12406  return this->find_last_of(__s, __pos, traits_type::length(__s));
12407       }
12408 # 1771 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12409       size_type
12410       find_last_of(_CharT __c, size_type __pos = npos) const
12411       { return this->rfind(__c, __pos); }
12412 # 1785 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12413       size_type
12414       find_first_not_of(const basic_string& __str, size_type __pos = 0) const
12415       { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
12416 # 1800 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12417       size_type
12418       find_first_not_of(const _CharT* __s, size_type __pos,
12419    size_type __n) const;
12420 # 1814 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12421       size_type
12422       find_first_not_of(const _CharT* __s, size_type __pos = 0) const
12423       {
12424  ;
12425  return this->find_first_not_of(__s, __pos, traits_type::length(__s));
12426       }
12427 # 1831 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12428       size_type
12429       find_first_not_of(_CharT __c, size_type __pos = 0) const;
12430 # 1844 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12431       size_type
12432       find_last_not_of(const basic_string& __str, size_type __pos = npos) const
12433       { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
12434 # 1860 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12435       size_type
12436       find_last_not_of(const _CharT* __s, size_type __pos,
12437          size_type __n) const;
12438 # 1873 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12439       size_type
12440       find_last_not_of(const _CharT* __s, size_type __pos = npos) const
12441       {
12442  ;
12443  return this->find_last_not_of(__s, __pos, traits_type::length(__s));
12444       }
12445 # 1890 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12446       size_type
12447       find_last_not_of(_CharT __c, size_type __pos = npos) const;
12448 # 1905 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12449       basic_string
12450       substr(size_type __pos = 0, size_type __n = npos) const
12451       { return basic_string(*this,
12452        _M_check(__pos, "basic_string::substr"), __n); }
12453 # 1923 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12454       int
12455       compare(const basic_string& __str) const
12456       {
12457  const size_type __size = this->size();
12458  const size_type __osize = __str.size();
12459  const size_type __len = std::min(__size, __osize);
12460
12461  int __r = traits_type::compare(_M_data(), __str.data(), __len);
12462  if (!__r)
12463    __r = __size - __osize;
12464  return __r;
12465       }
12466 # 1953 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12467       int
12468       compare(size_type __pos, size_type __n, const basic_string& __str) const;
12469 # 1977 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12470       int
12471       compare(size_type __pos1, size_type __n1, const basic_string& __str,
12472        size_type __pos2, size_type __n2) const;
12473 # 1995 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12474       int
12475       compare(const _CharT* __s) const;
12476 # 2018 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12477       int
12478       compare(size_type __pos, size_type __n1, const _CharT* __s) const;
12479 # 2043 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12480       int
12481       compare(size_type __pos, size_type __n1, const _CharT* __s,
12482        size_type __n2) const;
12483   };
12484
12485   template<typename _CharT, typename _Traits, typename _Alloc>
12486     inline basic_string<_CharT, _Traits, _Alloc>::
12487     basic_string()
12488
12489     : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
12490 # 2064 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12491   template<typename _CharT, typename _Traits, typename _Alloc>
12492     basic_string<_CharT, _Traits, _Alloc>
12493     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12494        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12495     {
12496       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
12497       __str.append(__rhs);
12498       return __str;
12499     }
12500
12501
12502
12503
12504
12505
12506
12507   template<typename _CharT, typename _Traits, typename _Alloc>
12508     basic_string<_CharT,_Traits,_Alloc>
12509     operator+(const _CharT* __lhs,
12510        const basic_string<_CharT,_Traits,_Alloc>& __rhs);
12511
12512
12513
12514
12515
12516
12517
12518   template<typename _CharT, typename _Traits, typename _Alloc>
12519     basic_string<_CharT,_Traits,_Alloc>
12520     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
12521
12522
12523
12524
12525
12526
12527
12528   template<typename _CharT, typename _Traits, typename _Alloc>
12529     inline basic_string<_CharT, _Traits, _Alloc>
12530     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12531       const _CharT* __rhs)
12532     {
12533       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
12534       __str.append(__rhs);
12535       return __str;
12536     }
12537
12538
12539
12540
12541
12542
12543
12544   template<typename _CharT, typename _Traits, typename _Alloc>
12545     inline basic_string<_CharT, _Traits, _Alloc>
12546     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
12547     {
12548       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
12549       typedef typename __string_type::size_type __size_type;
12550       __string_type __str(__lhs);
12551       __str.append(__size_type(1), __rhs);
12552       return __str;
12553     }
12554 # 2135 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12555   template<typename _CharT, typename _Traits, typename _Alloc>
12556     inline bool
12557     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12558         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12559     { return __lhs.compare(__rhs) == 0; }
12560
12561
12562
12563
12564
12565
12566
12567   template<typename _CharT, typename _Traits, typename _Alloc>
12568     inline bool
12569     operator==(const _CharT* __lhs,
12570         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12571     { return __rhs.compare(__lhs) == 0; }
12572
12573
12574
12575
12576
12577
12578
12579   template<typename _CharT, typename _Traits, typename _Alloc>
12580     inline bool
12581     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12582         const _CharT* __rhs)
12583     { return __lhs.compare(__rhs) == 0; }
12584 # 2172 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12585   template<typename _CharT, typename _Traits, typename _Alloc>
12586     inline bool
12587     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12588         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12589     { return __rhs.compare(__lhs) != 0; }
12590
12591
12592
12593
12594
12595
12596
12597   template<typename _CharT, typename _Traits, typename _Alloc>
12598     inline bool
12599     operator!=(const _CharT* __lhs,
12600         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12601     { return __rhs.compare(__lhs) != 0; }
12602
12603
12604
12605
12606
12607
12608
12609   template<typename _CharT, typename _Traits, typename _Alloc>
12610     inline bool
12611     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12612         const _CharT* __rhs)
12613     { return __lhs.compare(__rhs) != 0; }
12614 # 2209 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12615   template<typename _CharT, typename _Traits, typename _Alloc>
12616     inline bool
12617     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12618        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12619     { return __lhs.compare(__rhs) < 0; }
12620
12621
12622
12623
12624
12625
12626
12627   template<typename _CharT, typename _Traits, typename _Alloc>
12628     inline bool
12629     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12630        const _CharT* __rhs)
12631     { return __lhs.compare(__rhs) < 0; }
12632
12633
12634
12635
12636
12637
12638
12639   template<typename _CharT, typename _Traits, typename _Alloc>
12640     inline bool
12641     operator<(const _CharT* __lhs,
12642        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12643     { return __rhs.compare(__lhs) > 0; }
12644 # 2246 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12645   template<typename _CharT, typename _Traits, typename _Alloc>
12646     inline bool
12647     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12648        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12649     { return __lhs.compare(__rhs) > 0; }
12650
12651
12652
12653
12654
12655
12656
12657   template<typename _CharT, typename _Traits, typename _Alloc>
12658     inline bool
12659     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12660        const _CharT* __rhs)
12661     { return __lhs.compare(__rhs) > 0; }
12662
12663
12664
12665
12666
12667
12668
12669   template<typename _CharT, typename _Traits, typename _Alloc>
12670     inline bool
12671     operator>(const _CharT* __lhs,
12672        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12673     { return __rhs.compare(__lhs) < 0; }
12674 # 2283 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12675   template<typename _CharT, typename _Traits, typename _Alloc>
12676     inline bool
12677     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12678         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12679     { return __lhs.compare(__rhs) <= 0; }
12680
12681
12682
12683
12684
12685
12686
12687   template<typename _CharT, typename _Traits, typename _Alloc>
12688     inline bool
12689     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12690         const _CharT* __rhs)
12691     { return __lhs.compare(__rhs) <= 0; }
12692
12693
12694
12695
12696
12697
12698
12699   template<typename _CharT, typename _Traits, typename _Alloc>
12700     inline bool
12701     operator<=(const _CharT* __lhs,
12702         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12703     { return __rhs.compare(__lhs) >= 0; }
12704 # 2320 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12705   template<typename _CharT, typename _Traits, typename _Alloc>
12706     inline bool
12707     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12708         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12709     { return __lhs.compare(__rhs) >= 0; }
12710
12711
12712
12713
12714
12715
12716
12717   template<typename _CharT, typename _Traits, typename _Alloc>
12718     inline bool
12719     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
12720         const _CharT* __rhs)
12721     { return __lhs.compare(__rhs) >= 0; }
12722
12723
12724
12725
12726
12727
12728
12729   template<typename _CharT, typename _Traits, typename _Alloc>
12730     inline bool
12731     operator>=(const _CharT* __lhs,
12732       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
12733     { return __rhs.compare(__lhs) <= 0; }
12734 # 2357 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12735   template<typename _CharT, typename _Traits, typename _Alloc>
12736     inline void
12737     swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
12738   basic_string<_CharT, _Traits, _Alloc>& __rhs)
12739     { __lhs.swap(__rhs); }
12740 # 2374 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12741   template<typename _CharT, typename _Traits, typename _Alloc>
12742     basic_istream<_CharT, _Traits>&
12743     operator>>(basic_istream<_CharT, _Traits>& __is,
12744         basic_string<_CharT, _Traits, _Alloc>& __str);
12745
12746   template<>
12747     basic_istream<char>&
12748     operator>>(basic_istream<char>& __is, basic_string<char>& __str);
12749 # 2392 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12750   template<typename _CharT, typename _Traits, typename _Alloc>
12751     basic_ostream<_CharT, _Traits>&
12752     operator<<(basic_ostream<_CharT, _Traits>& __os,
12753         const basic_string<_CharT, _Traits, _Alloc>& __str);
12754 # 2410 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12755   template<typename _CharT, typename _Traits, typename _Alloc>
12756     basic_istream<_CharT, _Traits>&
12757     getline(basic_istream<_CharT, _Traits>& __is,
12758      basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
12759 # 2427 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.h" 3
12760   template<typename _CharT, typename _Traits, typename _Alloc>
12761     inline basic_istream<_CharT, _Traits>&
12762     getline(basic_istream<_CharT, _Traits>& __is,
12763      basic_string<_CharT, _Traits, _Alloc>& __str);
12764
12765   template<>
12766     basic_istream<char>&
12767     getline(basic_istream<char>& __in, basic_string<char>& __str,
12768      char __delim);
12769
12770
12771
12772
12773
12774
12775
12776 }
12777 # 53 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 2 3
12778
12779
12780 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/algorithm" 1 3
12781 # 63 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/algorithm" 3
12782        
12783 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/algorithm" 3
12784
12785
12786
12787
12788 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 1 3
12789 # 65 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
12790 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 1 3
12791 # 65 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
12792 namespace std
12793 {
12794
12795
12796
12797   template<typename _RandomAccessIterator, typename _Distance>
12798     bool
12799     __is_heap(_RandomAccessIterator __first, _Distance __n)
12800     {
12801       _Distance __parent = 0;
12802       for (_Distance __child = 1; __child < __n; ++__child)
12803  {
12804    if (__first[__parent] < __first[__child])
12805      return false;
12806    if ((__child & 1) == 0)
12807      ++__parent;
12808  }
12809       return true;
12810     }
12811
12812   template<typename _RandomAccessIterator, typename _Distance,
12813            typename _StrictWeakOrdering>
12814     bool
12815     __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
12816        _Distance __n)
12817     {
12818       _Distance __parent = 0;
12819       for (_Distance __child = 1; __child < __n; ++__child)
12820  {
12821    if (__comp(__first[__parent], __first[__child]))
12822      return false;
12823    if ((__child & 1) == 0)
12824      ++__parent;
12825  }
12826       return true;
12827     }
12828
12829   template<typename _RandomAccessIterator>
12830     bool
12831     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
12832     { return std::__is_heap(__first, std::distance(__first, __last)); }
12833
12834   template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
12835     bool
12836     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
12837      _StrictWeakOrdering __comp)
12838     { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
12839
12840
12841
12842   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
12843     void
12844     __push_heap(_RandomAccessIterator __first,
12845   _Distance __holeIndex, _Distance __topIndex, _Tp __value)
12846     {
12847       _Distance __parent = (__holeIndex - 1) / 2;
12848       while (__holeIndex > __topIndex && *(__first + __parent) < __value)
12849  {
12850    *(__first + __holeIndex) = *(__first + __parent);
12851    __holeIndex = __parent;
12852    __parent = (__holeIndex - 1) / 2;
12853  }
12854       *(__first + __holeIndex) = __value;
12855     }
12856 # 139 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
12857   template<typename _RandomAccessIterator>
12858     inline void
12859     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
12860     {
12861       typedef typename iterator_traits<_RandomAccessIterator>::value_type
12862    _ValueType;
12863       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
12864    _DistanceType;
12865
12866
12867      
12868
12869      
12870       ;
12871
12872
12873       std::__push_heap(__first, _DistanceType((__last - __first) - 1),
12874          _DistanceType(0), _ValueType(*(__last - 1)));
12875     }
12876
12877   template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
12878      typename _Compare>
12879     void
12880     __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
12881   _Distance __topIndex, _Tp __value, _Compare __comp)
12882     {
12883       _Distance __parent = (__holeIndex - 1) / 2;
12884       while (__holeIndex > __topIndex
12885       && __comp(*(__first + __parent), __value))
12886  {
12887    *(__first + __holeIndex) = *(__first + __parent);
12888    __holeIndex = __parent;
12889    __parent = (__holeIndex - 1) / 2;
12890  }
12891       *(__first + __holeIndex) = __value;
12892     }
12893 # 187 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
12894   template<typename _RandomAccessIterator, typename _Compare>
12895     inline void
12896     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
12897        _Compare __comp)
12898     {
12899       typedef typename iterator_traits<_RandomAccessIterator>::value_type
12900    _ValueType;
12901       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
12902    _DistanceType;
12903
12904
12905      
12906
12907       ;
12908       ;
12909
12910       std::__push_heap(__first, _DistanceType((__last - __first) - 1),
12911          _DistanceType(0), _ValueType(*(__last - 1)), __comp);
12912     }
12913
12914   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
12915     void
12916     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
12917     _Distance __len, _Tp __value)
12918     {
12919       const _Distance __topIndex = __holeIndex;
12920       _Distance __secondChild = 2 * __holeIndex + 2;
12921       while (__secondChild < __len)
12922  {
12923    if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
12924      __secondChild--;
12925    *(__first + __holeIndex) = *(__first + __secondChild);
12926    __holeIndex = __secondChild;
12927    __secondChild = 2 * (__secondChild + 1);
12928  }
12929       if (__secondChild == __len)
12930  {
12931    *(__first + __holeIndex) = *(__first + (__secondChild - 1));
12932    __holeIndex = __secondChild - 1;
12933  }
12934       std::__push_heap(__first, __holeIndex, __topIndex, __value);
12935     }
12936
12937   template<typename _RandomAccessIterator, typename _Tp>
12938     inline void
12939     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
12940         _RandomAccessIterator __result, _Tp __value)
12941     {
12942       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
12943  _Distance;
12944       *__result = *__first;
12945       std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
12946     __value);
12947     }
12948 # 251 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
12949   template<typename _RandomAccessIterator>
12950     inline void
12951     pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
12952     {
12953       typedef typename iterator_traits<_RandomAccessIterator>::value_type
12954  _ValueType;
12955
12956
12957      
12958
12959      
12960       ;
12961       ;
12962
12963       std::__pop_heap(__first, __last - 1, __last - 1,
12964         _ValueType(*(__last - 1)));
12965     }
12966
12967   template<typename _RandomAccessIterator, typename _Distance,
12968     typename _Tp, typename _Compare>
12969     void
12970     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
12971     _Distance __len, _Tp __value, _Compare __comp)
12972     {
12973       const _Distance __topIndex = __holeIndex;
12974       _Distance __secondChild = 2 * __holeIndex + 2;
12975       while (__secondChild < __len)
12976  {
12977    if (__comp(*(__first + __secondChild),
12978        *(__first + (__secondChild - 1))))
12979      __secondChild--;
12980    *(__first + __holeIndex) = *(__first + __secondChild);
12981    __holeIndex = __secondChild;
12982    __secondChild = 2 * (__secondChild + 1);
12983  }
12984       if (__secondChild == __len)
12985  {
12986    *(__first + __holeIndex) = *(__first + (__secondChild - 1));
12987    __holeIndex = __secondChild - 1;
12988  }
12989       std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
12990     }
12991
12992   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
12993     inline void
12994     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
12995         _RandomAccessIterator __result, _Tp __value, _Compare __comp)
12996     {
12997       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
12998  _Distance;
12999       *__result = *__first;
13000       std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
13001     __value, __comp);
13002     }
13003 # 317 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
13004   template<typename _RandomAccessIterator, typename _Compare>
13005     inline void
13006     pop_heap(_RandomAccessIterator __first,
13007       _RandomAccessIterator __last, _Compare __comp)
13008     {
13009
13010      
13011
13012       ;
13013       ;
13014
13015       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13016  _ValueType;
13017       std::__pop_heap(__first, __last - 1, __last - 1,
13018         _ValueType(*(__last - 1)), __comp);
13019     }
13020 # 342 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
13021   template<typename _RandomAccessIterator>
13022     void
13023     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
13024     {
13025       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13026    _ValueType;
13027       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13028    _DistanceType;
13029
13030
13031      
13032
13033      
13034       ;
13035
13036       if (__last - __first < 2)
13037  return;
13038
13039       const _DistanceType __len = __last - __first;
13040       _DistanceType __parent = (__len - 2) / 2;
13041       while (true)
13042  {
13043    std::__adjust_heap(__first, __parent, __len,
13044         _ValueType(*(__first + __parent)));
13045    if (__parent == 0)
13046      return;
13047    __parent--;
13048  }
13049     }
13050 # 382 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
13051   template<typename _RandomAccessIterator, typename _Compare>
13052     inline void
13053     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
13054        _Compare __comp)
13055     {
13056       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13057    _ValueType;
13058       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13059    _DistanceType;
13060
13061
13062      
13063
13064       ;
13065
13066       if (__last - __first < 2)
13067  return;
13068
13069       const _DistanceType __len = __last - __first;
13070       _DistanceType __parent = (__len - 2) / 2;
13071       while (true)
13072  {
13073    std::__adjust_heap(__first, __parent, __len,
13074         _ValueType(*(__first + __parent)), __comp);
13075    if (__parent == 0)
13076      return;
13077    __parent--;
13078  }
13079     }
13080 # 420 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
13081   template<typename _RandomAccessIterator>
13082     void
13083     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
13084     {
13085
13086      
13087
13088      
13089
13090       ;
13091
13092
13093       while (__last - __first > 1)
13094  std::pop_heap(__first, __last--);
13095     }
13096 # 446 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_heap.h" 3
13097   template<typename _RandomAccessIterator, typename _Compare>
13098     void
13099     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
13100        _Compare __comp)
13101     {
13102
13103      
13104
13105       ;
13106       ;
13107
13108       while (__last - __first > 1)
13109  std::pop_heap(__first, __last--, __comp);
13110     }
13111
13112 }
13113 # 66 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 2 3
13114 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_tempbuf.h" 1 3
13115 # 66 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_tempbuf.h" 3
13116 namespace std
13117 {
13118
13119
13120
13121
13122
13123
13124
13125   template<typename _ForwardIterator, typename _Tp>
13126     class _Temporary_buffer
13127     {
13128
13129      
13130
13131  public:
13132       typedef _Tp value_type;
13133       typedef value_type* pointer;
13134       typedef pointer iterator;
13135       typedef ptrdiff_t size_type;
13136
13137     protected:
13138       size_type _M_original_len;
13139       size_type _M_len;
13140       pointer _M_buffer;
13141
13142       void
13143       _M_initialize_buffer(const _Tp&, __true_type) { }
13144
13145       void
13146       _M_initialize_buffer(const _Tp& val, __false_type)
13147       { std::uninitialized_fill_n(_M_buffer, _M_len, val); }
13148
13149     public:
13150
13151       size_type
13152       size() const
13153       { return _M_len; }
13154
13155
13156       size_type
13157       requested_size() const
13158       { return _M_original_len; }
13159
13160
13161       iterator
13162       begin()
13163       { return _M_buffer; }
13164
13165
13166       iterator
13167       end()
13168       { return _M_buffer + _M_len; }
13169
13170
13171
13172
13173
13174       _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
13175
13176       ~_Temporary_buffer()
13177       {
13178  std::_Destroy(_M_buffer, _M_buffer + _M_len);
13179  std::return_temporary_buffer(_M_buffer);
13180       }
13181
13182     private:
13183
13184       _Temporary_buffer(const _Temporary_buffer&);
13185
13186       void
13187       operator=(const _Temporary_buffer&);
13188     };
13189
13190
13191   template<typename _ForwardIterator, typename _Tp>
13192     _Temporary_buffer<_ForwardIterator, _Tp>::
13193     _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
13194     : _M_original_len(std::distance(__first, __last)),
13195       _M_len(0), _M_buffer(0)
13196     {
13197
13198       typedef typename std::__is_scalar<_Tp>::__type _Trivial;
13199
13200       try
13201  {
13202    pair<pointer, size_type> __p(get_temporary_buffer<
13203            value_type>(_M_original_len));
13204    _M_buffer = __p.first;
13205    _M_len = __p.second;
13206    if (_M_len > 0)
13207      _M_initialize_buffer(*__first, _Trivial());
13208  }
13209       catch(...)
13210  {
13211    std::return_temporary_buffer(_M_buffer);
13212    _M_buffer = 0;
13213    _M_len = 0;
13214    throw;
13215  }
13216     }
13217 }
13218 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 2 3
13219
13220
13221
13222
13223 namespace std
13224 {
13225 # 85 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13226   template<typename _Tp>
13227     inline const _Tp&
13228     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
13229     {
13230
13231      
13232       if (__a < __b)
13233  if (__b < __c)
13234    return __b;
13235  else if (__a < __c)
13236    return __c;
13237  else
13238    return __a;
13239       else if (__a < __c)
13240  return __a;
13241       else if (__b < __c)
13242  return __c;
13243       else
13244  return __b;
13245     }
13246 # 119 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13247   template<typename _Tp, typename _Compare>
13248     inline const _Tp&
13249     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
13250     {
13251
13252      
13253       if (__comp(__a, __b))
13254  if (__comp(__b, __c))
13255    return __b;
13256  else if (__comp(__a, __c))
13257    return __c;
13258  else
13259    return __a;
13260       else if (__comp(__a, __c))
13261  return __a;
13262       else if (__comp(__b, __c))
13263  return __c;
13264       else
13265  return __b;
13266     }
13267 # 151 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13268   template<typename _InputIterator, typename _Function>
13269     _Function
13270     for_each(_InputIterator __first, _InputIterator __last, _Function __f)
13271     {
13272
13273      
13274       ;
13275       for ( ; __first != __last; ++__first)
13276  __f(*__first);
13277       return __f;
13278     }
13279
13280
13281
13282
13283
13284
13285   template<typename _InputIterator, typename _Tp>
13286     inline _InputIterator
13287     __find(_InputIterator __first, _InputIterator __last,
13288     const _Tp& __val, input_iterator_tag)
13289     {
13290       while (__first != __last && !(*__first == __val))
13291  ++__first;
13292       return __first;
13293     }
13294
13295
13296
13297
13298
13299
13300   template<typename _InputIterator, typename _Predicate>
13301     inline _InputIterator
13302     __find_if(_InputIterator __first, _InputIterator __last,
13303        _Predicate __pred, input_iterator_tag)
13304     {
13305       while (__first != __last && !__pred(*__first))
13306  ++__first;
13307       return __first;
13308     }
13309
13310
13311
13312
13313
13314
13315   template<typename _RandomAccessIterator, typename _Tp>
13316     _RandomAccessIterator
13317     __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
13318     const _Tp& __val, random_access_iterator_tag)
13319     {
13320       typename iterator_traits<_RandomAccessIterator>::difference_type
13321  __trip_count = (__last - __first) >> 2;
13322
13323       for ( ; __trip_count > 0 ; --__trip_count)
13324  {
13325    if (*__first == __val)
13326      return __first;
13327    ++__first;
13328
13329    if (*__first == __val)
13330      return __first;
13331    ++__first;
13332
13333    if (*__first == __val)
13334      return __first;
13335    ++__first;
13336
13337    if (*__first == __val)
13338      return __first;
13339    ++__first;
13340  }
13341
13342       switch (__last - __first)
13343  {
13344  case 3:
13345    if (*__first == __val)
13346      return __first;
13347    ++__first;
13348  case 2:
13349    if (*__first == __val)
13350      return __first;
13351    ++__first;
13352  case 1:
13353    if (*__first == __val)
13354      return __first;
13355    ++__first;
13356  case 0:
13357  default:
13358    return __last;
13359  }
13360     }
13361
13362
13363
13364
13365
13366
13367   template<typename _RandomAccessIterator, typename _Predicate>
13368     _RandomAccessIterator
13369     __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
13370        _Predicate __pred, random_access_iterator_tag)
13371     {
13372       typename iterator_traits<_RandomAccessIterator>::difference_type
13373  __trip_count = (__last - __first) >> 2;
13374
13375       for ( ; __trip_count > 0 ; --__trip_count)
13376  {
13377    if (__pred(*__first))
13378      return __first;
13379    ++__first;
13380
13381    if (__pred(*__first))
13382      return __first;
13383    ++__first;
13384
13385    if (__pred(*__first))
13386      return __first;
13387    ++__first;
13388
13389    if (__pred(*__first))
13390      return __first;
13391    ++__first;
13392  }
13393
13394       switch (__last - __first)
13395  {
13396  case 3:
13397    if (__pred(*__first))
13398      return __first;
13399    ++__first;
13400  case 2:
13401    if (__pred(*__first))
13402      return __first;
13403    ++__first;
13404  case 1:
13405    if (__pred(*__first))
13406      return __first;
13407    ++__first;
13408  case 0:
13409  default:
13410    return __last;
13411  }
13412     }
13413 # 305 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13414   template<typename _InputIterator, typename _Tp>
13415     inline _InputIterator
13416     find(_InputIterator __first, _InputIterator __last,
13417   const _Tp& __val)
13418     {
13419
13420      
13421      
13422
13423       ;
13424       return std::__find(__first, __last, __val,
13425            std::__iterator_category(__first));
13426     }
13427 # 327 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13428   template<typename _InputIterator, typename _Predicate>
13429     inline _InputIterator
13430     find_if(_InputIterator __first, _InputIterator __last,
13431      _Predicate __pred)
13432     {
13433
13434      
13435      
13436
13437       ;
13438       return std::__find_if(__first, __last, __pred,
13439        std::__iterator_category(__first));
13440     }
13441 # 349 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13442   template<typename _ForwardIterator>
13443     _ForwardIterator
13444     adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
13445     {
13446
13447      
13448      
13449
13450       ;
13451       if (__first == __last)
13452  return __last;
13453       _ForwardIterator __next = __first;
13454       while(++__next != __last)
13455  {
13456    if (*__first == *__next)
13457      return __first;
13458    __first = __next;
13459  }
13460       return __last;
13461     }
13462 # 380 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13463   template<typename _ForwardIterator, typename _BinaryPredicate>
13464     _ForwardIterator
13465     adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
13466     _BinaryPredicate __binary_pred)
13467     {
13468
13469      
13470      
13471
13472
13473       ;
13474       if (__first == __last)
13475  return __last;
13476       _ForwardIterator __next = __first;
13477       while(++__next != __last)
13478  {
13479    if (__binary_pred(*__first, *__next))
13480      return __first;
13481    __first = __next;
13482  }
13483       return __last;
13484     }
13485 # 411 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13486   template<typename _InputIterator, typename _Tp>
13487     typename iterator_traits<_InputIterator>::difference_type
13488     count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
13489     {
13490
13491      
13492      
13493
13494       ;
13495       typename iterator_traits<_InputIterator>::difference_type __n = 0;
13496       for ( ; __first != __last; ++__first)
13497  if (*__first == __value)
13498    ++__n;
13499       return __n;
13500     }
13501 # 435 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13502   template<typename _InputIterator, typename _Predicate>
13503     typename iterator_traits<_InputIterator>::difference_type
13504     count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
13505     {
13506
13507      
13508      
13509
13510       ;
13511       typename iterator_traits<_InputIterator>::difference_type __n = 0;
13512       for ( ; __first != __last; ++__first)
13513  if (__pred(*__first))
13514    ++__n;
13515       return __n;
13516     }
13517 # 474 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13518   template<typename _ForwardIterator1, typename _ForwardIterator2>
13519     _ForwardIterator1
13520     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
13521     _ForwardIterator2 __first2, _ForwardIterator2 __last2)
13522     {
13523
13524      
13525      
13526      
13527
13528
13529       ;
13530       ;
13531
13532       if (__first1 == __last1 || __first2 == __last2)
13533  return __first1;
13534
13535
13536       _ForwardIterator2 __tmp(__first2);
13537       ++__tmp;
13538       if (__tmp == __last2)
13539  return std::find(__first1, __last1, *__first2);
13540
13541
13542       _ForwardIterator2 __p1, __p;
13543       __p1 = __first2; ++__p1;
13544       _ForwardIterator1 __current = __first1;
13545
13546       while (__first1 != __last1)
13547  {
13548    __first1 = std::find(__first1, __last1, *__first2);
13549    if (__first1 == __last1)
13550      return __last1;
13551
13552    __p = __p1;
13553    __current = __first1;
13554    if (++__current == __last1)
13555      return __last1;
13556
13557    while (*__current == *__p)
13558      {
13559        if (++__p == __last2)
13560   return __first1;
13561        if (++__current == __last1)
13562   return __last1;
13563      }
13564    ++__first1;
13565  }
13566       return __first1;
13567     }
13568 # 545 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13569   template<typename _ForwardIterator1, typename _ForwardIterator2,
13570     typename _BinaryPredicate>
13571     _ForwardIterator1
13572     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
13573     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
13574     _BinaryPredicate __predicate)
13575     {
13576
13577      
13578      
13579      
13580
13581
13582       ;
13583       ;
13584
13585
13586       if (__first1 == __last1 || __first2 == __last2)
13587  return __first1;
13588
13589
13590       _ForwardIterator2 __tmp(__first2);
13591       ++__tmp;
13592       if (__tmp == __last2)
13593  {
13594    while (__first1 != __last1 && !__predicate(*__first1, *__first2))
13595      ++__first1;
13596    return __first1;
13597  }
13598
13599
13600       _ForwardIterator2 __p1, __p;
13601       __p1 = __first2; ++__p1;
13602       _ForwardIterator1 __current = __first1;
13603
13604       while (__first1 != __last1)
13605  {
13606    while (__first1 != __last1)
13607      {
13608        if (__predicate(*__first1, *__first2))
13609   break;
13610        ++__first1;
13611      }
13612    while (__first1 != __last1 && !__predicate(*__first1, *__first2))
13613      ++__first1;
13614    if (__first1 == __last1)
13615      return __last1;
13616
13617    __p = __p1;
13618    __current = __first1;
13619    if (++__current == __last1)
13620      return __last1;
13621
13622    while (__predicate(*__current, *__p))
13623      {
13624        if (++__p == __last2)
13625   return __first1;
13626        if (++__current == __last1)
13627   return __last1;
13628      }
13629    ++__first1;
13630  }
13631       return __first1;
13632     }
13633 # 617 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13634   template<typename _ForwardIterator, typename _Integer, typename _Tp>
13635     _ForwardIterator
13636     __search_n(_ForwardIterator __first, _ForwardIterator __last,
13637         _Integer __count, const _Tp& __val,
13638         std::forward_iterator_tag)
13639     {
13640       __first = std::find(__first, __last, __val);
13641       while (__first != __last)
13642  {
13643    typename iterator_traits<_ForwardIterator>::difference_type
13644      __n = __count;
13645    _ForwardIterator __i = __first;
13646    ++__i;
13647    while (__i != __last && __n != 1 && *__i == __val)
13648      {
13649        ++__i;
13650        --__n;
13651      }
13652    if (__n == 1)
13653      return __first;
13654    if (__i == __last)
13655      return __last;
13656    __first = std::find(++__i, __last, __val);
13657  }
13658       return __last;
13659     }
13660 # 651 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13661   template<typename _RandomAccessIter, typename _Integer, typename _Tp>
13662     _RandomAccessIter
13663     __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
13664         _Integer __count, const _Tp& __val,
13665         std::random_access_iterator_tag)
13666     {
13667
13668       typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
13669  _DistanceType;
13670
13671       _DistanceType __tailSize = __last - __first;
13672       const _DistanceType __pattSize = __count;
13673
13674       if (__tailSize < __pattSize)
13675         return __last;
13676
13677       const _DistanceType __skipOffset = __pattSize - 1;
13678       _RandomAccessIter __lookAhead = __first + __skipOffset;
13679       __tailSize -= __pattSize;
13680
13681       while (1)
13682  {
13683
13684
13685    while (!(*__lookAhead == __val))
13686      {
13687        if (__tailSize < __pattSize)
13688   return __last;
13689        __lookAhead += __pattSize;
13690        __tailSize -= __pattSize;
13691      }
13692    _DistanceType __remainder = __skipOffset;
13693    for (_RandomAccessIter __backTrack = __lookAhead - 1;
13694         *__backTrack == __val; --__backTrack)
13695      {
13696        if (--__remainder == 0)
13697   return (__lookAhead - __skipOffset);
13698      }
13699    if (__remainder > __tailSize)
13700      return __last;
13701    __lookAhead += __remainder;
13702    __tailSize -= __remainder;
13703  }
13704     }
13705 # 709 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13706   template<typename _ForwardIterator, typename _Integer, typename _Tp>
13707     _ForwardIterator
13708     search_n(_ForwardIterator __first, _ForwardIterator __last,
13709       _Integer __count, const _Tp& __val)
13710     {
13711
13712      
13713      
13714
13715       ;
13716
13717       if (__count <= 0)
13718  return __first;
13719       if (__count == 1)
13720  return std::find(__first, __last, __val);
13721       return std::__search_n(__first, __last, __count, __val,
13722         std::__iterator_category(__first));
13723     }
13724 # 736 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13725   template<typename _ForwardIterator, typename _Integer, typename _Tp,
13726            typename _BinaryPredicate>
13727     _ForwardIterator
13728     __search_n(_ForwardIterator __first, _ForwardIterator __last,
13729         _Integer __count, const _Tp& __val,
13730         _BinaryPredicate __binary_pred, std::forward_iterator_tag)
13731     {
13732       while (__first != __last && !__binary_pred(*__first, __val))
13733         ++__first;
13734
13735       while (__first != __last)
13736  {
13737    typename iterator_traits<_ForwardIterator>::difference_type
13738      __n = __count;
13739    _ForwardIterator __i = __first;
13740    ++__i;
13741    while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
13742      {
13743        ++__i;
13744        --__n;
13745      }
13746    if (__n == 1)
13747      return __first;
13748    if (__i == __last)
13749      return __last;
13750    __first = ++__i;
13751    while (__first != __last && !__binary_pred(*__first, __val))
13752      ++__first;
13753  }
13754       return __last;
13755     }
13756 # 776 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13757   template<typename _RandomAccessIter, typename _Integer, typename _Tp,
13758     typename _BinaryPredicate>
13759     _RandomAccessIter
13760     __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
13761         _Integer __count, const _Tp& __val,
13762         _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
13763     {
13764
13765       typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
13766  _DistanceType;
13767
13768       _DistanceType __tailSize = __last - __first;
13769       const _DistanceType __pattSize = __count;
13770
13771       if (__tailSize < __pattSize)
13772         return __last;
13773
13774       const _DistanceType __skipOffset = __pattSize - 1;
13775       _RandomAccessIter __lookAhead = __first + __skipOffset;
13776       __tailSize -= __pattSize;
13777
13778       while (1)
13779  {
13780
13781
13782    while (!__binary_pred(*__lookAhead, __val))
13783      {
13784        if (__tailSize < __pattSize)
13785   return __last;
13786        __lookAhead += __pattSize;
13787        __tailSize -= __pattSize;
13788      }
13789    _DistanceType __remainder = __skipOffset;
13790    for (_RandomAccessIter __backTrack = __lookAhead - 1;
13791         __binary_pred(*__backTrack, __val); --__backTrack)
13792      {
13793        if (--__remainder == 0)
13794   return (__lookAhead - __skipOffset);
13795      }
13796    if (__remainder > __tailSize)
13797      return __last;
13798    __lookAhead += __remainder;
13799    __tailSize -= __remainder;
13800  }
13801     }
13802 # 837 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13803   template<typename _ForwardIterator, typename _Integer, typename _Tp,
13804            typename _BinaryPredicate>
13805     _ForwardIterator
13806     search_n(_ForwardIterator __first, _ForwardIterator __last,
13807       _Integer __count, const _Tp& __val,
13808       _BinaryPredicate __binary_pred)
13809     {
13810
13811      
13812      
13813
13814       ;
13815
13816       if (__count <= 0)
13817  return __first;
13818       if (__count == 1)
13819  {
13820    while (__first != __last && !__binary_pred(*__first, __val))
13821      ++__first;
13822    return __first;
13823  }
13824       return std::__search_n(__first, __last, __count, __val, __binary_pred,
13825         std::__iterator_category(__first));
13826     }
13827 # 873 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13828   template<typename _ForwardIterator1, typename _ForwardIterator2>
13829     _ForwardIterator2
13830     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
13831   _ForwardIterator2 __first2)
13832     {
13833
13834      
13835
13836      
13837
13838      
13839
13840
13841      
13842
13843
13844       ;
13845
13846       for ( ; __first1 != __last1; ++__first1, ++__first2)
13847  std::iter_swap(__first1, __first2);
13848       return __first2;
13849     }
13850 # 911 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13851   template<typename _InputIterator, typename _OutputIterator,
13852     typename _UnaryOperation>
13853     _OutputIterator
13854     transform(_InputIterator __first, _InputIterator __last,
13855        _OutputIterator __result, _UnaryOperation __unary_op)
13856     {
13857
13858      
13859      
13860
13861
13862       ;
13863
13864       for ( ; __first != __last; ++__first, ++__result)
13865  *__result = __unary_op(*__first);
13866       return __result;
13867     }
13868 # 946 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13869   template<typename _InputIterator1, typename _InputIterator2,
13870     typename _OutputIterator, typename _BinaryOperation>
13871     _OutputIterator
13872     transform(_InputIterator1 __first1, _InputIterator1 __last1,
13873        _InputIterator2 __first2, _OutputIterator __result,
13874        _BinaryOperation __binary_op)
13875     {
13876
13877      
13878      
13879      
13880
13881
13882       ;
13883
13884       for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
13885  *__result = __binary_op(*__first1, *__first2);
13886       return __result;
13887     }
13888 # 978 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13889   template<typename _ForwardIterator, typename _Tp>
13890     void
13891     replace(_ForwardIterator __first, _ForwardIterator __last,
13892      const _Tp& __old_value, const _Tp& __new_value)
13893     {
13894
13895      
13896
13897      
13898
13899      
13900
13901       ;
13902
13903       for ( ; __first != __last; ++__first)
13904  if (*__first == __old_value)
13905    *__first = __new_value;
13906     }
13907 # 1009 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13908   template<typename _ForwardIterator, typename _Predicate, typename _Tp>
13909     void
13910     replace_if(_ForwardIterator __first, _ForwardIterator __last,
13911         _Predicate __pred, const _Tp& __new_value)
13912     {
13913
13914      
13915
13916      
13917
13918      
13919
13920       ;
13921
13922       for ( ; __first != __last; ++__first)
13923  if (__pred(*__first))
13924    *__first = __new_value;
13925     }
13926 # 1042 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13927   template<typename _InputIterator, typename _OutputIterator, typename _Tp>
13928     _OutputIterator
13929     replace_copy(_InputIterator __first, _InputIterator __last,
13930    _OutputIterator __result,
13931    const _Tp& __old_value, const _Tp& __new_value)
13932     {
13933
13934      
13935      
13936
13937      
13938
13939       ;
13940
13941       for ( ; __first != __last; ++__first, ++__result)
13942  if (*__first == __old_value)
13943    *__result = __new_value;
13944  else
13945    *__result = *__first;
13946       return __result;
13947     }
13948 # 1078 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13949   template<typename _InputIterator, typename _OutputIterator,
13950     typename _Predicate, typename _Tp>
13951     _OutputIterator
13952     replace_copy_if(_InputIterator __first, _InputIterator __last,
13953       _OutputIterator __result,
13954       _Predicate __pred, const _Tp& __new_value)
13955     {
13956
13957      
13958      
13959
13960      
13961
13962       ;
13963
13964       for ( ; __first != __last; ++__first, ++__result)
13965  if (__pred(*__first))
13966    *__result = __new_value;
13967  else
13968    *__result = *__first;
13969       return __result;
13970     }
13971 # 1112 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13972   template<typename _ForwardIterator, typename _Generator>
13973     void
13974     generate(_ForwardIterator __first, _ForwardIterator __last,
13975       _Generator __gen)
13976     {
13977
13978      
13979      
13980
13981       ;
13982
13983       for ( ; __first != __last; ++__first)
13984  *__first = __gen();
13985     }
13986 # 1138 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
13987   template<typename _OutputIterator, typename _Size, typename _Generator>
13988     _OutputIterator
13989     generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
13990     {
13991
13992      
13993
13994
13995
13996       for ( ; __n > 0; --__n, ++__first)
13997  *__first = __gen();
13998       return __first;
13999     }
14000 # 1165 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14001   template<typename _InputIterator, typename _OutputIterator, typename _Tp>
14002     _OutputIterator
14003     remove_copy(_InputIterator __first, _InputIterator __last,
14004   _OutputIterator __result, const _Tp& __value)
14005     {
14006
14007      
14008      
14009
14010      
14011
14012       ;
14013
14014       for ( ; __first != __last; ++__first)
14015  if (!(*__first == __value))
14016    {
14017      *__result = *__first;
14018      ++__result;
14019    }
14020       return __result;
14021     }
14022 # 1201 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14023   template<typename _InputIterator, typename _OutputIterator,
14024     typename _Predicate>
14025     _OutputIterator
14026     remove_copy_if(_InputIterator __first, _InputIterator __last,
14027      _OutputIterator __result, _Predicate __pred)
14028     {
14029
14030      
14031      
14032
14033      
14034
14035       ;
14036
14037       for ( ; __first != __last; ++__first)
14038  if (!__pred(*__first))
14039    {
14040      *__result = *__first;
14041      ++__result;
14042    }
14043       return __result;
14044     }
14045 # 1240 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14046   template<typename _ForwardIterator, typename _Tp>
14047     _ForwardIterator
14048     remove(_ForwardIterator __first, _ForwardIterator __last,
14049     const _Tp& __value)
14050     {
14051
14052      
14053
14054      
14055
14056       ;
14057
14058       __first = std::find(__first, __last, __value);
14059       _ForwardIterator __i = __first;
14060       return __first == __last ? __first
14061           : std::remove_copy(++__i, __last,
14062         __first, __value);
14063     }
14064 # 1275 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14065   template<typename _ForwardIterator, typename _Predicate>
14066     _ForwardIterator
14067     remove_if(_ForwardIterator __first, _ForwardIterator __last,
14068        _Predicate __pred)
14069     {
14070
14071      
14072
14073      
14074
14075       ;
14076
14077       __first = std::find_if(__first, __last, __pred);
14078       _ForwardIterator __i = __first;
14079       return __first == __last ? __first
14080           : std::remove_copy_if(++__i, __last,
14081            __first, __pred);
14082     }
14083 # 1301 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14084   template<typename _InputIterator, typename _OutputIterator>
14085     _OutputIterator
14086     __unique_copy(_InputIterator __first, _InputIterator __last,
14087     _OutputIterator __result,
14088     output_iterator_tag)
14089     {
14090
14091       typename iterator_traits<_InputIterator>::value_type __value = *__first;
14092       *__result = __value;
14093       while (++__first != __last)
14094  if (!(__value == *__first))
14095    {
14096      __value = *__first;
14097      *++__result = __value;
14098    }
14099       return ++__result;
14100     }
14101 # 1326 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14102   template<typename _InputIterator, typename _ForwardIterator>
14103     _ForwardIterator
14104     __unique_copy(_InputIterator __first, _InputIterator __last,
14105     _ForwardIterator __result,
14106     forward_iterator_tag)
14107     {
14108
14109       *__result = *__first;
14110       while (++__first != __last)
14111  if (!(*__result == *__first))
14112    *++__result = *__first;
14113       return ++__result;
14114     }
14115 # 1348 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14116   template<typename _InputIterator, typename _OutputIterator,
14117     typename _BinaryPredicate>
14118     _OutputIterator
14119     __unique_copy(_InputIterator __first, _InputIterator __last,
14120     _OutputIterator __result,
14121     _BinaryPredicate __binary_pred,
14122     output_iterator_tag)
14123     {
14124
14125      
14126
14127
14128
14129       typename iterator_traits<_InputIterator>::value_type __value = *__first;
14130       *__result = __value;
14131       while (++__first != __last)
14132  if (!__binary_pred(__value, *__first))
14133    {
14134      __value = *__first;
14135      *++__result = __value;
14136    }
14137       return ++__result;
14138     }
14139 # 1380 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14140   template<typename _InputIterator, typename _ForwardIterator,
14141     typename _BinaryPredicate>
14142     _ForwardIterator
14143     __unique_copy(_InputIterator __first, _InputIterator __last,
14144     _ForwardIterator __result,
14145     _BinaryPredicate __binary_pred,
14146     forward_iterator_tag)
14147     {
14148
14149      
14150
14151
14152
14153       *__result = *__first;
14154       while (++__first != __last)
14155  if (!__binary_pred(*__result, *__first)) *++__result = *__first;
14156       return ++__result;
14157     }
14158 # 1412 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14159   template<typename _InputIterator, typename _OutputIterator>
14160     inline _OutputIterator
14161     unique_copy(_InputIterator __first, _InputIterator __last,
14162   _OutputIterator __result)
14163     {
14164
14165      
14166      
14167
14168      
14169
14170       ;
14171
14172       typedef typename iterator_traits<_OutputIterator>::iterator_category
14173  _IterType;
14174
14175       if (__first == __last) return __result;
14176       return std::__unique_copy(__first, __last, __result, _IterType());
14177     }
14178 # 1447 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14179   template<typename _InputIterator, typename _OutputIterator,
14180     typename _BinaryPredicate>
14181     inline _OutputIterator
14182     unique_copy(_InputIterator __first, _InputIterator __last,
14183   _OutputIterator __result,
14184   _BinaryPredicate __binary_pred)
14185     {
14186
14187      
14188      
14189
14190       ;
14191
14192       typedef typename iterator_traits<_OutputIterator>::iterator_category
14193  _IterType;
14194
14195       if (__first == __last) return __result;
14196       return std::__unique_copy(__first, __last, __result,
14197     __binary_pred, _IterType());
14198     }
14199 # 1481 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14200   template<typename _ForwardIterator>
14201     _ForwardIterator
14202     unique(_ForwardIterator __first, _ForwardIterator __last)
14203     {
14204
14205      
14206
14207      
14208
14209       ;
14210
14211
14212       __first = std::adjacent_find(__first, __last);
14213       if (__first == __last)
14214  return __last;
14215
14216
14217       _ForwardIterator __dest = __first;
14218       ++__first;
14219       while (++__first != __last)
14220  if (!(*__dest == *__first))
14221    *++__dest = *__first;
14222       return ++__dest;
14223     }
14224 # 1520 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14225   template<typename _ForwardIterator, typename _BinaryPredicate>
14226     _ForwardIterator
14227     unique(_ForwardIterator __first, _ForwardIterator __last,
14228            _BinaryPredicate __binary_pred)
14229     {
14230
14231      
14232
14233      
14234
14235
14236       ;
14237
14238
14239       __first = std::adjacent_find(__first, __last, __binary_pred);
14240       if (__first == __last)
14241  return __last;
14242
14243
14244       _ForwardIterator __dest = __first;
14245       ++__first;
14246       while (++__first != __last)
14247  if (!__binary_pred(*__dest, *__first))
14248    *++__dest = *__first;
14249       return ++__dest;
14250     }
14251 # 1554 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14252   template<typename _BidirectionalIterator>
14253     void
14254     __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
14255        bidirectional_iterator_tag)
14256     {
14257       while (true)
14258  if (__first == __last || __first == --__last)
14259    return;
14260  else
14261    {
14262      std::iter_swap(__first, __last);
14263      ++__first;
14264    }
14265     }
14266 # 1576 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14267   template<typename _RandomAccessIterator>
14268     void
14269     __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
14270        random_access_iterator_tag)
14271     {
14272       if (__first == __last)
14273  return;
14274       --__last;
14275       while (__first < __last)
14276  {
14277    std::iter_swap(__first, __last);
14278    ++__first;
14279    --__last;
14280  }
14281     }
14282 # 1603 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14283   template<typename _BidirectionalIterator>
14284     inline void
14285     reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
14286     {
14287
14288      
14289
14290       ;
14291       std::__reverse(__first, __last, std::__iterator_category(__first));
14292     }
14293 # 1629 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14294   template<typename _BidirectionalIterator, typename _OutputIterator>
14295     _OutputIterator
14296     reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
14297         _OutputIterator __result)
14298     {
14299
14300      
14301
14302      
14303
14304       ;
14305
14306       while (__first != __last)
14307  {
14308    --__last;
14309    *__result = *__last;
14310    ++__result;
14311  }
14312       return __result;
14313     }
14314 # 1657 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14315   template<typename _EuclideanRingElement>
14316     _EuclideanRingElement
14317     __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
14318     {
14319       while (__n != 0)
14320  {
14321    _EuclideanRingElement __t = __m % __n;
14322    __m = __n;
14323    __n = __t;
14324  }
14325       return __m;
14326     }
14327
14328
14329
14330
14331
14332
14333   template<typename _ForwardIterator>
14334     void
14335     __rotate(_ForwardIterator __first,
14336       _ForwardIterator __middle,
14337       _ForwardIterator __last,
14338       forward_iterator_tag)
14339     {
14340       if (__first == __middle || __last == __middle)
14341  return;
14342
14343       _ForwardIterator __first2 = __middle;
14344       do
14345  {
14346    swap(*__first, *__first2);
14347    ++__first;
14348    ++__first2;
14349    if (__first == __middle)
14350      __middle = __first2;
14351  }
14352       while (__first2 != __last);
14353
14354       __first2 = __middle;
14355
14356       while (__first2 != __last)
14357  {
14358    swap(*__first, *__first2);
14359    ++__first;
14360    ++__first2;
14361    if (__first == __middle)
14362      __middle = __first2;
14363    else if (__first2 == __last)
14364      __first2 = __middle;
14365  }
14366     }
14367
14368
14369
14370
14371
14372
14373   template<typename _BidirectionalIterator>
14374     void
14375     __rotate(_BidirectionalIterator __first,
14376       _BidirectionalIterator __middle,
14377       _BidirectionalIterator __last,
14378        bidirectional_iterator_tag)
14379     {
14380
14381      
14382
14383
14384       if (__first == __middle || __last == __middle)
14385  return;
14386
14387       std::__reverse(__first, __middle, bidirectional_iterator_tag());
14388       std::__reverse(__middle, __last, bidirectional_iterator_tag());
14389
14390       while (__first != __middle && __middle != __last)
14391  {
14392    swap(*__first, *--__last);
14393    ++__first;
14394  }
14395
14396       if (__first == __middle)
14397  std::__reverse(__middle, __last, bidirectional_iterator_tag());
14398       else
14399  std::__reverse(__first, __middle, bidirectional_iterator_tag());
14400     }
14401
14402
14403
14404
14405
14406
14407   template<typename _RandomAccessIterator>
14408     void
14409     __rotate(_RandomAccessIterator __first,
14410       _RandomAccessIterator __middle,
14411       _RandomAccessIterator __last,
14412       random_access_iterator_tag)
14413     {
14414
14415      
14416
14417
14418       if (__first == __middle || __last == __middle)
14419  return;
14420
14421       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14422  _Distance;
14423       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14424  _ValueType;
14425
14426       const _Distance __n = __last - __first;
14427       const _Distance __k = __middle - __first;
14428       const _Distance __l = __n - __k;
14429
14430       if (__k == __l)
14431  {
14432    std::swap_ranges(__first, __middle, __middle);
14433    return;
14434  }
14435
14436       const _Distance __d = __gcd(__n, __k);
14437
14438       for (_Distance __i = 0; __i < __d; __i++)
14439  {
14440    _ValueType __tmp = *__first;
14441    _RandomAccessIterator __p = __first;
14442
14443    if (__k < __l)
14444      {
14445        for (_Distance __j = 0; __j < __l / __d; __j++)
14446   {
14447     if (__p > __first + __l)
14448       {
14449         *__p = *(__p - __l);
14450         __p -= __l;
14451       }
14452
14453     *__p = *(__p + __k);
14454     __p += __k;
14455   }
14456      }
14457    else
14458      {
14459        for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
14460   {
14461     if (__p < __last - __k)
14462       {
14463         *__p = *(__p + __k);
14464         __p += __k;
14465       }
14466     *__p = * (__p - __l);
14467     __p -= __l;
14468   }
14469      }
14470
14471    *__p = __tmp;
14472    ++__first;
14473  }
14474     }
14475 # 1836 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14476   template<typename _ForwardIterator>
14477     inline void
14478     rotate(_ForwardIterator __first, _ForwardIterator __middle,
14479     _ForwardIterator __last)
14480     {
14481
14482      
14483
14484       ;
14485       ;
14486
14487       typedef typename iterator_traits<_ForwardIterator>::iterator_category
14488  _IterType;
14489       std::__rotate(__first, __middle, __last, _IterType());
14490     }
14491 # 1869 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14492   template<typename _ForwardIterator, typename _OutputIterator>
14493     _OutputIterator
14494     rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
14495                 _ForwardIterator __last, _OutputIterator __result)
14496     {
14497
14498      
14499      
14500
14501       ;
14502       ;
14503
14504       return std::copy(__first, __middle,
14505                        std::copy(__middle, __last, __result));
14506     }
14507 # 1895 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14508   template<typename _RandomAccessIterator>
14509     inline void
14510     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
14511     {
14512
14513      
14514
14515       ;
14516
14517       if (__first != __last)
14518  for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
14519    std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
14520     }
14521 # 1922 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14522   template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
14523     void
14524     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
14525      _RandomNumberGenerator& __rand)
14526     {
14527
14528      
14529
14530       ;
14531
14532       if (__first == __last)
14533  return;
14534       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
14535  std::iter_swap(__i, __first + __rand((__i - __first) + 1));
14536     }
14537
14538
14539
14540
14541
14542
14543
14544   template<typename _ForwardIterator, typename _Predicate>
14545     _ForwardIterator
14546     __partition(_ForwardIterator __first, _ForwardIterator __last,
14547   _Predicate __pred,
14548   forward_iterator_tag)
14549     {
14550       if (__first == __last)
14551  return __first;
14552
14553       while (__pred(*__first))
14554  if (++__first == __last)
14555    return __first;
14556
14557       _ForwardIterator __next = __first;
14558
14559       while (++__next != __last)
14560  if (__pred(*__next))
14561    {
14562      swap(*__first, *__next);
14563      ++__first;
14564    }
14565
14566       return __first;
14567     }
14568
14569
14570
14571
14572
14573
14574   template<typename _BidirectionalIterator, typename _Predicate>
14575     _BidirectionalIterator
14576     __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
14577   _Predicate __pred,
14578   bidirectional_iterator_tag)
14579     {
14580       while (true)
14581  {
14582    while (true)
14583      if (__first == __last)
14584        return __first;
14585      else if (__pred(*__first))
14586        ++__first;
14587      else
14588        break;
14589    --__last;
14590    while (true)
14591      if (__first == __last)
14592        return __first;
14593      else if (!__pred(*__last))
14594        --__last;
14595      else
14596        break;
14597    std::iter_swap(__first, __last);
14598    ++__first;
14599  }
14600     }
14601 # 2016 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14602   template<typename _ForwardIterator, typename _Predicate>
14603     inline _ForwardIterator
14604     partition(_ForwardIterator __first, _ForwardIterator __last,
14605        _Predicate __pred)
14606     {
14607
14608      
14609
14610      
14611
14612       ;
14613
14614       return std::__partition(__first, __last, __pred,
14615          std::__iterator_category(__first));
14616     }
14617
14618
14619
14620
14621
14622
14623
14624   template<typename _ForwardIterator, typename _Predicate, typename _Distance>
14625     _ForwardIterator
14626     __inplace_stable_partition(_ForwardIterator __first,
14627           _ForwardIterator __last,
14628           _Predicate __pred, _Distance __len)
14629     {
14630       if (__len == 1)
14631  return __pred(*__first) ? __last : __first;
14632       _ForwardIterator __middle = __first;
14633       std::advance(__middle, __len / 2);
14634       _ForwardIterator __begin = std::__inplace_stable_partition(__first,
14635          __middle,
14636          __pred,
14637          __len / 2);
14638       _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
14639               __pred,
14640               __len
14641               - __len / 2);
14642       std::rotate(__begin, __middle, __end);
14643       std::advance(__begin, std::distance(__middle, __end));
14644       return __begin;
14645     }
14646
14647
14648
14649
14650
14651
14652   template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
14653     typename _Distance>
14654     _ForwardIterator
14655     __stable_partition_adaptive(_ForwardIterator __first,
14656     _ForwardIterator __last,
14657     _Predicate __pred, _Distance __len,
14658     _Pointer __buffer,
14659     _Distance __buffer_size)
14660     {
14661       if (__len <= __buffer_size)
14662  {
14663    _ForwardIterator __result1 = __first;
14664    _Pointer __result2 = __buffer;
14665    for ( ; __first != __last ; ++__first)
14666      if (__pred(*__first))
14667        {
14668   *__result1 = *__first;
14669   ++__result1;
14670        }
14671      else
14672        {
14673   *__result2 = *__first;
14674   ++__result2;
14675        }
14676    std::copy(__buffer, __result2, __result1);
14677    return __result1;
14678  }
14679       else
14680  {
14681    _ForwardIterator __middle = __first;
14682    std::advance(__middle, __len / 2);
14683    _ForwardIterator __begin =
14684      std::__stable_partition_adaptive(__first, __middle, __pred,
14685           __len / 2, __buffer,
14686           __buffer_size);
14687    _ForwardIterator __end =
14688      std::__stable_partition_adaptive(__middle, __last, __pred,
14689           __len - __len / 2,
14690           __buffer, __buffer_size);
14691    std::rotate(__begin, __middle, __end);
14692    std::advance(__begin, std::distance(__middle, __end));
14693    return __begin;
14694  }
14695     }
14696 # 2127 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14697   template<typename _ForwardIterator, typename _Predicate>
14698     _ForwardIterator
14699     stable_partition(_ForwardIterator __first, _ForwardIterator __last,
14700        _Predicate __pred)
14701     {
14702
14703      
14704
14705      
14706
14707       ;
14708
14709       if (__first == __last)
14710  return __first;
14711       else
14712  {
14713    typedef typename iterator_traits<_ForwardIterator>::value_type
14714      _ValueType;
14715    typedef typename iterator_traits<_ForwardIterator>::difference_type
14716      _DistanceType;
14717
14718    _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
14719         __last);
14720  if (__buf.size() > 0)
14721    return
14722      std::__stable_partition_adaptive(__first, __last, __pred,
14723        _DistanceType(__buf.requested_size()),
14724        __buf.begin(), __buf.size());
14725  else
14726    return
14727      std::__inplace_stable_partition(__first, __last, __pred,
14728       _DistanceType(__buf.requested_size()));
14729  }
14730     }
14731
14732
14733
14734
14735
14736
14737   template<typename _RandomAccessIterator, typename _Tp>
14738     _RandomAccessIterator
14739     __unguarded_partition(_RandomAccessIterator __first,
14740      _RandomAccessIterator __last, _Tp __pivot)
14741     {
14742       while (true)
14743  {
14744    while (*__first < __pivot)
14745      ++__first;
14746    --__last;
14747    while (__pivot < *__last)
14748      --__last;
14749    if (!(__first < __last))
14750      return __first;
14751    std::iter_swap(__first, __last);
14752    ++__first;
14753  }
14754     }
14755
14756
14757
14758
14759
14760
14761   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
14762     _RandomAccessIterator
14763     __unguarded_partition(_RandomAccessIterator __first,
14764      _RandomAccessIterator __last,
14765      _Tp __pivot, _Compare __comp)
14766     {
14767       while (true)
14768  {
14769    while (__comp(*__first, __pivot))
14770      ++__first;
14771    --__last;
14772    while (__comp(__pivot, *__last))
14773      --__last;
14774    if (!(__first < __last))
14775      return __first;
14776    std::iter_swap(__first, __last);
14777    ++__first;
14778  }
14779     }
14780
14781
14782
14783
14784
14785
14786
14787   enum { _S_threshold = 16 };
14788
14789
14790
14791
14792
14793
14794   template<typename _RandomAccessIterator, typename _Tp>
14795     void
14796     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
14797     {
14798       _RandomAccessIterator __next = __last;
14799       --__next;
14800       while (__val < *__next)
14801  {
14802    *__last = *__next;
14803    __last = __next;
14804    --__next;
14805  }
14806       *__last = __val;
14807     }
14808
14809
14810
14811
14812
14813
14814   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
14815     void
14816     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
14817          _Compare __comp)
14818     {
14819       _RandomAccessIterator __next = __last;
14820       --__next;
14821       while (__comp(__val, *__next))
14822  {
14823    *__last = *__next;
14824    __last = __next;
14825    --__next;
14826  }
14827       *__last = __val;
14828     }
14829
14830
14831
14832
14833
14834
14835   template<typename _RandomAccessIterator>
14836     void
14837     __insertion_sort(_RandomAccessIterator __first,
14838        _RandomAccessIterator __last)
14839     {
14840       if (__first == __last)
14841  return;
14842
14843       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
14844  {
14845    typename iterator_traits<_RandomAccessIterator>::value_type
14846      __val = *__i;
14847    if (__val < *__first)
14848      {
14849        std::copy_backward(__first, __i, __i + 1);
14850        *__first = __val;
14851      }
14852    else
14853      std::__unguarded_linear_insert(__i, __val);
14854  }
14855     }
14856
14857
14858
14859
14860
14861
14862   template<typename _RandomAccessIterator, typename _Compare>
14863     void
14864     __insertion_sort(_RandomAccessIterator __first,
14865        _RandomAccessIterator __last, _Compare __comp)
14866     {
14867       if (__first == __last) return;
14868
14869       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
14870  {
14871    typename iterator_traits<_RandomAccessIterator>::value_type
14872      __val = *__i;
14873    if (__comp(__val, *__first))
14874      {
14875        std::copy_backward(__first, __i, __i + 1);
14876        *__first = __val;
14877      }
14878    else
14879      std::__unguarded_linear_insert(__i, __val, __comp);
14880  }
14881     }
14882
14883
14884
14885
14886
14887
14888   template<typename _RandomAccessIterator>
14889     inline void
14890     __unguarded_insertion_sort(_RandomAccessIterator __first,
14891           _RandomAccessIterator __last)
14892     {
14893       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14894  _ValueType;
14895
14896       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
14897  std::__unguarded_linear_insert(__i, _ValueType(*__i));
14898     }
14899
14900
14901
14902
14903
14904
14905   template<typename _RandomAccessIterator, typename _Compare>
14906     inline void
14907     __unguarded_insertion_sort(_RandomAccessIterator __first,
14908           _RandomAccessIterator __last, _Compare __comp)
14909     {
14910       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14911  _ValueType;
14912
14913       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
14914  std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
14915     }
14916
14917
14918
14919
14920
14921
14922   template<typename _RandomAccessIterator>
14923     void
14924     __final_insertion_sort(_RandomAccessIterator __first,
14925       _RandomAccessIterator __last)
14926     {
14927       if (__last - __first > int(_S_threshold))
14928  {
14929    std::__insertion_sort(__first, __first + int(_S_threshold));
14930    std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
14931  }
14932       else
14933  std::__insertion_sort(__first, __last);
14934     }
14935
14936
14937
14938
14939
14940
14941   template<typename _RandomAccessIterator, typename _Compare>
14942     void
14943     __final_insertion_sort(_RandomAccessIterator __first,
14944       _RandomAccessIterator __last, _Compare __comp)
14945     {
14946       if (__last - __first > int(_S_threshold))
14947  {
14948    std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
14949    std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
14950        __comp);
14951  }
14952       else
14953  std::__insertion_sort(__first, __last, __comp);
14954     }
14955
14956
14957
14958
14959
14960
14961   template<typename _Size>
14962     inline _Size
14963     __lg(_Size __n)
14964     {
14965       _Size __k;
14966       for (__k = 0; __n != 1; __n >>= 1)
14967  ++__k;
14968       return __k;
14969     }
14970 # 2416 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14971   template<typename _RandomAccessIterator>
14972     void
14973     partial_sort(_RandomAccessIterator __first,
14974    _RandomAccessIterator __middle,
14975    _RandomAccessIterator __last)
14976     {
14977       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14978  _ValueType;
14979
14980
14981      
14982
14983      
14984       ;
14985       ;
14986
14987       std::make_heap(__first, __middle);
14988       for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
14989  if (*__i < *__first)
14990    std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
14991       std::sort_heap(__first, __middle);
14992     }
14993 # 2457 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
14994   template<typename _RandomAccessIterator, typename _Compare>
14995     void
14996     partial_sort(_RandomAccessIterator __first,
14997    _RandomAccessIterator __middle,
14998    _RandomAccessIterator __last,
14999    _Compare __comp)
15000     {
15001       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15002  _ValueType;
15003
15004
15005      
15006
15007      
15008
15009       ;
15010       ;
15011
15012       std::make_heap(__first, __middle, __comp);
15013       for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
15014  if (__comp(*__i, *__first))
15015    std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
15016       std::sort_heap(__first, __middle, __comp);
15017     }
15018 # 2499 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15019   template<typename _InputIterator, typename _RandomAccessIterator>
15020     _RandomAccessIterator
15021     partial_sort_copy(_InputIterator __first, _InputIterator __last,
15022         _RandomAccessIterator __result_first,
15023         _RandomAccessIterator __result_last)
15024     {
15025       typedef typename iterator_traits<_InputIterator>::value_type
15026  _InputValueType;
15027       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15028  _OutputValueType;
15029       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15030  _DistanceType;
15031
15032
15033      
15034      
15035
15036      
15037      
15038       ;
15039       ;
15040
15041       if (__result_first == __result_last)
15042  return __result_last;
15043       _RandomAccessIterator __result_real_last = __result_first;
15044       while(__first != __last && __result_real_last != __result_last)
15045  {
15046    *__result_real_last = *__first;
15047    ++__result_real_last;
15048    ++__first;
15049  }
15050       std::make_heap(__result_first, __result_real_last);
15051       while (__first != __last)
15052  {
15053    if (*__first < *__result_first)
15054      std::__adjust_heap(__result_first, _DistanceType(0),
15055           _DistanceType(__result_real_last
15056           - __result_first),
15057           _InputValueType(*__first));
15058    ++__first;
15059  }
15060       std::sort_heap(__result_first, __result_real_last);
15061       return __result_real_last;
15062     }
15063 # 2563 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15064   template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
15065     _RandomAccessIterator
15066     partial_sort_copy(_InputIterator __first, _InputIterator __last,
15067         _RandomAccessIterator __result_first,
15068         _RandomAccessIterator __result_last,
15069         _Compare __comp)
15070     {
15071       typedef typename iterator_traits<_InputIterator>::value_type
15072  _InputValueType;
15073       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15074  _OutputValueType;
15075       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15076  _DistanceType;
15077
15078
15079      
15080      
15081
15082      
15083
15084      
15085
15086       ;
15087       ;
15088
15089       if (__result_first == __result_last)
15090  return __result_last;
15091       _RandomAccessIterator __result_real_last = __result_first;
15092       while(__first != __last && __result_real_last != __result_last)
15093  {
15094    *__result_real_last = *__first;
15095    ++__result_real_last;
15096    ++__first;
15097  }
15098       std::make_heap(__result_first, __result_real_last, __comp);
15099       while (__first != __last)
15100  {
15101    if (__comp(*__first, *__result_first))
15102      std::__adjust_heap(__result_first, _DistanceType(0),
15103           _DistanceType(__result_real_last
15104           - __result_first),
15105           _InputValueType(*__first),
15106           __comp);
15107    ++__first;
15108  }
15109       std::sort_heap(__result_first, __result_real_last, __comp);
15110       return __result_real_last;
15111     }
15112
15113
15114
15115
15116
15117
15118   template<typename _RandomAccessIterator, typename _Size>
15119     void
15120     __introsort_loop(_RandomAccessIterator __first,
15121        _RandomAccessIterator __last,
15122        _Size __depth_limit)
15123     {
15124       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15125  _ValueType;
15126
15127       while (__last - __first > int(_S_threshold))
15128  {
15129    if (__depth_limit == 0)
15130      {
15131        std::partial_sort(__first, __last, __last);
15132        return;
15133      }
15134    --__depth_limit;
15135    _RandomAccessIterator __cut =
15136      std::__unguarded_partition(__first, __last,
15137            _ValueType(std::__median(*__first,
15138         *(__first
15139           + (__last
15140              - __first)
15141           / 2),
15142         *(__last
15143           - 1))));
15144    std::__introsort_loop(__cut, __last, __depth_limit);
15145    __last = __cut;
15146  }
15147     }
15148
15149
15150
15151
15152
15153
15154   template<typename _RandomAccessIterator, typename _Size, typename _Compare>
15155     void
15156     __introsort_loop(_RandomAccessIterator __first,
15157        _RandomAccessIterator __last,
15158        _Size __depth_limit, _Compare __comp)
15159     {
15160       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15161  _ValueType;
15162
15163       while (__last - __first > int(_S_threshold))
15164  {
15165    if (__depth_limit == 0)
15166      {
15167        std::partial_sort(__first, __last, __last, __comp);
15168        return;
15169      }
15170    --__depth_limit;
15171    _RandomAccessIterator __cut =
15172      std::__unguarded_partition(__first, __last,
15173            _ValueType(std::__median(*__first,
15174         *(__first
15175           + (__last
15176              - __first)
15177           / 2),
15178         *(__last - 1),
15179         __comp)),
15180            __comp);
15181    std::__introsort_loop(__cut, __last, __depth_limit, __comp);
15182    __last = __cut;
15183  }
15184     }
15185 # 2698 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15186   template<typename _RandomAccessIterator>
15187     inline void
15188     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
15189     {
15190       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15191  _ValueType;
15192
15193
15194      
15195
15196      
15197       ;
15198
15199       if (__first != __last)
15200  {
15201    std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
15202    std::__final_insertion_sort(__first, __last);
15203  }
15204     }
15205 # 2732 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15206   template<typename _RandomAccessIterator, typename _Compare>
15207     inline void
15208     sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
15209   _Compare __comp)
15210     {
15211       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15212  _ValueType;
15213
15214
15215      
15216
15217      
15218
15219       ;
15220
15221       if (__first != __last)
15222  {
15223    std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
15224     __comp);
15225    std::__final_insertion_sort(__first, __last, __comp);
15226  }
15227     }
15228 # 2765 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15229   template<typename _ForwardIterator, typename _Tp>
15230     _ForwardIterator
15231     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
15232   const _Tp& __val)
15233     {
15234       typedef typename iterator_traits<_ForwardIterator>::value_type
15235  _ValueType;
15236       typedef typename iterator_traits<_ForwardIterator>::difference_type
15237  _DistanceType;
15238
15239
15240
15241
15242
15243
15244      
15245      
15246      
15247       ;
15248
15249       _DistanceType __len = std::distance(__first, __last);
15250       _DistanceType __half;
15251       _ForwardIterator __middle;
15252
15253       while (__len > 0)
15254  {
15255    __half = __len >> 1;
15256    __middle = __first;
15257    std::advance(__middle, __half);
15258    if (*__middle < __val)
15259      {
15260        __first = __middle;
15261        ++__first;
15262        __len = __len - __half - 1;
15263      }
15264    else
15265      __len = __half;
15266  }
15267       return __first;
15268     }
15269 # 2820 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15270   template<typename _ForwardIterator, typename _Tp, typename _Compare>
15271     _ForwardIterator
15272     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
15273   const _Tp& __val, _Compare __comp)
15274     {
15275       typedef typename iterator_traits<_ForwardIterator>::value_type
15276  _ValueType;
15277       typedef typename iterator_traits<_ForwardIterator>::difference_type
15278  _DistanceType;
15279
15280
15281      
15282      
15283
15284       ;
15285
15286       _DistanceType __len = std::distance(__first, __last);
15287       _DistanceType __half;
15288       _ForwardIterator __middle;
15289
15290       while (__len > 0)
15291  {
15292    __half = __len >> 1;
15293    __middle = __first;
15294    std::advance(__middle, __half);
15295    if (__comp(*__middle, __val))
15296      {
15297        __first = __middle;
15298        ++__first;
15299        __len = __len - __half - 1;
15300      }
15301    else
15302      __len = __half;
15303  }
15304       return __first;
15305     }
15306 # 2867 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15307   template<typename _ForwardIterator, typename _Tp>
15308     _ForwardIterator
15309     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
15310   const _Tp& __val)
15311     {
15312       typedef typename iterator_traits<_ForwardIterator>::value_type
15313  _ValueType;
15314       typedef typename iterator_traits<_ForwardIterator>::difference_type
15315  _DistanceType;
15316
15317
15318
15319      
15320      
15321      
15322       ;
15323
15324       _DistanceType __len = std::distance(__first, __last);
15325       _DistanceType __half;
15326       _ForwardIterator __middle;
15327
15328       while (__len > 0)
15329  {
15330    __half = __len >> 1;
15331    __middle = __first;
15332    std::advance(__middle, __half);
15333    if (__val < *__middle)
15334      __len = __half;
15335    else
15336      {
15337        __first = __middle;
15338        ++__first;
15339        __len = __len - __half - 1;
15340      }
15341  }
15342       return __first;
15343     }
15344 # 2919 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15345   template<typename _ForwardIterator, typename _Tp, typename _Compare>
15346     _ForwardIterator
15347     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
15348   const _Tp& __val, _Compare __comp)
15349     {
15350       typedef typename iterator_traits<_ForwardIterator>::value_type
15351  _ValueType;
15352       typedef typename iterator_traits<_ForwardIterator>::difference_type
15353  _DistanceType;
15354
15355
15356      
15357      
15358
15359       ;
15360
15361       _DistanceType __len = std::distance(__first, __last);
15362       _DistanceType __half;
15363       _ForwardIterator __middle;
15364
15365       while (__len > 0)
15366  {
15367    __half = __len >> 1;
15368    __middle = __first;
15369    std::advance(__middle, __half);
15370    if (__comp(__val, *__middle))
15371      __len = __half;
15372    else
15373      {
15374        __first = __middle;
15375        ++__first;
15376        __len = __len - __half - 1;
15377      }
15378  }
15379       return __first;
15380     }
15381
15382
15383
15384
15385
15386
15387   template<typename _BidirectionalIterator, typename _Distance>
15388     void
15389     __merge_without_buffer(_BidirectionalIterator __first,
15390       _BidirectionalIterator __middle,
15391       _BidirectionalIterator __last,
15392       _Distance __len1, _Distance __len2)
15393     {
15394       if (__len1 == 0 || __len2 == 0)
15395  return;
15396       if (__len1 + __len2 == 2)
15397  {
15398    if (*__middle < *__first)
15399      std::iter_swap(__first, __middle);
15400    return;
15401  }
15402       _BidirectionalIterator __first_cut = __first;
15403       _BidirectionalIterator __second_cut = __middle;
15404       _Distance __len11 = 0;
15405       _Distance __len22 = 0;
15406       if (__len1 > __len2)
15407  {
15408    __len11 = __len1 / 2;
15409    std::advance(__first_cut, __len11);
15410    __second_cut = std::lower_bound(__middle, __last, *__first_cut);
15411    __len22 = std::distance(__middle, __second_cut);
15412  }
15413       else
15414  {
15415    __len22 = __len2 / 2;
15416    std::advance(__second_cut, __len22);
15417    __first_cut = std::upper_bound(__first, __middle, *__second_cut);
15418    __len11 = std::distance(__first, __first_cut);
15419  }
15420       std::rotate(__first_cut, __middle, __second_cut);
15421       _BidirectionalIterator __new_middle = __first_cut;
15422       std::advance(__new_middle, std::distance(__middle, __second_cut));
15423       std::__merge_without_buffer(__first, __first_cut, __new_middle,
15424       __len11, __len22);
15425       std::__merge_without_buffer(__new_middle, __second_cut, __last,
15426       __len1 - __len11, __len2 - __len22);
15427     }
15428
15429
15430
15431
15432
15433
15434   template<typename _BidirectionalIterator, typename _Distance,
15435     typename _Compare>
15436     void
15437     __merge_without_buffer(_BidirectionalIterator __first,
15438                            _BidirectionalIterator __middle,
15439       _BidirectionalIterator __last,
15440       _Distance __len1, _Distance __len2,
15441       _Compare __comp)
15442     {
15443       if (__len1 == 0 || __len2 == 0)
15444  return;
15445       if (__len1 + __len2 == 2)
15446  {
15447    if (__comp(*__middle, *__first))
15448      std::iter_swap(__first, __middle);
15449    return;
15450  }
15451       _BidirectionalIterator __first_cut = __first;
15452       _BidirectionalIterator __second_cut = __middle;
15453       _Distance __len11 = 0;
15454       _Distance __len22 = 0;
15455       if (__len1 > __len2)
15456  {
15457    __len11 = __len1 / 2;
15458    std::advance(__first_cut, __len11);
15459    __second_cut = std::lower_bound(__middle, __last, *__first_cut,
15460        __comp);
15461    __len22 = std::distance(__middle, __second_cut);
15462  }
15463       else
15464  {
15465    __len22 = __len2 / 2;
15466    std::advance(__second_cut, __len22);
15467    __first_cut = std::upper_bound(__first, __middle, *__second_cut,
15468       __comp);
15469    __len11 = std::distance(__first, __first_cut);
15470  }
15471       std::rotate(__first_cut, __middle, __second_cut);
15472       _BidirectionalIterator __new_middle = __first_cut;
15473       std::advance(__new_middle, std::distance(__middle, __second_cut));
15474       std::__merge_without_buffer(__first, __first_cut, __new_middle,
15475       __len11, __len22, __comp);
15476       std::__merge_without_buffer(__new_middle, __second_cut, __last,
15477       __len1 - __len11, __len2 - __len22, __comp);
15478     }
15479
15480
15481
15482
15483
15484
15485   template<typename _RandomAccessIterator>
15486     void
15487     __inplace_stable_sort(_RandomAccessIterator __first,
15488      _RandomAccessIterator __last)
15489     {
15490       if (__last - __first < 15)
15491  {
15492    std::__insertion_sort(__first, __last);
15493    return;
15494  }
15495       _RandomAccessIterator __middle = __first + (__last - __first) / 2;
15496       std::__inplace_stable_sort(__first, __middle);
15497       std::__inplace_stable_sort(__middle, __last);
15498       std::__merge_without_buffer(__first, __middle, __last,
15499       __middle - __first,
15500       __last - __middle);
15501     }
15502
15503
15504
15505
15506
15507
15508   template<typename _RandomAccessIterator, typename _Compare>
15509     void
15510     __inplace_stable_sort(_RandomAccessIterator __first,
15511      _RandomAccessIterator __last, _Compare __comp)
15512     {
15513       if (__last - __first < 15)
15514  {
15515    std::__insertion_sort(__first, __last, __comp);
15516    return;
15517  }
15518       _RandomAccessIterator __middle = __first + (__last - __first) / 2;
15519       std::__inplace_stable_sort(__first, __middle, __comp);
15520       std::__inplace_stable_sort(__middle, __last, __comp);
15521       std::__merge_without_buffer(__first, __middle, __last,
15522       __middle - __first,
15523       __last - __middle,
15524       __comp);
15525     }
15526 # 3117 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15527   template<typename _InputIterator1, typename _InputIterator2,
15528     typename _OutputIterator>
15529     _OutputIterator
15530     merge(_InputIterator1 __first1, _InputIterator1 __last1,
15531    _InputIterator2 __first2, _InputIterator2 __last2,
15532    _OutputIterator __result)
15533     {
15534
15535      
15536      
15537      
15538
15539      
15540
15541
15542      
15543
15544       ;
15545       ;
15546
15547       while (__first1 != __last1 && __first2 != __last2)
15548  {
15549    if (*__first2 < *__first1)
15550      {
15551        *__result = *__first2;
15552        ++__first2;
15553      }
15554    else
15555      {
15556        *__result = *__first1;
15557        ++__first1;
15558      }
15559    ++__result;
15560  }
15561       return std::copy(__first2, __last2, std::copy(__first1, __last1,
15562           __result));
15563     }
15564 # 3175 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15565   template<typename _InputIterator1, typename _InputIterator2,
15566     typename _OutputIterator, typename _Compare>
15567     _OutputIterator
15568     merge(_InputIterator1 __first1, _InputIterator1 __last1,
15569    _InputIterator2 __first2, _InputIterator2 __last2,
15570    _OutputIterator __result, _Compare __comp)
15571     {
15572
15573      
15574      
15575      
15576
15577
15578      
15579
15580      
15581
15582
15583       ;
15584       ;
15585
15586       while (__first1 != __last1 && __first2 != __last2)
15587  {
15588    if (__comp(*__first2, *__first1))
15589      {
15590        *__result = *__first2;
15591        ++__first2;
15592      }
15593    else
15594      {
15595        *__result = *__first1;
15596        ++__first1;
15597      }
15598    ++__result;
15599  }
15600       return std::copy(__first2, __last2, std::copy(__first1, __last1,
15601           __result));
15602     }
15603
15604   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
15605     typename _Distance>
15606     void
15607     __merge_sort_loop(_RandomAccessIterator1 __first,
15608         _RandomAccessIterator1 __last,
15609         _RandomAccessIterator2 __result,
15610         _Distance __step_size)
15611     {
15612       const _Distance __two_step = 2 * __step_size;
15613
15614       while (__last - __first >= __two_step)
15615  {
15616    __result = std::merge(__first, __first + __step_size,
15617     __first + __step_size, __first + __two_step,
15618     __result);
15619    __first += __two_step;
15620  }
15621
15622       __step_size = std::min(_Distance(__last - __first), __step_size);
15623       std::merge(__first, __first + __step_size, __first + __step_size, __last,
15624    __result);
15625     }
15626
15627   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
15628     typename _Distance, typename _Compare>
15629     void
15630     __merge_sort_loop(_RandomAccessIterator1 __first,
15631         _RandomAccessIterator1 __last,
15632         _RandomAccessIterator2 __result, _Distance __step_size,
15633         _Compare __comp)
15634     {
15635       const _Distance __two_step = 2 * __step_size;
15636
15637       while (__last - __first >= __two_step)
15638  {
15639    __result = std::merge(__first, __first + __step_size,
15640     __first + __step_size, __first + __two_step,
15641     __result,
15642     __comp);
15643    __first += __two_step;
15644  }
15645       __step_size = std::min(_Distance(__last - __first), __step_size);
15646
15647       std::merge(__first, __first + __step_size,
15648    __first + __step_size, __last,
15649    __result,
15650    __comp);
15651     }
15652
15653   enum { _S_chunk_size = 7 };
15654
15655   template<typename _RandomAccessIterator, typename _Distance>
15656     void
15657     __chunk_insertion_sort(_RandomAccessIterator __first,
15658       _RandomAccessIterator __last,
15659       _Distance __chunk_size)
15660     {
15661       while (__last - __first >= __chunk_size)
15662  {
15663    std::__insertion_sort(__first, __first + __chunk_size);
15664    __first += __chunk_size;
15665  }
15666       std::__insertion_sort(__first, __last);
15667     }
15668
15669   template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
15670     void
15671     __chunk_insertion_sort(_RandomAccessIterator __first,
15672       _RandomAccessIterator __last,
15673       _Distance __chunk_size, _Compare __comp)
15674     {
15675       while (__last - __first >= __chunk_size)
15676  {
15677    std::__insertion_sort(__first, __first + __chunk_size, __comp);
15678    __first += __chunk_size;
15679  }
15680       std::__insertion_sort(__first, __last, __comp);
15681     }
15682
15683   template<typename _RandomAccessIterator, typename _Pointer>
15684     void
15685     __merge_sort_with_buffer(_RandomAccessIterator __first,
15686         _RandomAccessIterator __last,
15687                              _Pointer __buffer)
15688     {
15689       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15690  _Distance;
15691
15692       const _Distance __len = __last - __first;
15693       const _Pointer __buffer_last = __buffer + __len;
15694
15695       _Distance __step_size = _S_chunk_size;
15696       std::__chunk_insertion_sort(__first, __last, __step_size);
15697
15698       while (__step_size < __len)
15699  {
15700    std::__merge_sort_loop(__first, __last, __buffer, __step_size);
15701    __step_size *= 2;
15702    std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
15703    __step_size *= 2;
15704  }
15705     }
15706
15707   template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
15708     void
15709     __merge_sort_with_buffer(_RandomAccessIterator __first,
15710         _RandomAccessIterator __last,
15711                              _Pointer __buffer, _Compare __comp)
15712     {
15713       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15714  _Distance;
15715
15716       const _Distance __len = __last - __first;
15717       const _Pointer __buffer_last = __buffer + __len;
15718
15719       _Distance __step_size = _S_chunk_size;
15720       std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
15721
15722       while (__step_size < __len)
15723  {
15724    std::__merge_sort_loop(__first, __last, __buffer,
15725      __step_size, __comp);
15726    __step_size *= 2;
15727    std::__merge_sort_loop(__buffer, __buffer_last, __first,
15728      __step_size, __comp);
15729    __step_size *= 2;
15730  }
15731     }
15732
15733
15734
15735
15736
15737
15738   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
15739     typename _BidirectionalIterator3>
15740     _BidirectionalIterator3
15741     __merge_backward(_BidirectionalIterator1 __first1,
15742        _BidirectionalIterator1 __last1,
15743        _BidirectionalIterator2 __first2,
15744        _BidirectionalIterator2 __last2,
15745        _BidirectionalIterator3 __result)
15746     {
15747       if (__first1 == __last1)
15748  return std::copy_backward(__first2, __last2, __result);
15749       if (__first2 == __last2)
15750  return std::copy_backward(__first1, __last1, __result);
15751       --__last1;
15752       --__last2;
15753       while (true)
15754  {
15755    if (*__last2 < *__last1)
15756      {
15757        *--__result = *__last1;
15758        if (__first1 == __last1)
15759   return std::copy_backward(__first2, ++__last2, __result);
15760        --__last1;
15761      }
15762    else
15763      {
15764        *--__result = *__last2;
15765        if (__first2 == __last2)
15766   return std::copy_backward(__first1, ++__last1, __result);
15767        --__last2;
15768      }
15769  }
15770     }
15771
15772
15773
15774
15775
15776
15777   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
15778     typename _BidirectionalIterator3, typename _Compare>
15779     _BidirectionalIterator3
15780     __merge_backward(_BidirectionalIterator1 __first1,
15781        _BidirectionalIterator1 __last1,
15782        _BidirectionalIterator2 __first2,
15783        _BidirectionalIterator2 __last2,
15784        _BidirectionalIterator3 __result,
15785        _Compare __comp)
15786     {
15787       if (__first1 == __last1)
15788  return std::copy_backward(__first2, __last2, __result);
15789       if (__first2 == __last2)
15790  return std::copy_backward(__first1, __last1, __result);
15791       --__last1;
15792       --__last2;
15793       while (true)
15794  {
15795    if (__comp(*__last2, *__last1))
15796      {
15797        *--__result = *__last1;
15798        if (__first1 == __last1)
15799   return std::copy_backward(__first2, ++__last2, __result);
15800        --__last1;
15801      }
15802    else
15803      {
15804        *--__result = *__last2;
15805        if (__first2 == __last2)
15806   return std::copy_backward(__first1, ++__last1, __result);
15807        --__last2;
15808      }
15809  }
15810     }
15811
15812
15813
15814
15815
15816
15817   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
15818     typename _Distance>
15819     _BidirectionalIterator1
15820     __rotate_adaptive(_BidirectionalIterator1 __first,
15821         _BidirectionalIterator1 __middle,
15822         _BidirectionalIterator1 __last,
15823         _Distance __len1, _Distance __len2,
15824         _BidirectionalIterator2 __buffer,
15825         _Distance __buffer_size)
15826     {
15827       _BidirectionalIterator2 __buffer_end;
15828       if (__len1 > __len2 && __len2 <= __buffer_size)
15829  {
15830    __buffer_end = std::copy(__middle, __last, __buffer);
15831    std::copy_backward(__first, __middle, __last);
15832    return std::copy(__buffer, __buffer_end, __first);
15833  }
15834       else if (__len1 <= __buffer_size)
15835  {
15836    __buffer_end = std::copy(__first, __middle, __buffer);
15837    std::copy(__middle, __last, __first);
15838    return std::copy_backward(__buffer, __buffer_end, __last);
15839  }
15840       else
15841  {
15842    std::rotate(__first, __middle, __last);
15843    std::advance(__first, std::distance(__middle, __last));
15844    return __first;
15845  }
15846     }
15847
15848
15849
15850
15851
15852
15853   template<typename _BidirectionalIterator, typename _Distance,
15854     typename _Pointer>
15855     void
15856     __merge_adaptive(_BidirectionalIterator __first,
15857                      _BidirectionalIterator __middle,
15858        _BidirectionalIterator __last,
15859        _Distance __len1, _Distance __len2,
15860        _Pointer __buffer, _Distance __buffer_size)
15861     {
15862       if (__len1 <= __len2 && __len1 <= __buffer_size)
15863  {
15864    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
15865    std::merge(__buffer, __buffer_end, __middle, __last, __first);
15866  }
15867       else if (__len2 <= __buffer_size)
15868  {
15869    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
15870    std::__merge_backward(__first, __middle, __buffer,
15871     __buffer_end, __last);
15872  }
15873       else
15874  {
15875    _BidirectionalIterator __first_cut = __first;
15876    _BidirectionalIterator __second_cut = __middle;
15877    _Distance __len11 = 0;
15878    _Distance __len22 = 0;
15879    if (__len1 > __len2)
15880      {
15881        __len11 = __len1 / 2;
15882        std::advance(__first_cut, __len11);
15883        __second_cut = std::lower_bound(__middle, __last,
15884            *__first_cut);
15885        __len22 = std::distance(__middle, __second_cut);
15886      }
15887    else
15888      {
15889        __len22 = __len2 / 2;
15890        std::advance(__second_cut, __len22);
15891        __first_cut = std::upper_bound(__first, __middle,
15892           *__second_cut);
15893        __len11 = std::distance(__first, __first_cut);
15894      }
15895    _BidirectionalIterator __new_middle =
15896      std::__rotate_adaptive(__first_cut, __middle, __second_cut,
15897        __len1 - __len11, __len22, __buffer,
15898        __buffer_size);
15899    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
15900     __len22, __buffer, __buffer_size);
15901    std::__merge_adaptive(__new_middle, __second_cut, __last,
15902     __len1 - __len11,
15903     __len2 - __len22, __buffer, __buffer_size);
15904  }
15905     }
15906
15907
15908
15909
15910
15911
15912   template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
15913     typename _Compare>
15914     void
15915     __merge_adaptive(_BidirectionalIterator __first,
15916                      _BidirectionalIterator __middle,
15917        _BidirectionalIterator __last,
15918        _Distance __len1, _Distance __len2,
15919        _Pointer __buffer, _Distance __buffer_size,
15920        _Compare __comp)
15921     {
15922       if (__len1 <= __len2 && __len1 <= __buffer_size)
15923  {
15924    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
15925    std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
15926  }
15927       else if (__len2 <= __buffer_size)
15928  {
15929    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
15930    std::__merge_backward(__first, __middle, __buffer, __buffer_end,
15931     __last, __comp);
15932  }
15933       else
15934  {
15935    _BidirectionalIterator __first_cut = __first;
15936    _BidirectionalIterator __second_cut = __middle;
15937    _Distance __len11 = 0;
15938    _Distance __len22 = 0;
15939    if (__len1 > __len2)
15940      {
15941        __len11 = __len1 / 2;
15942        std::advance(__first_cut, __len11);
15943        __second_cut = std::lower_bound(__middle, __last, *__first_cut,
15944            __comp);
15945        __len22 = std::distance(__middle, __second_cut);
15946      }
15947    else
15948      {
15949        __len22 = __len2 / 2;
15950        std::advance(__second_cut, __len22);
15951        __first_cut = std::upper_bound(__first, __middle, *__second_cut,
15952           __comp);
15953        __len11 = std::distance(__first, __first_cut);
15954      }
15955    _BidirectionalIterator __new_middle =
15956      std::__rotate_adaptive(__first_cut, __middle, __second_cut,
15957        __len1 - __len11, __len22, __buffer,
15958        __buffer_size);
15959    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
15960     __len22, __buffer, __buffer_size, __comp);
15961    std::__merge_adaptive(__new_middle, __second_cut, __last,
15962     __len1 - __len11,
15963     __len2 - __len22, __buffer,
15964     __buffer_size, __comp);
15965  }
15966     }
15967 # 3595 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
15968   template<typename _BidirectionalIterator>
15969     void
15970     inplace_merge(_BidirectionalIterator __first,
15971     _BidirectionalIterator __middle,
15972     _BidirectionalIterator __last)
15973     {
15974       typedef typename iterator_traits<_BidirectionalIterator>::value_type
15975           _ValueType;
15976       typedef typename iterator_traits<_BidirectionalIterator>::difference_type
15977           _DistanceType;
15978
15979
15980      
15981
15982      
15983       ;
15984       ;
15985
15986       if (__first == __middle || __middle == __last)
15987  return;
15988
15989       _DistanceType __len1 = std::distance(__first, __middle);
15990       _DistanceType __len2 = std::distance(__middle, __last);
15991
15992       _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
15993           __last);
15994       if (__buf.begin() == 0)
15995  std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
15996       else
15997  std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
15998          __buf.begin(), _DistanceType(__buf.size()));
15999     }
16000 # 3649 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16001   template<typename _BidirectionalIterator, typename _Compare>
16002     void
16003     inplace_merge(_BidirectionalIterator __first,
16004     _BidirectionalIterator __middle,
16005     _BidirectionalIterator __last,
16006     _Compare __comp)
16007     {
16008       typedef typename iterator_traits<_BidirectionalIterator>::value_type
16009           _ValueType;
16010       typedef typename iterator_traits<_BidirectionalIterator>::difference_type
16011           _DistanceType;
16012
16013
16014      
16015
16016      
16017
16018       ;
16019       ;
16020
16021       if (__first == __middle || __middle == __last)
16022  return;
16023
16024       const _DistanceType __len1 = std::distance(__first, __middle);
16025       const _DistanceType __len2 = std::distance(__middle, __last);
16026
16027       _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
16028           __last);
16029       if (__buf.begin() == 0)
16030  std::__merge_without_buffer(__first, __middle, __last, __len1,
16031         __len2, __comp);
16032       else
16033  std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
16034          __buf.begin(), _DistanceType(__buf.size()),
16035          __comp);
16036     }
16037
16038   template<typename _RandomAccessIterator, typename _Pointer,
16039     typename _Distance>
16040     void
16041     __stable_sort_adaptive(_RandomAccessIterator __first,
16042       _RandomAccessIterator __last,
16043                            _Pointer __buffer, _Distance __buffer_size)
16044     {
16045       const _Distance __len = (__last - __first + 1) / 2;
16046       const _RandomAccessIterator __middle = __first + __len;
16047       if (__len > __buffer_size)
16048  {
16049    std::__stable_sort_adaptive(__first, __middle,
16050           __buffer, __buffer_size);
16051    std::__stable_sort_adaptive(__middle, __last,
16052           __buffer, __buffer_size);
16053  }
16054       else
16055  {
16056    std::__merge_sort_with_buffer(__first, __middle, __buffer);
16057    std::__merge_sort_with_buffer(__middle, __last, __buffer);
16058  }
16059       std::__merge_adaptive(__first, __middle, __last,
16060        _Distance(__middle - __first),
16061        _Distance(__last - __middle),
16062        __buffer, __buffer_size);
16063     }
16064
16065   template<typename _RandomAccessIterator, typename _Pointer,
16066     typename _Distance, typename _Compare>
16067     void
16068     __stable_sort_adaptive(_RandomAccessIterator __first,
16069       _RandomAccessIterator __last,
16070                            _Pointer __buffer, _Distance __buffer_size,
16071                            _Compare __comp)
16072     {
16073       const _Distance __len = (__last - __first + 1) / 2;
16074       const _RandomAccessIterator __middle = __first + __len;
16075       if (__len > __buffer_size)
16076  {
16077    std::__stable_sort_adaptive(__first, __middle, __buffer,
16078           __buffer_size, __comp);
16079    std::__stable_sort_adaptive(__middle, __last, __buffer,
16080           __buffer_size, __comp);
16081  }
16082       else
16083  {
16084    std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
16085    std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
16086  }
16087       std::__merge_adaptive(__first, __middle, __last,
16088        _Distance(__middle - __first),
16089        _Distance(__last - __middle),
16090        __buffer, __buffer_size,
16091        __comp);
16092     }
16093 # 3758 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16094   template<typename _RandomAccessIterator>
16095     inline void
16096     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
16097     {
16098       typedef typename iterator_traits<_RandomAccessIterator>::value_type
16099  _ValueType;
16100       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16101  _DistanceType;
16102
16103
16104      
16105
16106      
16107       ;
16108
16109       _Temporary_buffer<_RandomAccessIterator, _ValueType>
16110  buf(__first, __last);
16111       if (buf.begin() == 0)
16112  std::__inplace_stable_sort(__first, __last);
16113       else
16114  std::__stable_sort_adaptive(__first, __last, buf.begin(),
16115         _DistanceType(buf.size()));
16116     }
16117 # 3799 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16118   template<typename _RandomAccessIterator, typename _Compare>
16119     inline void
16120     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
16121   _Compare __comp)
16122     {
16123       typedef typename iterator_traits<_RandomAccessIterator>::value_type
16124  _ValueType;
16125       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16126  _DistanceType;
16127
16128
16129      
16130
16131      
16132
16133
16134       ;
16135
16136       _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
16137       if (buf.begin() == 0)
16138  std::__inplace_stable_sort(__first, __last, __comp);
16139       else
16140  std::__stable_sort_adaptive(__first, __last, buf.begin(),
16141         _DistanceType(buf.size()), __comp);
16142     }
16143 # 3840 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16144   template<typename _RandomAccessIterator>
16145     void
16146     nth_element(_RandomAccessIterator __first,
16147   _RandomAccessIterator __nth,
16148   _RandomAccessIterator __last)
16149     {
16150       typedef typename iterator_traits<_RandomAccessIterator>::value_type
16151  _ValueType;
16152
16153
16154      
16155
16156      
16157       ;
16158       ;
16159
16160       while (__last - __first > 3)
16161  {
16162    _RandomAccessIterator __cut =
16163      std::__unguarded_partition(__first, __last,
16164            _ValueType(std::__median(*__first,
16165         *(__first
16166           + (__last
16167              - __first)
16168           / 2),
16169         *(__last
16170           - 1))));
16171    if (__cut <= __nth)
16172      __first = __cut;
16173    else
16174      __last = __cut;
16175  }
16176       std::__insertion_sort(__first, __last);
16177     }
16178 # 3891 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16179   template<typename _RandomAccessIterator, typename _Compare>
16180     void
16181     nth_element(_RandomAccessIterator __first,
16182   _RandomAccessIterator __nth,
16183   _RandomAccessIterator __last,
16184        _Compare __comp)
16185     {
16186       typedef typename iterator_traits<_RandomAccessIterator>::value_type
16187  _ValueType;
16188
16189
16190      
16191
16192      
16193
16194       ;
16195       ;
16196
16197       while (__last - __first > 3)
16198  {
16199    _RandomAccessIterator __cut =
16200      std::__unguarded_partition(__first, __last,
16201            _ValueType(std::__median(*__first,
16202         *(__first
16203           + (__last
16204              - __first)
16205           / 2),
16206         *(__last - 1),
16207              __comp)), __comp);
16208    if (__cut <= __nth)
16209      __first = __cut;
16210    else
16211      __last = __cut;
16212  }
16213       std::__insertion_sort(__first, __last, __comp);
16214     }
16215 # 3944 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16216   template<typename _ForwardIterator, typename _Tp>
16217     pair<_ForwardIterator, _ForwardIterator>
16218     equal_range(_ForwardIterator __first, _ForwardIterator __last,
16219   const _Tp& __val)
16220     {
16221       typedef typename iterator_traits<_ForwardIterator>::value_type
16222  _ValueType;
16223       typedef typename iterator_traits<_ForwardIterator>::difference_type
16224  _DistanceType;
16225
16226
16227
16228      
16229      
16230      
16231       ;
16232
16233       _DistanceType __len = std::distance(__first, __last);
16234       _DistanceType __half;
16235       _ForwardIterator __middle, __left, __right;
16236
16237       while (__len > 0)
16238  {
16239    __half = __len >> 1;
16240    __middle = __first;
16241    std::advance(__middle, __half);
16242    if (*__middle < __val)
16243      {
16244        __first = __middle;
16245        ++__first;
16246        __len = __len - __half - 1;
16247      }
16248    else if (__val < *__middle)
16249      __len = __half;
16250    else
16251      {
16252        __left = std::lower_bound(__first, __middle, __val);
16253        std::advance(__first, __len);
16254        __right = std::upper_bound(++__middle, __first, __val);
16255        return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
16256      }
16257  }
16258       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
16259     }
16260 # 4006 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16261   template<typename _ForwardIterator, typename _Tp, typename _Compare>
16262     pair<_ForwardIterator, _ForwardIterator>
16263     equal_range(_ForwardIterator __first, _ForwardIterator __last,
16264   const _Tp& __val,
16265   _Compare __comp)
16266     {
16267       typedef typename iterator_traits<_ForwardIterator>::value_type
16268  _ValueType;
16269       typedef typename iterator_traits<_ForwardIterator>::difference_type
16270  _DistanceType;
16271
16272
16273      
16274      
16275
16276      
16277
16278       ;
16279
16280       _DistanceType __len = std::distance(__first, __last);
16281       _DistanceType __half;
16282       _ForwardIterator __middle, __left, __right;
16283
16284       while (__len > 0)
16285  {
16286    __half = __len >> 1;
16287    __middle = __first;
16288    std::advance(__middle, __half);
16289    if (__comp(*__middle, __val))
16290      {
16291        __first = __middle;
16292        ++__first;
16293        __len = __len - __half - 1;
16294      }
16295    else if (__comp(__val, *__middle))
16296      __len = __half;
16297    else
16298      {
16299        __left = std::lower_bound(__first, __middle, __val, __comp);
16300        std::advance(__first, __len);
16301        __right = std::upper_bound(++__middle, __first, __val, __comp);
16302        return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
16303      }
16304  }
16305       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
16306     }
16307 # 4064 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16308   template<typename _ForwardIterator, typename _Tp>
16309     bool
16310     binary_search(_ForwardIterator __first, _ForwardIterator __last,
16311                   const _Tp& __val)
16312     {
16313
16314
16315      
16316      
16317
16318      
16319       ;
16320
16321       _ForwardIterator __i = std::lower_bound(__first, __last, __val);
16322       return __i != __last && !(__val < *__i);
16323     }
16324 # 4096 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16325   template<typename _ForwardIterator, typename _Tp, typename _Compare>
16326     bool
16327     binary_search(_ForwardIterator __first, _ForwardIterator __last,
16328                   const _Tp& __val, _Compare __comp)
16329     {
16330
16331      
16332      
16333
16334      
16335
16336       ;
16337
16338       _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
16339       return __i != __last && !__comp(__val, *__i);
16340     }
16341 # 4134 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16342   template<typename _InputIterator1, typename _InputIterator2>
16343     bool
16344     includes(_InputIterator1 __first1, _InputIterator1 __last1,
16345       _InputIterator2 __first2, _InputIterator2 __last2)
16346     {
16347
16348      
16349      
16350      
16351
16352
16353      
16354
16355       ;
16356       ;
16357
16358       while (__first1 != __last1 && __first2 != __last2)
16359  if (*__first2 < *__first1)
16360    return false;
16361  else if(*__first1 < *__first2)
16362    ++__first1;
16363  else
16364    ++__first1, ++__first2;
16365
16366       return __first2 == __last2;
16367     }
16368 # 4180 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16369   template<typename _InputIterator1, typename _InputIterator2,
16370     typename _Compare>
16371     bool
16372     includes(_InputIterator1 __first1, _InputIterator1 __last1,
16373       _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
16374     {
16375
16376      
16377      
16378      
16379
16380
16381      
16382
16383
16384       ;
16385       ;
16386
16387       while (__first1 != __last1 && __first2 != __last2)
16388  if (__comp(*__first2, *__first1))
16389    return false;
16390  else if(__comp(*__first1, *__first2))
16391    ++__first1;
16392  else
16393    ++__first1, ++__first2;
16394
16395       return __first2 == __last2;
16396     }
16397 # 4226 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16398   template<typename _InputIterator1, typename _InputIterator2,
16399     typename _OutputIterator>
16400     _OutputIterator
16401     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
16402        _InputIterator2 __first2, _InputIterator2 __last2,
16403        _OutputIterator __result)
16404     {
16405
16406      
16407      
16408      
16409
16410      
16411
16412
16413      
16414
16415       ;
16416       ;
16417
16418       while (__first1 != __last1 && __first2 != __last2)
16419  {
16420    if (*__first1 < *__first2)
16421      {
16422        *__result = *__first1;
16423        ++__first1;
16424      }
16425    else if (*__first2 < *__first1)
16426      {
16427        *__result = *__first2;
16428        ++__first2;
16429      }
16430    else
16431      {
16432        *__result = *__first1;
16433        ++__first1;
16434        ++__first2;
16435      }
16436    ++__result;
16437  }
16438       return std::copy(__first2, __last2, std::copy(__first1, __last1,
16439           __result));
16440     }
16441 # 4288 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16442   template<typename _InputIterator1, typename _InputIterator2,
16443     typename _OutputIterator, typename _Compare>
16444     _OutputIterator
16445     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
16446        _InputIterator2 __first2, _InputIterator2 __last2,
16447        _OutputIterator __result, _Compare __comp)
16448     {
16449
16450      
16451      
16452      
16453
16454
16455      
16456
16457      
16458
16459
16460       ;
16461       ;
16462
16463       while (__first1 != __last1 && __first2 != __last2)
16464  {
16465    if (__comp(*__first1, *__first2))
16466      {
16467        *__result = *__first1;
16468        ++__first1;
16469      }
16470    else if (__comp(*__first2, *__first1))
16471      {
16472        *__result = *__first2;
16473        ++__first2;
16474      }
16475    else
16476      {
16477        *__result = *__first1;
16478        ++__first1;
16479        ++__first2;
16480      }
16481    ++__result;
16482  }
16483       return std::copy(__first2, __last2, std::copy(__first1, __last1,
16484           __result));
16485     }
16486 # 4349 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16487   template<typename _InputIterator1, typename _InputIterator2,
16488     typename _OutputIterator>
16489     _OutputIterator
16490     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
16491        _InputIterator2 __first2, _InputIterator2 __last2,
16492        _OutputIterator __result)
16493     {
16494
16495      
16496      
16497      
16498
16499      
16500
16501
16502      
16503
16504       ;
16505       ;
16506
16507       while (__first1 != __last1 && __first2 != __last2)
16508  if (*__first1 < *__first2)
16509    ++__first1;
16510  else if (*__first2 < *__first1)
16511    ++__first2;
16512  else
16513    {
16514      *__result = *__first1;
16515      ++__first1;
16516      ++__first2;
16517      ++__result;
16518    }
16519       return __result;
16520     }
16521 # 4403 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16522   template<typename _InputIterator1, typename _InputIterator2,
16523     typename _OutputIterator, typename _Compare>
16524     _OutputIterator
16525     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
16526        _InputIterator2 __first2, _InputIterator2 __last2,
16527        _OutputIterator __result, _Compare __comp)
16528     {
16529
16530      
16531      
16532      
16533
16534
16535      
16536
16537      
16538
16539
16540       ;
16541       ;
16542
16543       while (__first1 != __last1 && __first2 != __last2)
16544  if (__comp(*__first1, *__first2))
16545    ++__first1;
16546  else if (__comp(*__first2, *__first1))
16547    ++__first2;
16548  else
16549    {
16550      *__result = *__first1;
16551      ++__first1;
16552      ++__first2;
16553      ++__result;
16554    }
16555       return __result;
16556     }
16557 # 4457 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16558   template<typename _InputIterator1, typename _InputIterator2,
16559     typename _OutputIterator>
16560     _OutputIterator
16561     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
16562      _InputIterator2 __first2, _InputIterator2 __last2,
16563      _OutputIterator __result)
16564     {
16565
16566      
16567      
16568      
16569
16570      
16571
16572
16573      
16574
16575       ;
16576       ;
16577
16578       while (__first1 != __last1 && __first2 != __last2)
16579  if (*__first1 < *__first2)
16580    {
16581      *__result = *__first1;
16582      ++__first1;
16583      ++__result;
16584    }
16585  else if (*__first2 < *__first1)
16586    ++__first2;
16587  else
16588    {
16589      ++__first1;
16590      ++__first2;
16591    }
16592       return std::copy(__first1, __last1, __result);
16593     }
16594 # 4515 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16595   template<typename _InputIterator1, typename _InputIterator2,
16596     typename _OutputIterator, typename _Compare>
16597     _OutputIterator
16598     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
16599      _InputIterator2 __first2, _InputIterator2 __last2,
16600      _OutputIterator __result, _Compare __comp)
16601     {
16602
16603      
16604      
16605      
16606
16607
16608      
16609
16610      
16611
16612
16613       ;
16614       ;
16615
16616       while (__first1 != __last1 && __first2 != __last2)
16617  if (__comp(*__first1, *__first2))
16618    {
16619      *__result = *__first1;
16620      ++__first1;
16621      ++__result;
16622    }
16623  else if (__comp(*__first2, *__first1))
16624    ++__first2;
16625  else
16626    {
16627      ++__first1;
16628      ++__first2;
16629    }
16630       return std::copy(__first1, __last1, __result);
16631     }
16632 # 4569 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16633   template<typename _InputIterator1, typename _InputIterator2,
16634     typename _OutputIterator>
16635     _OutputIterator
16636     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
16637         _InputIterator2 __first2, _InputIterator2 __last2,
16638         _OutputIterator __result)
16639     {
16640
16641      
16642      
16643      
16644
16645      
16646
16647
16648      
16649
16650       ;
16651       ;
16652
16653       while (__first1 != __last1 && __first2 != __last2)
16654  if (*__first1 < *__first2)
16655    {
16656      *__result = *__first1;
16657      ++__first1;
16658      ++__result;
16659    }
16660  else if (*__first2 < *__first1)
16661    {
16662      *__result = *__first2;
16663      ++__first2;
16664      ++__result;
16665    }
16666  else
16667    {
16668      ++__first1;
16669      ++__first2;
16670    }
16671       return std::copy(__first2, __last2, std::copy(__first1,
16672           __last1, __result));
16673     }
16674 # 4630 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16675   template<typename _InputIterator1, typename _InputIterator2,
16676     typename _OutputIterator, typename _Compare>
16677     _OutputIterator
16678     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
16679         _InputIterator2 __first2, _InputIterator2 __last2,
16680         _OutputIterator __result,
16681         _Compare __comp)
16682     {
16683
16684      
16685      
16686      
16687
16688
16689      
16690
16691      
16692
16693
16694       ;
16695       ;
16696
16697       while (__first1 != __last1 && __first2 != __last2)
16698  if (__comp(*__first1, *__first2))
16699    {
16700      *__result = *__first1;
16701      ++__first1;
16702      ++__result;
16703    }
16704  else if (__comp(*__first2, *__first1))
16705    {
16706      *__result = *__first2;
16707      ++__first2;
16708      ++__result;
16709    }
16710  else
16711    {
16712      ++__first1;
16713      ++__first2;
16714    }
16715       return std::copy(__first2, __last2, std::copy(__first1,
16716           __last1, __result));
16717     }
16718 # 4683 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16719   template<typename _ForwardIterator>
16720     _ForwardIterator
16721     max_element(_ForwardIterator __first, _ForwardIterator __last)
16722     {
16723
16724      
16725      
16726
16727       ;
16728
16729       if (__first == __last)
16730  return __first;
16731       _ForwardIterator __result = __first;
16732       while (++__first != __last)
16733  if (*__result < *__first)
16734    __result = __first;
16735       return __result;
16736     }
16737 # 4710 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16738   template<typename _ForwardIterator, typename _Compare>
16739     _ForwardIterator
16740     max_element(_ForwardIterator __first, _ForwardIterator __last,
16741   _Compare __comp)
16742     {
16743
16744      
16745      
16746
16747
16748       ;
16749
16750       if (__first == __last) return __first;
16751       _ForwardIterator __result = __first;
16752       while (++__first != __last)
16753  if (__comp(*__result, *__first)) __result = __first;
16754       return __result;
16755     }
16756
16757
16758
16759
16760
16761
16762
16763   template<typename _ForwardIterator>
16764     _ForwardIterator
16765     min_element(_ForwardIterator __first, _ForwardIterator __last)
16766     {
16767
16768      
16769      
16770
16771       ;
16772
16773       if (__first == __last)
16774  return __first;
16775       _ForwardIterator __result = __first;
16776       while (++__first != __last)
16777  if (*__first < *__result)
16778    __result = __first;
16779       return __result;
16780     }
16781 # 4762 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16782   template<typename _ForwardIterator, typename _Compare>
16783     _ForwardIterator
16784     min_element(_ForwardIterator __first, _ForwardIterator __last,
16785   _Compare __comp)
16786     {
16787
16788      
16789      
16790
16791
16792       ;
16793
16794       if (__first == __last)
16795  return __first;
16796       _ForwardIterator __result = __first;
16797       while (++__first != __last)
16798  if (__comp(*__first, *__result))
16799    __result = __first;
16800       return __result;
16801     }
16802 # 4797 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16803   template<typename _BidirectionalIterator>
16804     bool
16805     next_permutation(_BidirectionalIterator __first,
16806        _BidirectionalIterator __last)
16807     {
16808
16809      
16810
16811      
16812
16813       ;
16814
16815       if (__first == __last)
16816  return false;
16817       _BidirectionalIterator __i = __first;
16818       ++__i;
16819       if (__i == __last)
16820  return false;
16821       __i = __last;
16822       --__i;
16823
16824       for(;;)
16825  {
16826    _BidirectionalIterator __ii = __i;
16827    --__i;
16828    if (*__i < *__ii)
16829      {
16830        _BidirectionalIterator __j = __last;
16831        while (!(*__i < *--__j))
16832   {}
16833        std::iter_swap(__i, __j);
16834        std::reverse(__ii, __last);
16835        return true;
16836      }
16837    if (__i == __first)
16838      {
16839        std::reverse(__first, __last);
16840        return false;
16841      }
16842  }
16843     }
16844 # 4853 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16845   template<typename _BidirectionalIterator, typename _Compare>
16846     bool
16847     next_permutation(_BidirectionalIterator __first,
16848        _BidirectionalIterator __last, _Compare __comp)
16849     {
16850
16851      
16852
16853      
16854
16855
16856       ;
16857
16858       if (__first == __last)
16859  return false;
16860       _BidirectionalIterator __i = __first;
16861       ++__i;
16862       if (__i == __last)
16863  return false;
16864       __i = __last;
16865       --__i;
16866
16867       for(;;)
16868  {
16869    _BidirectionalIterator __ii = __i;
16870    --__i;
16871    if (__comp(*__i, *__ii))
16872      {
16873        _BidirectionalIterator __j = __last;
16874        while (!__comp(*__i, *--__j))
16875   {}
16876        std::iter_swap(__i, __j);
16877        std::reverse(__ii, __last);
16878        return true;
16879      }
16880    if (__i == __first)
16881      {
16882        std::reverse(__first, __last);
16883        return false;
16884      }
16885  }
16886     }
16887 # 4908 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16888   template<typename _BidirectionalIterator>
16889     bool
16890     prev_permutation(_BidirectionalIterator __first,
16891        _BidirectionalIterator __last)
16892     {
16893
16894      
16895
16896      
16897
16898       ;
16899
16900       if (__first == __last)
16901  return false;
16902       _BidirectionalIterator __i = __first;
16903       ++__i;
16904       if (__i == __last)
16905  return false;
16906       __i = __last;
16907       --__i;
16908
16909       for(;;)
16910  {
16911    _BidirectionalIterator __ii = __i;
16912    --__i;
16913    if (*__ii < *__i)
16914      {
16915        _BidirectionalIterator __j = __last;
16916        while (!(*--__j < *__i))
16917   {}
16918        std::iter_swap(__i, __j);
16919        std::reverse(__ii, __last);
16920        return true;
16921      }
16922    if (__i == __first)
16923      {
16924        std::reverse(__first, __last);
16925        return false;
16926      }
16927  }
16928     }
16929 # 4964 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16930   template<typename _BidirectionalIterator, typename _Compare>
16931     bool
16932     prev_permutation(_BidirectionalIterator __first,
16933        _BidirectionalIterator __last, _Compare __comp)
16934     {
16935
16936      
16937
16938      
16939
16940
16941       ;
16942
16943       if (__first == __last)
16944  return false;
16945       _BidirectionalIterator __i = __first;
16946       ++__i;
16947       if (__i == __last)
16948  return false;
16949       __i = __last;
16950       --__i;
16951
16952       for(;;)
16953  {
16954    _BidirectionalIterator __ii = __i;
16955    --__i;
16956    if (__comp(*__ii, *__i))
16957      {
16958        _BidirectionalIterator __j = __last;
16959        while (!__comp(*--__j, *__i))
16960   {}
16961        std::iter_swap(__i, __j);
16962        std::reverse(__ii, __last);
16963        return true;
16964      }
16965    if (__i == __first)
16966      {
16967        std::reverse(__first, __last);
16968        return false;
16969      }
16970  }
16971     }
16972 # 5023 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16973   template<typename _InputIterator, typename _ForwardIterator>
16974     _InputIterator
16975     find_first_of(_InputIterator __first1, _InputIterator __last1,
16976     _ForwardIterator __first2, _ForwardIterator __last2)
16977     {
16978
16979      
16980      
16981      
16982
16983
16984       ;
16985       ;
16986
16987       for ( ; __first1 != __last1; ++__first1)
16988  for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
16989    if (*__first1 == *__iter)
16990      return __first1;
16991       return __last1;
16992     }
16993 # 5059 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
16994   template<typename _InputIterator, typename _ForwardIterator,
16995     typename _BinaryPredicate>
16996     _InputIterator
16997     find_first_of(_InputIterator __first1, _InputIterator __last1,
16998     _ForwardIterator __first2, _ForwardIterator __last2,
16999     _BinaryPredicate __comp)
17000     {
17001
17002      
17003      
17004      
17005
17006
17007       ;
17008       ;
17009
17010       for ( ; __first1 != __last1; ++__first1)
17011  for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
17012    if (__comp(*__first1, *__iter))
17013      return __first1;
17014       return __last1;
17015     }
17016 # 5089 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
17017   template<typename _ForwardIterator1, typename _ForwardIterator2>
17018     _ForwardIterator1
17019     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
17020         _ForwardIterator2 __first2, _ForwardIterator2 __last2,
17021         forward_iterator_tag, forward_iterator_tag)
17022     {
17023       if (__first2 == __last2)
17024  return __last1;
17025       else
17026  {
17027    _ForwardIterator1 __result = __last1;
17028    while (1)
17029      {
17030        _ForwardIterator1 __new_result
17031   = std::search(__first1, __last1, __first2, __last2);
17032        if (__new_result == __last1)
17033   return __result;
17034        else
17035   {
17036     __result = __new_result;
17037     __first1 = __new_result;
17038     ++__first1;
17039   }
17040      }
17041  }
17042     }
17043
17044   template<typename _ForwardIterator1, typename _ForwardIterator2,
17045     typename _BinaryPredicate>
17046     _ForwardIterator1
17047     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
17048         _ForwardIterator2 __first2, _ForwardIterator2 __last2,
17049         forward_iterator_tag, forward_iterator_tag,
17050         _BinaryPredicate __comp)
17051     {
17052       if (__first2 == __last2)
17053  return __last1;
17054       else
17055  {
17056    _ForwardIterator1 __result = __last1;
17057    while (1)
17058      {
17059        _ForwardIterator1 __new_result
17060   = std::search(__first1, __last1, __first2, __last2, __comp);
17061        if (__new_result == __last1)
17062   return __result;
17063        else
17064   {
17065     __result = __new_result;
17066     __first1 = __new_result;
17067     ++__first1;
17068   }
17069      }
17070  }
17071     }
17072
17073
17074   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
17075     _BidirectionalIterator1
17076     __find_end(_BidirectionalIterator1 __first1,
17077         _BidirectionalIterator1 __last1,
17078         _BidirectionalIterator2 __first2,
17079         _BidirectionalIterator2 __last2,
17080         bidirectional_iterator_tag, bidirectional_iterator_tag)
17081     {
17082
17083      
17084
17085      
17086
17087
17088       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
17089       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
17090
17091       _RevIterator1 __rlast1(__first1);
17092       _RevIterator2 __rlast2(__first2);
17093       _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
17094          _RevIterator2(__last2), __rlast2);
17095
17096       if (__rresult == __rlast1)
17097  return __last1;
17098       else
17099  {
17100    _BidirectionalIterator1 __result = __rresult.base();
17101    std::advance(__result, -std::distance(__first2, __last2));
17102    return __result;
17103  }
17104     }
17105
17106   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
17107     typename _BinaryPredicate>
17108     _BidirectionalIterator1
17109     __find_end(_BidirectionalIterator1 __first1,
17110         _BidirectionalIterator1 __last1,
17111         _BidirectionalIterator2 __first2,
17112         _BidirectionalIterator2 __last2,
17113         bidirectional_iterator_tag, bidirectional_iterator_tag,
17114         _BinaryPredicate __comp)
17115     {
17116
17117      
17118
17119      
17120
17121
17122       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
17123       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
17124
17125       _RevIterator1 __rlast1(__first1);
17126       _RevIterator2 __rlast2(__first2);
17127       _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
17128          _RevIterator2(__last2), __rlast2,
17129          __comp);
17130
17131       if (__rresult == __rlast1)
17132  return __last1;
17133       else
17134  {
17135    _BidirectionalIterator1 __result = __rresult.base();
17136    std::advance(__result, -std::distance(__first2, __last2));
17137    return __result;
17138  }
17139     }
17140 # 5239 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
17141   template<typename _ForwardIterator1, typename _ForwardIterator2>
17142     inline _ForwardIterator1
17143     find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
17144       _ForwardIterator2 __first2, _ForwardIterator2 __last2)
17145     {
17146
17147      
17148      
17149      
17150
17151
17152       ;
17153       ;
17154
17155       return std::__find_end(__first1, __last1, __first2, __last2,
17156         std::__iterator_category(__first1),
17157         std::__iterator_category(__first2));
17158     }
17159 # 5284 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_algo.h" 3
17160   template<typename _ForwardIterator1, typename _ForwardIterator2,
17161     typename _BinaryPredicate>
17162     inline _ForwardIterator1
17163     find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
17164       _ForwardIterator2 __first2, _ForwardIterator2 __last2,
17165       _BinaryPredicate __comp)
17166     {
17167
17168      
17169      
17170      
17171
17172
17173       ;
17174       ;
17175
17176       return std::__find_end(__first1, __last1, __first2, __last2,
17177         std::__iterator_category(__first1),
17178         std::__iterator_category(__first2),
17179         __comp);
17180     }
17181
17182 }
17183 # 69 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/algorithm" 2 3
17184 # 56 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 2 3
17185 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.tcc" 1 3
17186 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.tcc" 3
17187        
17188 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.tcc" 3
17189
17190 namespace std
17191 {
17192   template<typename _Type>
17193     inline bool
17194     __is_null_pointer(_Type* __ptr)
17195     { return __ptr == 0; }
17196
17197   template<typename _Type>
17198     inline bool
17199     __is_null_pointer(_Type)
17200     { return false; }
17201
17202   template<typename _CharT, typename _Traits, typename _Alloc>
17203     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
17204     basic_string<_CharT, _Traits, _Alloc>::
17205     _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
17206
17207   template<typename _CharT, typename _Traits, typename _Alloc>
17208     const _CharT
17209     basic_string<_CharT, _Traits, _Alloc>::
17210     _Rep::_S_terminal = _CharT();
17211
17212   template<typename _CharT, typename _Traits, typename _Alloc>
17213     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
17214     basic_string<_CharT, _Traits, _Alloc>::npos;
17215
17216
17217
17218   template<typename _CharT, typename _Traits, typename _Alloc>
17219     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17220     basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
17221     (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
17222       sizeof(size_type)];
17223
17224
17225
17226
17227
17228   template<typename _CharT, typename _Traits, typename _Alloc>
17229     template<typename _InIterator>
17230       _CharT*
17231       basic_string<_CharT, _Traits, _Alloc>::
17232       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
17233      input_iterator_tag)
17234       {
17235
17236  if (__beg == __end && __a == _Alloc())
17237    return _S_empty_rep()._M_refdata();
17238
17239
17240  _CharT __buf[128];
17241  size_type __len = 0;
17242  while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
17243    {
17244      __buf[__len++] = *__beg;
17245      ++__beg;
17246    }
17247  _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
17248  _M_copy(__r->_M_refdata(), __buf, __len);
17249  try
17250    {
17251      while (__beg != __end)
17252        {
17253   if (__len == __r->_M_capacity)
17254     {
17255
17256       _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
17257       _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
17258       __r->_M_destroy(__a);
17259       __r = __another;
17260     }
17261   __r->_M_refdata()[__len++] = *__beg;
17262   ++__beg;
17263        }
17264    }
17265  catch(...)
17266    {
17267      __r->_M_destroy(__a);
17268      throw;
17269    }
17270  __r->_M_set_length_and_sharable(__len);
17271  return __r->_M_refdata();
17272       }
17273
17274   template<typename _CharT, typename _Traits, typename _Alloc>
17275     template <typename _InIterator>
17276       _CharT*
17277       basic_string<_CharT, _Traits, _Alloc>::
17278       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
17279      forward_iterator_tag)
17280       {
17281
17282  if (__beg == __end && __a == _Alloc())
17283    return _S_empty_rep()._M_refdata();
17284
17285
17286  if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0))
17287    __throw_logic_error(("basic_string::_S_construct NULL not valid"));
17288
17289  const size_type __dnew = static_cast<size_type>(std::distance(__beg,
17290               __end));
17291
17292  _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
17293  try
17294    { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
17295  catch(...)
17296    {
17297      __r->_M_destroy(__a);
17298      throw;
17299    }
17300  __r->_M_set_length_and_sharable(__dnew);
17301  return __r->_M_refdata();
17302       }
17303
17304   template<typename _CharT, typename _Traits, typename _Alloc>
17305     _CharT*
17306     basic_string<_CharT, _Traits, _Alloc>::
17307     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
17308     {
17309
17310       if (__n == 0 && __a == _Alloc())
17311  return _S_empty_rep()._M_refdata();
17312
17313
17314       _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
17315       if (__n)
17316  _M_assign(__r->_M_refdata(), __n, __c);
17317
17318       __r->_M_set_length_and_sharable(__n);
17319       return __r->_M_refdata();
17320     }
17321
17322   template<typename _CharT, typename _Traits, typename _Alloc>
17323     basic_string<_CharT, _Traits, _Alloc>::
17324     basic_string(const basic_string& __str)
17325     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
17326        __str.get_allocator()),
17327     __str.get_allocator())
17328     { }
17329
17330   template<typename _CharT, typename _Traits, typename _Alloc>
17331     basic_string<_CharT, _Traits, _Alloc>::
17332     basic_string(const _Alloc& __a)
17333     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
17334     { }
17335
17336   template<typename _CharT, typename _Traits, typename _Alloc>
17337     basic_string<_CharT, _Traits, _Alloc>::
17338     basic_string(const basic_string& __str, size_type __pos, size_type __n)
17339     : _M_dataplus(_S_construct(__str._M_data()
17340           + __str._M_check(__pos,
17341       "basic_string::basic_string"),
17342           __str._M_data() + __str._M_limit(__pos, __n)
17343           + __pos, _Alloc()), _Alloc())
17344     { }
17345
17346   template<typename _CharT, typename _Traits, typename _Alloc>
17347     basic_string<_CharT, _Traits, _Alloc>::
17348     basic_string(const basic_string& __str, size_type __pos,
17349    size_type __n, const _Alloc& __a)
17350     : _M_dataplus(_S_construct(__str._M_data()
17351           + __str._M_check(__pos,
17352       "basic_string::basic_string"),
17353           __str._M_data() + __str._M_limit(__pos, __n)
17354           + __pos, __a), __a)
17355     { }
17356
17357
17358   template<typename _CharT, typename _Traits, typename _Alloc>
17359     basic_string<_CharT, _Traits, _Alloc>::
17360     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
17361     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
17362     { }
17363
17364
17365   template<typename _CharT, typename _Traits, typename _Alloc>
17366     basic_string<_CharT, _Traits, _Alloc>::
17367     basic_string(const _CharT* __s, const _Alloc& __a)
17368     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
17369           __s + npos, __a), __a)
17370     { }
17371
17372   template<typename _CharT, typename _Traits, typename _Alloc>
17373     basic_string<_CharT, _Traits, _Alloc>::
17374     basic_string(size_type __n, _CharT __c, const _Alloc& __a)
17375     : _M_dataplus(_S_construct(__n, __c, __a), __a)
17376     { }
17377
17378
17379   template<typename _CharT, typename _Traits, typename _Alloc>
17380     template<typename _InputIterator>
17381     basic_string<_CharT, _Traits, _Alloc>::
17382     basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
17383     : _M_dataplus(_S_construct(__beg, __end, __a), __a)
17384     { }
17385
17386   template<typename _CharT, typename _Traits, typename _Alloc>
17387     basic_string<_CharT, _Traits, _Alloc>&
17388     basic_string<_CharT, _Traits, _Alloc>::
17389     assign(const basic_string& __str)
17390     {
17391       if (_M_rep() != __str._M_rep())
17392  {
17393
17394    const allocator_type __a = this->get_allocator();
17395    _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
17396    _M_rep()->_M_dispose(__a);
17397    _M_data(__tmp);
17398  }
17399       return *this;
17400     }
17401
17402   template<typename _CharT, typename _Traits, typename _Alloc>
17403     basic_string<_CharT, _Traits, _Alloc>&
17404     basic_string<_CharT, _Traits, _Alloc>::
17405     assign(const _CharT* __s, size_type __n)
17406     {
17407       ;
17408       _M_check_length(this->size(), __n, "basic_string::assign");
17409       if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
17410  return _M_replace_safe(size_type(0), this->size(), __s, __n);
17411       else
17412  {
17413
17414    const size_type __pos = __s - _M_data();
17415    if (__pos >= __n)
17416      _M_copy(_M_data(), __s, __n);
17417    else if (__pos)
17418      _M_move(_M_data(), __s, __n);
17419    _M_rep()->_M_set_length_and_sharable(__n);
17420    return *this;
17421  }
17422      }
17423
17424   template<typename _CharT, typename _Traits, typename _Alloc>
17425     basic_string<_CharT, _Traits, _Alloc>&
17426     basic_string<_CharT, _Traits, _Alloc>::
17427     append(size_type __n, _CharT __c)
17428     {
17429       if (__n)
17430  {
17431    _M_check_length(size_type(0), __n, "basic_string::append");
17432    const size_type __len = __n + this->size();
17433    if (__len > this->capacity() || _M_rep()->_M_is_shared())
17434      this->reserve(__len);
17435    _M_assign(_M_data() + this->size(), __n, __c);
17436    _M_rep()->_M_set_length_and_sharable(__len);
17437  }
17438       return *this;
17439     }
17440
17441   template<typename _CharT, typename _Traits, typename _Alloc>
17442     basic_string<_CharT, _Traits, _Alloc>&
17443     basic_string<_CharT, _Traits, _Alloc>::
17444     append(const _CharT* __s, size_type __n)
17445     {
17446       ;
17447       if (__n)
17448  {
17449    _M_check_length(size_type(0), __n, "basic_string::append");
17450    const size_type __len = __n + this->size();
17451    if (__len > this->capacity() || _M_rep()->_M_is_shared())
17452      {
17453        if (_M_disjunct(__s))
17454   this->reserve(__len);
17455        else
17456   {
17457     const size_type __off = __s - _M_data();
17458     this->reserve(__len);
17459     __s = _M_data() + __off;
17460   }
17461      }
17462    _M_copy(_M_data() + this->size(), __s, __n);
17463    _M_rep()->_M_set_length_and_sharable(__len);
17464  }
17465       return *this;
17466     }
17467
17468   template<typename _CharT, typename _Traits, typename _Alloc>
17469     basic_string<_CharT, _Traits, _Alloc>&
17470     basic_string<_CharT, _Traits, _Alloc>::
17471     append(const basic_string& __str)
17472     {
17473       const size_type __size = __str.size();
17474       if (__size)
17475  {
17476    const size_type __len = __size + this->size();
17477    if (__len > this->capacity() || _M_rep()->_M_is_shared())
17478      this->reserve(__len);
17479    _M_copy(_M_data() + this->size(), __str._M_data(), __size);
17480    _M_rep()->_M_set_length_and_sharable(__len);
17481  }
17482       return *this;
17483     }
17484
17485   template<typename _CharT, typename _Traits, typename _Alloc>
17486     basic_string<_CharT, _Traits, _Alloc>&
17487     basic_string<_CharT, _Traits, _Alloc>::
17488     append(const basic_string& __str, size_type __pos, size_type __n)
17489     {
17490       __str._M_check(__pos, "basic_string::append");
17491       __n = __str._M_limit(__pos, __n);
17492       if (__n)
17493  {
17494    const size_type __len = __n + this->size();
17495    if (__len > this->capacity() || _M_rep()->_M_is_shared())
17496      this->reserve(__len);
17497    _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
17498    _M_rep()->_M_set_length_and_sharable(__len);
17499  }
17500       return *this;
17501     }
17502
17503    template<typename _CharT, typename _Traits, typename _Alloc>
17504      basic_string<_CharT, _Traits, _Alloc>&
17505      basic_string<_CharT, _Traits, _Alloc>::
17506      insert(size_type __pos, const _CharT* __s, size_type __n)
17507      {
17508        ;
17509        _M_check(__pos, "basic_string::insert");
17510        _M_check_length(size_type(0), __n, "basic_string::insert");
17511        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
17512          return _M_replace_safe(__pos, size_type(0), __s, __n);
17513        else
17514          {
17515
17516            const size_type __off = __s - _M_data();
17517            _M_mutate(__pos, 0, __n);
17518            __s = _M_data() + __off;
17519            _CharT* __p = _M_data() + __pos;
17520            if (__s + __n <= __p)
17521              _M_copy(__p, __s, __n);
17522            else if (__s >= __p)
17523              _M_copy(__p, __s + __n, __n);
17524            else
17525              {
17526         const size_type __nleft = __p - __s;
17527                _M_copy(__p, __s, __nleft);
17528                _M_copy(__p + __nleft, __p + __n, __n - __nleft);
17529              }
17530            return *this;
17531          }
17532      }
17533
17534    template<typename _CharT, typename _Traits, typename _Alloc>
17535      basic_string<_CharT, _Traits, _Alloc>&
17536      basic_string<_CharT, _Traits, _Alloc>::
17537      replace(size_type __pos, size_type __n1, const _CharT* __s,
17538       size_type __n2)
17539      {
17540        ;
17541        _M_check(__pos, "basic_string::replace");
17542        __n1 = _M_limit(__pos, __n1);
17543        _M_check_length(__n1, __n2, "basic_string::replace");
17544        bool __left;
17545        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
17546          return _M_replace_safe(__pos, __n1, __s, __n2);
17547        else if ((__left = __s + __n2 <= _M_data() + __pos)
17548   || _M_data() + __pos + __n1 <= __s)
17549   {
17550
17551     size_type __off = __s - _M_data();
17552     __left ? __off : (__off += __n2 - __n1);
17553     _M_mutate(__pos, __n1, __n2);
17554     _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
17555     return *this;
17556   }
17557        else
17558   {
17559
17560     const basic_string __tmp(__s, __n2);
17561     return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
17562   }
17563      }
17564
17565   template<typename _CharT, typename _Traits, typename _Alloc>
17566     void
17567     basic_string<_CharT, _Traits, _Alloc>::_Rep::
17568     _M_destroy(const _Alloc& __a) throw ()
17569     {
17570       const size_type __size = sizeof(_Rep_base) +
17571                         (this->_M_capacity + 1) * sizeof(_CharT);
17572       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
17573     }
17574
17575   template<typename _CharT, typename _Traits, typename _Alloc>
17576     void
17577     basic_string<_CharT, _Traits, _Alloc>::
17578     _M_leak_hard()
17579     {
17580
17581       if (_M_rep() == &_S_empty_rep())
17582  return;
17583
17584       if (_M_rep()->_M_is_shared())
17585  _M_mutate(0, 0, 0);
17586       _M_rep()->_M_set_leaked();
17587     }
17588
17589   template<typename _CharT, typename _Traits, typename _Alloc>
17590     void
17591     basic_string<_CharT, _Traits, _Alloc>::
17592     _M_mutate(size_type __pos, size_type __len1, size_type __len2)
17593     {
17594       const size_type __old_size = this->size();
17595       const size_type __new_size = __old_size + __len2 - __len1;
17596       const size_type __how_much = __old_size - __pos - __len1;
17597
17598       if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
17599  {
17600
17601    const allocator_type __a = get_allocator();
17602    _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
17603
17604    if (__pos)
17605      _M_copy(__r->_M_refdata(), _M_data(), __pos);
17606    if (__how_much)
17607      _M_copy(__r->_M_refdata() + __pos + __len2,
17608       _M_data() + __pos + __len1, __how_much);
17609
17610    _M_rep()->_M_dispose(__a);
17611    _M_data(__r->_M_refdata());
17612  }
17613       else if (__how_much && __len1 != __len2)
17614  {
17615
17616    _M_move(_M_data() + __pos + __len2,
17617     _M_data() + __pos + __len1, __how_much);
17618  }
17619       _M_rep()->_M_set_length_and_sharable(__new_size);
17620     }
17621
17622   template<typename _CharT, typename _Traits, typename _Alloc>
17623     void
17624     basic_string<_CharT, _Traits, _Alloc>::
17625     reserve(size_type __res)
17626     {
17627       if (__res != this->capacity() || _M_rep()->_M_is_shared())
17628         {
17629
17630    if (__res < this->size())
17631      __res = this->size();
17632    const allocator_type __a = get_allocator();
17633    _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
17634    _M_rep()->_M_dispose(__a);
17635    _M_data(__tmp);
17636         }
17637     }
17638
17639   template<typename _CharT, typename _Traits, typename _Alloc>
17640     void
17641     basic_string<_CharT, _Traits, _Alloc>::
17642     swap(basic_string& __s)
17643     {
17644       if (_M_rep()->_M_is_leaked())
17645  _M_rep()->_M_set_sharable();
17646       if (__s._M_rep()->_M_is_leaked())
17647  __s._M_rep()->_M_set_sharable();
17648       if (this->get_allocator() == __s.get_allocator())
17649  {
17650    _CharT* __tmp = _M_data();
17651    _M_data(__s._M_data());
17652    __s._M_data(__tmp);
17653  }
17654
17655       else
17656  {
17657    const basic_string __tmp1(_M_ibegin(), _M_iend(),
17658         __s.get_allocator());
17659    const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
17660         this->get_allocator());
17661    *this = __tmp2;
17662    __s = __tmp1;
17663  }
17664     }
17665
17666   template<typename _CharT, typename _Traits, typename _Alloc>
17667     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
17668     basic_string<_CharT, _Traits, _Alloc>::_Rep::
17669     _S_create(size_type __capacity, size_type __old_capacity,
17670        const _Alloc& __alloc)
17671     {
17672
17673
17674       if (__capacity > _S_max_size)
17675  __throw_length_error(("basic_string::_S_create"));
17676 # 558 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.tcc" 3
17677       const size_type __pagesize = 4096;
17678       const size_type __malloc_header_size = 4 * sizeof(void*);
17679
17680
17681
17682
17683
17684
17685
17686       if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
17687  __capacity = 2 * __old_capacity;
17688
17689
17690
17691
17692       size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
17693
17694       const size_type __adj_size = __size + __malloc_header_size;
17695       if (__adj_size > __pagesize && __capacity > __old_capacity)
17696  {
17697    const size_type __extra = __pagesize - __adj_size % __pagesize;
17698    __capacity += __extra / sizeof(_CharT);
17699
17700    if (__capacity > _S_max_size)
17701      __capacity = _S_max_size;
17702    __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
17703  }
17704
17705
17706
17707       void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
17708       _Rep *__p = new (__place) _Rep;
17709       __p->_M_capacity = __capacity;
17710
17711
17712
17713
17714
17715
17716
17717       __p->_M_set_sharable();
17718       return __p;
17719     }
17720
17721   template<typename _CharT, typename _Traits, typename _Alloc>
17722     _CharT*
17723     basic_string<_CharT, _Traits, _Alloc>::_Rep::
17724     _M_clone(const _Alloc& __alloc, size_type __res)
17725     {
17726
17727       const size_type __requested_cap = this->_M_length + __res;
17728       _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
17729       __alloc);
17730       if (this->_M_length)
17731  _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
17732
17733       __r->_M_set_length_and_sharable(this->_M_length);
17734       return __r->_M_refdata();
17735     }
17736
17737   template<typename _CharT, typename _Traits, typename _Alloc>
17738     void
17739     basic_string<_CharT, _Traits, _Alloc>::
17740     resize(size_type __n, _CharT __c)
17741     {
17742       const size_type __size = this->size();
17743       _M_check_length(__size, __n, "basic_string::resize");
17744       if (__size < __n)
17745  this->append(__n - __size, __c);
17746       else if (__n < __size)
17747  this->erase(__n);
17748
17749     }
17750
17751   template<typename _CharT, typename _Traits, typename _Alloc>
17752     template<typename _InputIterator>
17753       basic_string<_CharT, _Traits, _Alloc>&
17754       basic_string<_CharT, _Traits, _Alloc>::
17755       _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
17756      _InputIterator __k2, __false_type)
17757       {
17758  const basic_string __s(__k1, __k2);
17759  const size_type __n1 = __i2 - __i1;
17760  _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
17761  return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
17762           __s.size());
17763       }
17764
17765   template<typename _CharT, typename _Traits, typename _Alloc>
17766     basic_string<_CharT, _Traits, _Alloc>&
17767     basic_string<_CharT, _Traits, _Alloc>::
17768     _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
17769      _CharT __c)
17770     {
17771       _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
17772       _M_mutate(__pos1, __n1, __n2);
17773       if (__n2)
17774  _M_assign(_M_data() + __pos1, __n2, __c);
17775       return *this;
17776     }
17777
17778   template<typename _CharT, typename _Traits, typename _Alloc>
17779     basic_string<_CharT, _Traits, _Alloc>&
17780     basic_string<_CharT, _Traits, _Alloc>::
17781     _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
17782       size_type __n2)
17783     {
17784       _M_mutate(__pos1, __n1, __n2);
17785       if (__n2)
17786  _M_copy(_M_data() + __pos1, __s, __n2);
17787       return *this;
17788     }
17789
17790   template<typename _CharT, typename _Traits, typename _Alloc>
17791     basic_string<_CharT, _Traits, _Alloc>
17792     operator+(const _CharT* __lhs,
17793        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
17794     {
17795       ;
17796       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
17797       typedef typename __string_type::size_type __size_type;
17798       const __size_type __len = _Traits::length(__lhs);
17799       __string_type __str;
17800       __str.reserve(__len + __rhs.size());
17801       __str.append(__lhs, __len);
17802       __str.append(__rhs);
17803       return __str;
17804     }
17805
17806   template<typename _CharT, typename _Traits, typename _Alloc>
17807     basic_string<_CharT, _Traits, _Alloc>
17808     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
17809     {
17810       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
17811       typedef typename __string_type::size_type __size_type;
17812       __string_type __str;
17813       const __size_type __len = __rhs.size();
17814       __str.reserve(__len + 1);
17815       __str.append(__size_type(1), __lhs);
17816       __str.append(__rhs);
17817       return __str;
17818     }
17819
17820   template<typename _CharT, typename _Traits, typename _Alloc>
17821     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17822     basic_string<_CharT, _Traits, _Alloc>::
17823     copy(_CharT* __s, size_type __n, size_type __pos) const
17824     {
17825       _M_check(__pos, "basic_string::copy");
17826       __n = _M_limit(__pos, __n);
17827       ;
17828       if (__n)
17829  _M_copy(__s, _M_data() + __pos, __n);
17830
17831       return __n;
17832     }
17833
17834   template<typename _CharT, typename _Traits, typename _Alloc>
17835     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17836     basic_string<_CharT, _Traits, _Alloc>::
17837     find(const _CharT* __s, size_type __pos, size_type __n) const
17838     {
17839       ;
17840       size_type __ret = npos;
17841       const size_type __size = this->size();
17842       if (__pos + __n <= __size)
17843  {
17844    const _CharT* __data = _M_data();
17845    const _CharT* __p = std::search(__data + __pos, __data + __size,
17846        __s, __s + __n, traits_type::eq);
17847    if (__p != __data + __size || __n == 0)
17848      __ret = __p - __data;
17849  }
17850       return __ret;
17851     }
17852
17853   template<typename _CharT, typename _Traits, typename _Alloc>
17854     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17855     basic_string<_CharT, _Traits, _Alloc>::
17856     find(_CharT __c, size_type __pos) const
17857     {
17858       size_type __ret = npos;
17859       const size_type __size = this->size();
17860       if (__pos < __size)
17861  {
17862    const _CharT* __data = _M_data();
17863    const size_type __n = __size - __pos;
17864    const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
17865    if (__p)
17866      __ret = __p - __data;
17867  }
17868       return __ret;
17869     }
17870
17871   template<typename _CharT, typename _Traits, typename _Alloc>
17872     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17873     basic_string<_CharT, _Traits, _Alloc>::
17874     rfind(const _CharT* __s, size_type __pos, size_type __n) const
17875     {
17876       ;
17877       const size_type __size = this->size();
17878       if (__n <= __size)
17879  {
17880    __pos = std::min(size_type(__size - __n), __pos);
17881    const _CharT* __data = _M_data();
17882    do
17883      {
17884        if (traits_type::compare(__data + __pos, __s, __n) == 0)
17885   return __pos;
17886      }
17887    while (__pos-- > 0);
17888  }
17889       return npos;
17890     }
17891
17892   template<typename _CharT, typename _Traits, typename _Alloc>
17893     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17894     basic_string<_CharT, _Traits, _Alloc>::
17895     rfind(_CharT __c, size_type __pos) const
17896     {
17897       size_type __size = this->size();
17898       if (__size)
17899  {
17900    if (--__size > __pos)
17901      __size = __pos;
17902    for (++__size; __size-- > 0; )
17903      if (traits_type::eq(_M_data()[__size], __c))
17904        return __size;
17905  }
17906       return npos;
17907     }
17908
17909   template<typename _CharT, typename _Traits, typename _Alloc>
17910     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17911     basic_string<_CharT, _Traits, _Alloc>::
17912     find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
17913     {
17914       ;
17915       for (; __n && __pos < this->size(); ++__pos)
17916  {
17917    const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
17918    if (__p)
17919      return __pos;
17920  }
17921       return npos;
17922     }
17923
17924   template<typename _CharT, typename _Traits, typename _Alloc>
17925     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17926     basic_string<_CharT, _Traits, _Alloc>::
17927     find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
17928     {
17929       ;
17930       size_type __size = this->size();
17931       if (__size && __n)
17932  {
17933    if (--__size > __pos)
17934      __size = __pos;
17935    do
17936      {
17937        if (traits_type::find(__s, __n, _M_data()[__size]))
17938   return __size;
17939      }
17940    while (__size-- != 0);
17941  }
17942       return npos;
17943     }
17944
17945   template<typename _CharT, typename _Traits, typename _Alloc>
17946     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17947     basic_string<_CharT, _Traits, _Alloc>::
17948     find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
17949     {
17950       ;
17951       for (; __pos < this->size(); ++__pos)
17952  if (!traits_type::find(__s, __n, _M_data()[__pos]))
17953    return __pos;
17954       return npos;
17955     }
17956
17957   template<typename _CharT, typename _Traits, typename _Alloc>
17958     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17959     basic_string<_CharT, _Traits, _Alloc>::
17960     find_first_not_of(_CharT __c, size_type __pos) const
17961     {
17962       for (; __pos < this->size(); ++__pos)
17963  if (!traits_type::eq(_M_data()[__pos], __c))
17964    return __pos;
17965       return npos;
17966     }
17967
17968   template<typename _CharT, typename _Traits, typename _Alloc>
17969     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17970     basic_string<_CharT, _Traits, _Alloc>::
17971     find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
17972     {
17973       ;
17974       size_type __size = this->size();
17975       if (__size)
17976  {
17977    if (--__size > __pos)
17978      __size = __pos;
17979    do
17980      {
17981        if (!traits_type::find(__s, __n, _M_data()[__size]))
17982   return __size;
17983      }
17984    while (__size--);
17985  }
17986       return npos;
17987     }
17988
17989   template<typename _CharT, typename _Traits, typename _Alloc>
17990     typename basic_string<_CharT, _Traits, _Alloc>::size_type
17991     basic_string<_CharT, _Traits, _Alloc>::
17992     find_last_not_of(_CharT __c, size_type __pos) const
17993     {
17994       size_type __size = this->size();
17995       if (__size)
17996  {
17997    if (--__size > __pos)
17998      __size = __pos;
17999    do
18000      {
18001        if (!traits_type::eq(_M_data()[__size], __c))
18002   return __size;
18003      }
18004    while (__size--);
18005  }
18006       return npos;
18007     }
18008
18009   template<typename _CharT, typename _Traits, typename _Alloc>
18010     int
18011     basic_string<_CharT, _Traits, _Alloc>::
18012     compare(size_type __pos, size_type __n, const basic_string& __str) const
18013     {
18014       _M_check(__pos, "basic_string::compare");
18015       __n = _M_limit(__pos, __n);
18016       const size_type __osize = __str.size();
18017       const size_type __len = std::min(__n, __osize);
18018       int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
18019       if (!__r)
18020  __r = __n - __osize;
18021       return __r;
18022     }
18023
18024   template<typename _CharT, typename _Traits, typename _Alloc>
18025     int
18026     basic_string<_CharT, _Traits, _Alloc>::
18027     compare(size_type __pos1, size_type __n1, const basic_string& __str,
18028      size_type __pos2, size_type __n2) const
18029     {
18030       _M_check(__pos1, "basic_string::compare");
18031       __str._M_check(__pos2, "basic_string::compare");
18032       __n1 = _M_limit(__pos1, __n1);
18033       __n2 = __str._M_limit(__pos2, __n2);
18034       const size_type __len = std::min(__n1, __n2);
18035       int __r = traits_type::compare(_M_data() + __pos1,
18036          __str.data() + __pos2, __len);
18037       if (!__r)
18038  __r = __n1 - __n2;
18039       return __r;
18040     }
18041
18042   template<typename _CharT, typename _Traits, typename _Alloc>
18043     int
18044     basic_string<_CharT, _Traits, _Alloc>::
18045     compare(const _CharT* __s) const
18046     {
18047       ;
18048       const size_type __size = this->size();
18049       const size_type __osize = traits_type::length(__s);
18050       const size_type __len = std::min(__size, __osize);
18051       int __r = traits_type::compare(_M_data(), __s, __len);
18052       if (!__r)
18053  __r = __size - __osize;
18054       return __r;
18055     }
18056
18057   template<typename _CharT, typename _Traits, typename _Alloc>
18058     int
18059     basic_string <_CharT, _Traits, _Alloc>::
18060     compare(size_type __pos, size_type __n1, const _CharT* __s) const
18061     {
18062       ;
18063       _M_check(__pos, "basic_string::compare");
18064       __n1 = _M_limit(__pos, __n1);
18065       const size_type __osize = traits_type::length(__s);
18066       const size_type __len = std::min(__n1, __osize);
18067       int __r = traits_type::compare(_M_data() + __pos, __s, __len);
18068       if (!__r)
18069  __r = __n1 - __osize;
18070       return __r;
18071     }
18072
18073   template<typename _CharT, typename _Traits, typename _Alloc>
18074     int
18075     basic_string <_CharT, _Traits, _Alloc>::
18076     compare(size_type __pos, size_type __n1, const _CharT* __s,
18077      size_type __n2) const
18078     {
18079       ;
18080       _M_check(__pos, "basic_string::compare");
18081       __n1 = _M_limit(__pos, __n1);
18082       const size_type __len = std::min(__n1, __n2);
18083       int __r = traits_type::compare(_M_data() + __pos, __s, __len);
18084       if (!__r)
18085  __r = __n1 - __n2;
18086       return __r;
18087     }
18088
18089
18090
18091
18092
18093   extern template class basic_string<char>;
18094   extern template
18095     basic_istream<char>&
18096     operator>>(basic_istream<char>&, string&);
18097   extern template
18098     basic_ostream<char>&
18099     operator<<(basic_ostream<char>&, const string&);
18100   extern template
18101     basic_istream<char>&
18102     getline(basic_istream<char>&, string&, char);
18103   extern template
18104     basic_istream<char>&
18105     getline(basic_istream<char>&, string&);
18106 # 1004 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_string.tcc" 3
18107 }
18108 # 57 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/string" 2 3
18109 # 19 "./boost/format.hpp" 2
18110 # 1 "./boost/detail/workaround.hpp" 1
18111 # 41 "./boost/detail/workaround.hpp"
18112 # 1 "./boost/config.hpp" 1
18113 # 26 "./boost/config.hpp"
18114 # 1 "./boost/config/user.hpp" 1
18115 # 27 "./boost/config.hpp" 2
18116
18117
18118
18119
18120 # 1 "./boost/config/select_compiler_config.hpp" 1
18121 # 32 "./boost/config.hpp" 2
18122
18123
18124
18125 # 1 "./boost/config/compiler/gcc.hpp" 1
18126 # 36 "./boost/config.hpp" 2
18127
18128
18129
18130
18131 # 1 "./boost/config/select_stdlib_config.hpp" 1
18132 # 20 "./boost/config/select_stdlib_config.hpp"
18133 # 1 "./boost/config/no_tr1/utility.hpp" 1
18134 # 21 "./boost/config/no_tr1/utility.hpp"
18135 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/utility" 1 3
18136 # 63 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/utility" 3
18137        
18138 # 64 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/utility" 3
18139
18140
18141 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_relops.h" 1 3
18142 # 74 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_relops.h" 3
18143 namespace std
18144 {
18145   namespace rel_ops
18146   {
18147 # 90 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_relops.h" 3
18148     template <class _Tp>
18149       inline bool
18150       operator!=(const _Tp& __x, const _Tp& __y)
18151       { return !(__x == __y); }
18152 # 103 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_relops.h" 3
18153     template <class _Tp>
18154       inline bool
18155       operator>(const _Tp& __x, const _Tp& __y)
18156       { return __y < __x; }
18157 # 116 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_relops.h" 3
18158     template <class _Tp>
18159       inline bool
18160       operator<=(const _Tp& __x, const _Tp& __y)
18161       { return !(__y < __x); }
18162 # 129 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/stl_relops.h" 3
18163     template <class _Tp>
18164       inline bool
18165       operator>=(const _Tp& __x, const _Tp& __y)
18166       { return !(__x < __y); }
18167
18168   }
18169 }
18170 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/utility" 2 3
18171 # 22 "./boost/config/no_tr1/utility.hpp" 2
18172 # 21 "./boost/config/select_stdlib_config.hpp" 2
18173 # 41 "./boost/config.hpp" 2
18174
18175
18176
18177 # 1 "./boost/config/stdlib/libstdcpp3.hpp" 1
18178 # 45 "./boost/config.hpp" 2
18179
18180
18181
18182
18183 # 1 "./boost/config/select_platform_config.hpp" 1
18184 # 50 "./boost/config.hpp" 2
18185
18186
18187
18188 # 1 "./boost/config/platform/linux.hpp" 1
18189 # 70 "./boost/config/platform/linux.hpp"
18190 # 1 "./boost/config/posix_features.hpp" 1
18191 # 71 "./boost/config/platform/linux.hpp" 2
18192 # 54 "./boost/config.hpp" 2
18193
18194
18195
18196 # 1 "./boost/config/suffix.hpp" 1
18197 # 432 "./boost/config/suffix.hpp"
18198 namespace boost{
18199
18200    __extension__ typedef long long long_long_type;
18201    __extension__ typedef unsigned long long ulong_long_type;
18202
18203
18204
18205
18206 }
18207 # 58 "./boost/config.hpp" 2
18208 # 42 "./boost/detail/workaround.hpp" 2
18209 # 20 "./boost/format.hpp" 2
18210
18211
18212
18213 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 1 3
18214 # 41 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 3
18215        
18216 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 3
18217
18218 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/localefwd.h" 1 3
18219 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/localefwd.h" 3
18220        
18221 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/localefwd.h" 3
18222
18223
18224
18225
18226
18227
18228 namespace std
18229 {
18230
18231   class locale;
18232
18233
18234   template<typename _CharT>
18235     inline bool
18236     isspace(_CharT, const locale&);
18237
18238   template<typename _CharT>
18239     inline bool
18240     isprint(_CharT, const locale&);
18241
18242   template<typename _CharT>
18243     inline bool
18244     iscntrl(_CharT, const locale&);
18245
18246   template<typename _CharT>
18247     inline bool
18248     isupper(_CharT, const locale&);
18249
18250   template<typename _CharT>
18251     inline bool
18252     islower(_CharT, const locale&);
18253
18254   template<typename _CharT>
18255     inline bool
18256     isalpha(_CharT, const locale&);
18257
18258   template<typename _CharT>
18259     inline bool
18260     isdigit(_CharT, const locale&);
18261
18262   template<typename _CharT>
18263     inline bool
18264     ispunct(_CharT, const locale&);
18265
18266   template<typename _CharT>
18267     inline bool
18268     isxdigit(_CharT, const locale&);
18269
18270   template<typename _CharT>
18271     inline bool
18272     isalnum(_CharT, const locale&);
18273
18274   template<typename _CharT>
18275     inline bool
18276     isgraph(_CharT, const locale&);
18277
18278   template<typename _CharT>
18279     inline _CharT
18280     toupper(_CharT, const locale&);
18281
18282   template<typename _CharT>
18283     inline _CharT
18284     tolower(_CharT, const locale&);
18285
18286
18287   class ctype_base;
18288   template<typename _CharT>
18289     class ctype;
18290   template<> class ctype<char>;
18291
18292
18293
18294   template<typename _CharT>
18295     class ctype_byname;
18296
18297
18298   class codecvt_base;
18299   class __enc_traits;
18300   template<typename _InternT, typename _ExternT, typename _StateT>
18301     class codecvt;
18302   template<> class codecvt<char, char, mbstate_t>;
18303
18304
18305
18306   template<typename _InternT, typename _ExternT, typename _StateT>
18307     class codecvt_byname;
18308
18309
18310   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
18311     class num_get;
18312   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
18313     class num_put;
18314   template<typename _CharT> class numpunct;
18315   template<typename _CharT> class numpunct_byname;
18316
18317
18318   template<typename _CharT>
18319     class collate;
18320   template<typename _CharT> class
18321     collate_byname;
18322
18323
18324   class time_base;
18325   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
18326     class time_get;
18327   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
18328     class time_get_byname;
18329   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
18330     class time_put;
18331   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
18332     class time_put_byname;
18333
18334
18335   class money_base;
18336   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
18337     class money_get;
18338   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
18339     class money_put;
18340   template<typename _CharT, bool _Intl = false>
18341     class moneypunct;
18342   template<typename _CharT, bool _Intl = false>
18343     class moneypunct_byname;
18344
18345
18346   class messages_base;
18347   template<typename _CharT>
18348     class messages;
18349   template<typename _CharT>
18350     class messages_byname;
18351
18352   template<typename _Facet>
18353     bool
18354     has_facet(const locale& __loc) throw();
18355
18356   template<typename _Facet>
18357     const _Facet&
18358     use_facet(const locale& __loc);
18359
18360   template<typename _Facet>
18361     inline const _Facet&
18362     __check_facet(const _Facet* __f)
18363     {
18364       if (!__f)
18365  __throw_bad_cast();
18366       return *__f;
18367     }
18368 }
18369 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 2 3
18370 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 1 3
18371 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18372        
18373 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18374
18375
18376
18377
18378
18379
18380
18381 namespace std
18382 {
18383 # 67 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18384   class locale
18385   {
18386   public:
18387
18388
18389     typedef int category;
18390
18391
18392     class facet;
18393     class id;
18394     class _Impl;
18395
18396     friend class facet;
18397     friend class _Impl;
18398
18399     template<typename _Facet>
18400       friend bool
18401       has_facet(const locale&) throw();
18402
18403     template<typename _Facet>
18404       friend const _Facet&
18405       use_facet(const locale&);
18406
18407     template<typename _Cache>
18408       friend struct __use_cache;
18409 # 105 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18410     static const category none = 0;
18411     static const category ctype = 1L << 0;
18412     static const category numeric = 1L << 1;
18413     static const category collate = 1L << 2;
18414     static const category time = 1L << 3;
18415     static const category monetary = 1L << 4;
18416     static const category messages = 1L << 5;
18417     static const category all = (ctype | numeric | collate |
18418         time | monetary | messages);
18419 # 124 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18420     locale() throw();
18421 # 133 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18422     locale(const locale& __other) throw();
18423 # 143 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18424     explicit
18425     locale(const char* __s);
18426 # 158 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18427     locale(const locale& __base, const char* __s, category __cat);
18428 # 171 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18429     locale(const locale& __base, const locale& __add, category __cat);
18430 # 183 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18431     template<typename _Facet>
18432       locale(const locale& __other, _Facet* __f);
18433
18434
18435     ~locale() throw();
18436 # 197 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18437     const locale&
18438     operator=(const locale& __other) throw();
18439 # 212 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18440     template<typename _Facet>
18441       locale
18442       combine(const locale& __other) const;
18443
18444
18445
18446
18447
18448
18449     string
18450     name() const;
18451 # 231 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18452     bool
18453     operator==(const locale& __other) const throw ();
18454
18455
18456
18457
18458
18459
18460
18461     inline bool
18462     operator!=(const locale& __other) const throw ()
18463     { return !(this->operator==(__other)); }
18464 # 259 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18465     template<typename _Char, typename _Traits, typename _Alloc>
18466       bool
18467       operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
18468    const basic_string<_Char, _Traits, _Alloc>& __s2) const;
18469 # 275 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18470     static locale
18471     global(const locale&);
18472
18473
18474
18475
18476     static const locale&
18477     classic();
18478
18479   private:
18480
18481     _Impl* _M_impl;
18482
18483
18484     static _Impl* _S_classic;
18485
18486
18487     static _Impl* _S_global;
18488
18489
18490
18491
18492
18493     static const char* const* const _S_categories;
18494 # 310 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18495     enum { _S_categories_size = 6 + 0 };
18496
18497
18498     static __gthread_once_t _S_once;
18499
18500
18501     explicit
18502     locale(_Impl*) throw();
18503
18504     static void
18505     _S_initialize();
18506
18507     static void
18508     _S_initialize_once();
18509
18510     static category
18511     _S_normalize_category(category);
18512
18513     void
18514     _M_coalesce(const locale& __base, const locale& __add, category __cat);
18515   };
18516 # 343 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18517   class locale::facet
18518   {
18519   private:
18520     friend class locale;
18521     friend class locale::_Impl;
18522
18523     mutable _Atomic_word _M_refcount;
18524
18525
18526     static __c_locale _S_c_locale;
18527
18528
18529     static const char _S_c_name[2];
18530
18531
18532     static __gthread_once_t _S_once;
18533
18534
18535     static void
18536     _S_initialize_once();
18537
18538   protected:
18539 # 374 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18540     explicit
18541     facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0)
18542     { }
18543
18544
18545     virtual
18546     ~facet();
18547
18548     static void
18549     _S_create_c_locale(__c_locale& __cloc, const char* __s,
18550          __c_locale __old = 0);
18551
18552     static __c_locale
18553     _S_clone_c_locale(__c_locale& __cloc);
18554
18555     static void
18556     _S_destroy_c_locale(__c_locale& __cloc);
18557
18558
18559
18560     static __c_locale
18561     _S_get_c_locale();
18562
18563     static const char*
18564     _S_get_c_name();
18565
18566   private:
18567     inline void
18568     _M_add_reference() const throw()
18569     { __gnu_cxx::__atomic_add(&_M_refcount, 1); }
18570
18571     inline void
18572     _M_remove_reference() const throw()
18573     {
18574       if (__gnu_cxx::__exchange_and_add(&_M_refcount, -1) == 1)
18575  {
18576    try
18577      { delete this; }
18578    catch (...)
18579      { }
18580  }
18581     }
18582
18583     facet(const facet&);
18584
18585     facet&
18586     operator=(const facet&);
18587   };
18588 # 434 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_classes.h" 3
18589   class locale::id
18590   {
18591   private:
18592     friend class locale;
18593     friend class locale::_Impl;
18594
18595     template<typename _Facet>
18596       friend const _Facet&
18597       use_facet(const locale&);
18598
18599     template<typename _Facet>
18600       friend bool
18601       has_facet(const locale&) throw ();
18602
18603
18604
18605
18606     mutable size_t _M_index;
18607
18608
18609     static _Atomic_word _S_refcount;
18610
18611     void
18612     operator=(const id&);
18613
18614     id(const id&);
18615
18616   public:
18617
18618
18619
18620     id() { }
18621
18622     size_t
18623     _M_id() const;
18624   };
18625
18626
18627
18628   class locale::_Impl
18629   {
18630   public:
18631
18632     friend class locale;
18633     friend class locale::facet;
18634
18635     template<typename _Facet>
18636       friend bool
18637       has_facet(const locale&) throw();
18638
18639     template<typename _Facet>
18640       friend const _Facet&
18641       use_facet(const locale&);
18642
18643     template<typename _Cache>
18644       friend struct __use_cache;
18645
18646   private:
18647
18648     _Atomic_word _M_refcount;
18649     const facet** _M_facets;
18650     size_t _M_facets_size;
18651     const facet** _M_caches;
18652     char** _M_names;
18653     static const locale::id* const _S_id_ctype[];
18654     static const locale::id* const _S_id_numeric[];
18655     static const locale::id* const _S_id_collate[];
18656     static const locale::id* const _S_id_time[];
18657     static const locale::id* const _S_id_monetary[];
18658     static const locale::id* const _S_id_messages[];
18659     static const locale::id* const* const _S_facet_categories[];
18660
18661     inline void
18662     _M_add_reference() throw()
18663     { __gnu_cxx::__atomic_add(&_M_refcount, 1); }
18664
18665     inline void
18666     _M_remove_reference() throw()
18667     {
18668       if (__gnu_cxx::__exchange_and_add(&_M_refcount, -1) == 1)
18669  {
18670    try
18671      { delete this; }
18672    catch(...)
18673      { }
18674  }
18675     }
18676
18677     _Impl(const _Impl&, size_t);
18678     _Impl(const char*, size_t);
18679     _Impl(size_t) throw();
18680
18681    ~_Impl() throw();
18682
18683     _Impl(const _Impl&);
18684
18685     void
18686     operator=(const _Impl&);
18687
18688     inline bool
18689     _M_check_same_name()
18690     {
18691       bool __ret = true;
18692       if (_M_names[1])
18693
18694  for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i)
18695    __ret = std::strcmp(_M_names[__i], _M_names[__i + 1]) == 0;
18696       return __ret;
18697     }
18698
18699     void
18700     _M_replace_categories(const _Impl*, category);
18701
18702     void
18703     _M_replace_category(const _Impl*, const locale::id* const*);
18704
18705     void
18706     _M_replace_facet(const _Impl*, const locale::id*);
18707
18708     void
18709     _M_install_facet(const locale::id*, const facet*);
18710
18711     template<typename _Facet>
18712       inline void
18713       _M_init_facet(_Facet* __facet)
18714       { _M_install_facet(&_Facet::id, __facet); }
18715
18716     void
18717     _M_install_cache(const facet*, size_t);
18718   };
18719
18720   template<typename _Facet>
18721     locale::locale(const locale& __other, _Facet* __f)
18722     {
18723       _M_impl = new _Impl(*__other._M_impl, 1);
18724
18725       try
18726  { _M_impl->_M_install_facet(&_Facet::id, __f); }
18727       catch(...)
18728  {
18729    _M_impl->_M_remove_reference();
18730    throw;
18731  }
18732       delete [] _M_impl->_M_names[0];
18733       _M_impl->_M_names[0] = 0;
18734     }
18735 }
18736 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 2 3
18737 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 1 3
18738 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
18739        
18740 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
18741
18742
18743 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwctype" 1 3
18744 # 48 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwctype" 3
18745        
18746 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/cwctype" 3
18747 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
18748
18749 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 1 3
18750 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
18751        
18752 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
18753
18754
18755
18756
18757
18758 namespace std
18759 {
18760
18761
18762
18763
18764   enum _Ios_Fmtflags
18765     {
18766       _S_boolalpha = 1L << 0,
18767       _S_dec = 1L << 1,
18768       _S_fixed = 1L << 2,
18769       _S_hex = 1L << 3,
18770       _S_internal = 1L << 4,
18771       _S_left = 1L << 5,
18772       _S_oct = 1L << 6,
18773       _S_right = 1L << 7,
18774       _S_scientific = 1L << 8,
18775       _S_showbase = 1L << 9,
18776       _S_showpoint = 1L << 10,
18777       _S_showpos = 1L << 11,
18778       _S_skipws = 1L << 12,
18779       _S_unitbuf = 1L << 13,
18780       _S_uppercase = 1L << 14,
18781       _S_adjustfield = _S_left | _S_right | _S_internal,
18782       _S_basefield = _S_dec | _S_oct | _S_hex,
18783       _S_floatfield = _S_scientific | _S_fixed,
18784       _S_ios_fmtflags_end = 1L << 16
18785     };
18786
18787   inline _Ios_Fmtflags
18788   operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
18789   { return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); }
18790
18791   inline _Ios_Fmtflags
18792   operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
18793   { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); }
18794
18795   inline _Ios_Fmtflags
18796   operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
18797   { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); }
18798
18799   inline _Ios_Fmtflags&
18800   operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
18801   { return __a = __a | __b; }
18802
18803   inline _Ios_Fmtflags&
18804   operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
18805   { return __a = __a & __b; }
18806
18807   inline _Ios_Fmtflags&
18808   operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
18809   { return __a = __a ^ __b; }
18810
18811   inline _Ios_Fmtflags
18812   operator~(_Ios_Fmtflags __a)
18813   { return _Ios_Fmtflags(~static_cast<int>(__a)); }
18814
18815
18816   enum _Ios_Openmode
18817     {
18818       _S_app = 1L << 0,
18819       _S_ate = 1L << 1,
18820       _S_bin = 1L << 2,
18821       _S_in = 1L << 3,
18822       _S_out = 1L << 4,
18823       _S_trunc = 1L << 5,
18824       _S_ios_openmode_end = 1L << 16
18825     };
18826
18827   inline _Ios_Openmode
18828   operator&(_Ios_Openmode __a, _Ios_Openmode __b)
18829   { return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); }
18830
18831   inline _Ios_Openmode
18832   operator|(_Ios_Openmode __a, _Ios_Openmode __b)
18833   { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); }
18834
18835   inline _Ios_Openmode
18836   operator^(_Ios_Openmode __a, _Ios_Openmode __b)
18837   { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); }
18838
18839   inline _Ios_Openmode&
18840   operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
18841   { return __a = __a | __b; }
18842
18843   inline _Ios_Openmode&
18844   operator&=(_Ios_Openmode& __a, _Ios_Openmode __b)
18845   { return __a = __a & __b; }
18846
18847   inline _Ios_Openmode&
18848   operator^=(_Ios_Openmode& __a, _Ios_Openmode __b)
18849   { return __a = __a ^ __b; }
18850
18851   inline _Ios_Openmode
18852   operator~(_Ios_Openmode __a)
18853   { return _Ios_Openmode(~static_cast<int>(__a)); }
18854
18855
18856   enum _Ios_Iostate
18857     {
18858       _S_goodbit = 0,
18859       _S_badbit = 1L << 0,
18860       _S_eofbit = 1L << 1,
18861       _S_failbit = 1L << 2,
18862       _S_ios_iostate_end = 1L << 16
18863     };
18864
18865   inline _Ios_Iostate
18866   operator&(_Ios_Iostate __a, _Ios_Iostate __b)
18867   { return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }
18868
18869   inline _Ios_Iostate
18870   operator|(_Ios_Iostate __a, _Ios_Iostate __b)
18871   { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }
18872
18873   inline _Ios_Iostate
18874   operator^(_Ios_Iostate __a, _Ios_Iostate __b)
18875   { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }
18876
18877   inline _Ios_Iostate&
18878   operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
18879   { return __a = __a | __b; }
18880
18881   inline _Ios_Iostate&
18882   operator&=(_Ios_Iostate& __a, _Ios_Iostate __b)
18883   { return __a = __a & __b; }
18884
18885   inline _Ios_Iostate&
18886   operator^=(_Ios_Iostate& __a, _Ios_Iostate __b)
18887   { return __a = __a ^ __b; }
18888
18889   inline _Ios_Iostate
18890   operator~(_Ios_Iostate __a)
18891   { return _Ios_Iostate(~static_cast<int>(__a)); }
18892
18893   enum _Ios_Seekdir
18894     {
18895       _S_beg = 0,
18896       _S_cur = 1,
18897       _S_end = 2,
18898       _S_ios_seekdir_end = 1L << 16
18899     };
18900 # 201 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
18901   class ios_base
18902   {
18903   public:
18904
18905
18906
18907     class failure : public exception
18908     {
18909     public:
18910
18911
18912       explicit
18913       failure(const string& __str) throw();
18914
18915
18916
18917       virtual
18918       ~failure() throw();
18919
18920       virtual const char*
18921       what() const throw();
18922
18923     private:
18924       string _M_msg;
18925     };
18926 # 253 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
18927     typedef _Ios_Fmtflags fmtflags;
18928
18929
18930     static const fmtflags boolalpha = _S_boolalpha;
18931
18932
18933     static const fmtflags dec = _S_dec;
18934
18935
18936     static const fmtflags fixed = _S_fixed;
18937
18938
18939     static const fmtflags hex = _S_hex;
18940
18941
18942
18943
18944     static const fmtflags internal = _S_internal;
18945
18946
18947
18948     static const fmtflags left = _S_left;
18949
18950
18951     static const fmtflags oct = _S_oct;
18952
18953
18954
18955     static const fmtflags right = _S_right;
18956
18957
18958     static const fmtflags scientific = _S_scientific;
18959
18960
18961
18962     static const fmtflags showbase = _S_showbase;
18963
18964
18965
18966     static const fmtflags showpoint = _S_showpoint;
18967
18968
18969     static const fmtflags showpos = _S_showpos;
18970
18971
18972     static const fmtflags skipws = _S_skipws;
18973
18974
18975     static const fmtflags unitbuf = _S_unitbuf;
18976
18977
18978
18979     static const fmtflags uppercase = _S_uppercase;
18980
18981
18982     static const fmtflags adjustfield = _S_adjustfield;
18983
18984
18985     static const fmtflags basefield = _S_basefield;
18986
18987
18988     static const fmtflags floatfield = _S_floatfield;
18989 # 328 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
18990     typedef _Ios_Iostate iostate;
18991
18992
18993
18994     static const iostate badbit = _S_badbit;
18995
18996
18997     static const iostate eofbit = _S_eofbit;
18998
18999
19000
19001
19002     static const iostate failbit = _S_failbit;
19003
19004
19005     static const iostate goodbit = _S_goodbit;
19006 # 359 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19007     typedef _Ios_Openmode openmode;
19008
19009
19010     static const openmode app = _S_app;
19011
19012
19013     static const openmode ate = _S_ate;
19014
19015
19016
19017
19018
19019     static const openmode binary = _S_bin;
19020
19021
19022     static const openmode in = _S_in;
19023
19024
19025     static const openmode out = _S_out;
19026
19027
19028     static const openmode trunc = _S_trunc;
19029 # 392 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19030     typedef _Ios_Seekdir seekdir;
19031
19032
19033     static const seekdir beg = _S_beg;
19034
19035
19036     static const seekdir cur = _S_cur;
19037
19038
19039     static const seekdir end = _S_end;
19040
19041
19042     typedef int io_state;
19043     typedef int open_mode;
19044     typedef int seek_dir;
19045
19046     typedef std::streampos streampos;
19047     typedef std::streamoff streamoff;
19048 # 418 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19049     enum event
19050     {
19051       erase_event,
19052       imbue_event,
19053       copyfmt_event
19054     };
19055 # 435 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19056     typedef void (*event_callback) (event, ios_base&, int);
19057 # 447 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19058     void
19059     register_callback(event_callback __fn, int __index);
19060
19061   protected:
19062
19063
19064
19065
19066
19067
19068     streamsize _M_precision;
19069     streamsize _M_width;
19070     fmtflags _M_flags;
19071     iostate _M_exception;
19072     iostate _M_streambuf_state;
19073
19074
19075
19076
19077     struct _Callback_list
19078     {
19079
19080       _Callback_list* _M_next;
19081       ios_base::event_callback _M_fn;
19082       int _M_index;
19083       _Atomic_word _M_refcount;
19084
19085       _Callback_list(ios_base::event_callback __fn, int __index,
19086        _Callback_list* __cb)
19087       : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }
19088
19089       void
19090       _M_add_reference() { __gnu_cxx::__atomic_add(&_M_refcount, 1); }
19091
19092
19093       int
19094       _M_remove_reference()
19095       { return __gnu_cxx::__exchange_and_add(&_M_refcount, -1); }
19096     };
19097
19098      _Callback_list* _M_callbacks;
19099
19100     void
19101     _M_call_callbacks(event __ev) throw();
19102
19103     void
19104     _M_dispose_callbacks(void);
19105
19106
19107     struct _Words
19108     {
19109       void* _M_pword;
19110       long _M_iword;
19111       _Words() : _M_pword(0), _M_iword(0) { }
19112     };
19113
19114
19115     _Words _M_word_zero;
19116
19117
19118
19119     enum { _S_local_word_size = 8 };
19120     _Words _M_local_word[_S_local_word_size];
19121
19122
19123     int _M_word_size;
19124     _Words* _M_word;
19125
19126     _Words&
19127     _M_grow_words(int __index, bool __iword);
19128
19129
19130     locale _M_ios_locale;
19131
19132     void
19133     _M_init();
19134
19135   public:
19136
19137
19138
19139
19140
19141     class Init
19142     {
19143       friend class ios_base;
19144     public:
19145       Init();
19146       ~Init();
19147
19148     private:
19149       static _Atomic_word _S_refcount;
19150       static bool _S_synced_with_stdio;
19151     };
19152
19153
19154
19155
19156
19157
19158     inline fmtflags
19159     flags() const { return _M_flags; }
19160 # 557 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19161     inline fmtflags
19162     flags(fmtflags __fmtfl)
19163     {
19164       fmtflags __old = _M_flags;
19165       _M_flags = __fmtfl;
19166       return __old;
19167     }
19168 # 573 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19169     inline fmtflags
19170     setf(fmtflags __fmtfl)
19171     {
19172       fmtflags __old = _M_flags;
19173       _M_flags |= __fmtfl;
19174       return __old;
19175     }
19176 # 590 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19177     inline fmtflags
19178     setf(fmtflags __fmtfl, fmtflags __mask)
19179     {
19180       fmtflags __old = _M_flags;
19181       _M_flags &= ~__mask;
19182       _M_flags |= (__fmtfl & __mask);
19183       return __old;
19184     }
19185
19186
19187
19188
19189
19190
19191
19192     inline void
19193     unsetf(fmtflags __mask) { _M_flags &= ~__mask; }
19194 # 617 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19195     inline streamsize
19196     precision() const { return _M_precision; }
19197
19198
19199
19200
19201
19202
19203     inline streamsize
19204     precision(streamsize __prec)
19205     {
19206       streamsize __old = _M_precision;
19207       _M_precision = __prec;
19208       return __old;
19209     }
19210
19211
19212
19213
19214
19215
19216
19217     inline streamsize
19218     width() const { return _M_width; }
19219
19220
19221
19222
19223
19224
19225     inline streamsize
19226     width(streamsize __wide)
19227     {
19228       streamsize __old = _M_width;
19229       _M_width = __wide;
19230       return __old;
19231     }
19232 # 666 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19233     static bool
19234     sync_with_stdio(bool __sync = true);
19235 # 678 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19236     locale
19237     imbue(const locale& __loc);
19238 # 689 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19239     inline locale
19240     getloc() const { return _M_ios_locale; }
19241 # 699 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19242     inline const locale&
19243     _M_getloc() const { return _M_ios_locale; }
19244 # 717 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19245     static int
19246     xalloc() throw();
19247 # 733 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19248     inline long&
19249     iword(int __ix)
19250     {
19251       _Words& __word = (__ix < _M_word_size)
19252    ? _M_word[__ix] : _M_grow_words(__ix, true);
19253       return __word._M_iword;
19254     }
19255 # 754 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19256     inline void*&
19257     pword(int __ix)
19258     {
19259       _Words& __word = (__ix < _M_word_size)
19260    ? _M_word[__ix] : _M_grow_words(__ix, false);
19261       return __word._M_pword;
19262     }
19263 # 771 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ios_base.h" 3
19264     virtual ~ios_base();
19265
19266   protected:
19267     ios_base();
19268
19269
19270
19271   private:
19272     ios_base(const ios_base&);
19273
19274     ios_base&
19275     operator=(const ios_base&);
19276   };
19277
19278
19279
19280   inline ios_base&
19281   boolalpha(ios_base& __base)
19282   {
19283     __base.setf(ios_base::boolalpha);
19284     return __base;
19285   }
19286
19287
19288   inline ios_base&
19289   noboolalpha(ios_base& __base)
19290   {
19291     __base.unsetf(ios_base::boolalpha);
19292     return __base;
19293   }
19294
19295
19296   inline ios_base&
19297   showbase(ios_base& __base)
19298   {
19299     __base.setf(ios_base::showbase);
19300     return __base;
19301   }
19302
19303
19304   inline ios_base&
19305   noshowbase(ios_base& __base)
19306   {
19307     __base.unsetf(ios_base::showbase);
19308     return __base;
19309   }
19310
19311
19312   inline ios_base&
19313   showpoint(ios_base& __base)
19314   {
19315     __base.setf(ios_base::showpoint);
19316     return __base;
19317   }
19318
19319
19320   inline ios_base&
19321   noshowpoint(ios_base& __base)
19322   {
19323     __base.unsetf(ios_base::showpoint);
19324     return __base;
19325   }
19326
19327
19328   inline ios_base&
19329   showpos(ios_base& __base)
19330   {
19331     __base.setf(ios_base::showpos);
19332     return __base;
19333   }
19334
19335
19336   inline ios_base&
19337   noshowpos(ios_base& __base)
19338   {
19339     __base.unsetf(ios_base::showpos);
19340     return __base;
19341   }
19342
19343
19344   inline ios_base&
19345   skipws(ios_base& __base)
19346   {
19347     __base.setf(ios_base::skipws);
19348     return __base;
19349   }
19350
19351
19352   inline ios_base&
19353   noskipws(ios_base& __base)
19354   {
19355     __base.unsetf(ios_base::skipws);
19356     return __base;
19357   }
19358
19359
19360   inline ios_base&
19361   uppercase(ios_base& __base)
19362   {
19363     __base.setf(ios_base::uppercase);
19364     return __base;
19365   }
19366
19367
19368   inline ios_base&
19369   nouppercase(ios_base& __base)
19370   {
19371     __base.unsetf(ios_base::uppercase);
19372     return __base;
19373   }
19374
19375
19376   inline ios_base&
19377   unitbuf(ios_base& __base)
19378   {
19379      __base.setf(ios_base::unitbuf);
19380      return __base;
19381   }
19382
19383
19384   inline ios_base&
19385   nounitbuf(ios_base& __base)
19386   {
19387      __base.unsetf(ios_base::unitbuf);
19388      return __base;
19389   }
19390
19391
19392
19393   inline ios_base&
19394   internal(ios_base& __base)
19395   {
19396      __base.setf(ios_base::internal, ios_base::adjustfield);
19397      return __base;
19398   }
19399
19400
19401   inline ios_base&
19402   left(ios_base& __base)
19403   {
19404     __base.setf(ios_base::left, ios_base::adjustfield);
19405     return __base;
19406   }
19407
19408
19409   inline ios_base&
19410   right(ios_base& __base)
19411   {
19412     __base.setf(ios_base::right, ios_base::adjustfield);
19413     return __base;
19414   }
19415
19416
19417
19418   inline ios_base&
19419   dec(ios_base& __base)
19420   {
19421     __base.setf(ios_base::dec, ios_base::basefield);
19422     return __base;
19423   }
19424
19425
19426   inline ios_base&
19427   hex(ios_base& __base)
19428   {
19429     __base.setf(ios_base::hex, ios_base::basefield);
19430     return __base;
19431   }
19432
19433
19434   inline ios_base&
19435   oct(ios_base& __base)
19436   {
19437     __base.setf(ios_base::oct, ios_base::basefield);
19438     return __base;
19439   }
19440
19441
19442
19443   inline ios_base&
19444   fixed(ios_base& __base)
19445   {
19446     __base.setf(ios_base::fixed, ios_base::floatfield);
19447     return __base;
19448   }
19449
19450
19451   inline ios_base&
19452   scientific(ios_base& __base)
19453   {
19454     __base.setf(ios_base::scientific, ios_base::floatfield);
19455     return __base;
19456   }
19457 }
19458 # 49 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
19459 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 1 3
19460 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19461        
19462 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19463
19464
19465
19466
19467
19468
19469 namespace std
19470 {
19471
19472
19473
19474
19475
19476   template<typename _CharT, typename _Traits>
19477     streamsize
19478     __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
19479         basic_streambuf<_CharT, _Traits>* __sbout);
19480 # 121 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19481   template<typename _CharT, typename _Traits>
19482     class basic_streambuf
19483     {
19484     public:
19485
19486
19487
19488
19489
19490
19491       typedef _CharT char_type;
19492       typedef _Traits traits_type;
19493       typedef typename traits_type::int_type int_type;
19494       typedef typename traits_type::pos_type pos_type;
19495       typedef typename traits_type::off_type off_type;
19496 # 144 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19497       typedef basic_streambuf<char_type, traits_type> __streambuf_type;
19498
19499
19500       friend class basic_ios<char_type, traits_type>;
19501       friend class basic_istream<char_type, traits_type>;
19502       friend class basic_ostream<char_type, traits_type>;
19503       friend class istreambuf_iterator<char_type, traits_type>;
19504       friend class ostreambuf_iterator<char_type, traits_type>;
19505
19506       friend streamsize
19507       __copy_streambufs<>(__streambuf_type* __sbin,
19508      __streambuf_type* __sbout);
19509
19510       template<typename _CharT2, typename _Traits2>
19511         friend basic_istream<_CharT2, _Traits2>&
19512         operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
19513
19514       template<typename _CharT2, typename _Traits2, typename _Alloc>
19515         friend basic_istream<_CharT2, _Traits2>&
19516         operator>>(basic_istream<_CharT2, _Traits2>&,
19517      basic_string<_CharT2, _Traits2, _Alloc>&);
19518
19519       template<typename _CharT2, typename _Traits2, typename _Alloc>
19520         friend basic_istream<_CharT2, _Traits2>&
19521         getline(basic_istream<_CharT2, _Traits2>&,
19522   basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2);
19523
19524     protected:
19525 # 182 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19526       char_type* _M_in_beg;
19527       char_type* _M_in_cur;
19528       char_type* _M_in_end;
19529       char_type* _M_out_beg;
19530       char_type* _M_out_cur;
19531       char_type* _M_out_end;
19532
19533
19534
19535
19536
19537
19538       locale _M_buf_locale;
19539
19540   public:
19541
19542       virtual
19543       ~basic_streambuf()
19544       { }
19545 # 210 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19546       locale
19547       pubimbue(const locale &__loc)
19548       {
19549  locale __tmp(this->getloc());
19550  this->imbue(__loc);
19551  _M_buf_locale = __loc;
19552  return __tmp;
19553       }
19554 # 227 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19555       locale
19556       getloc() const
19557       { return _M_buf_locale; }
19558 # 240 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19559       __streambuf_type*
19560       pubsetbuf(char_type* __s, streamsize __n)
19561       { return this->setbuf(__s, __n); }
19562
19563       pos_type
19564       pubseekoff(off_type __off, ios_base::seekdir __way,
19565    ios_base::openmode __mode = ios_base::in | ios_base::out)
19566       { return this->seekoff(__off, __way, __mode); }
19567
19568       pos_type
19569       pubseekpos(pos_type __sp,
19570    ios_base::openmode __mode = ios_base::in | ios_base::out)
19571       { return this->seekpos(__sp, __mode); }
19572
19573       int
19574       pubsync() { return this->sync(); }
19575 # 267 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19576       streamsize
19577       in_avail()
19578       {
19579  const streamsize __ret = this->egptr() - this->gptr();
19580  return __ret ? __ret : this->showmanyc();
19581       }
19582 # 281 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19583       int_type
19584       snextc()
19585       {
19586  int_type __ret = traits_type::eof();
19587  if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(),
19588              __ret), true))
19589    __ret = this->sgetc();
19590  return __ret;
19591       }
19592 # 299 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19593       int_type
19594       sbumpc()
19595       {
19596  int_type __ret;
19597  if (__builtin_expect(this->gptr() < this->egptr(), true))
19598    {
19599      __ret = traits_type::to_int_type(*this->gptr());
19600      this->gbump(1);
19601    }
19602  else
19603    __ret = this->uflow();
19604  return __ret;
19605       }
19606 # 321 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19607       int_type
19608       sgetc()
19609       {
19610  int_type __ret;
19611  if (__builtin_expect(this->gptr() < this->egptr(), true))
19612    __ret = traits_type::to_int_type(*this->gptr());
19613  else
19614    __ret = this->underflow();
19615  return __ret;
19616       }
19617 # 340 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19618       streamsize
19619       sgetn(char_type* __s, streamsize __n)
19620       { return this->xsgetn(__s, __n); }
19621 # 354 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19622       int_type
19623       sputbackc(char_type __c)
19624       {
19625  int_type __ret;
19626  const bool __testpos = this->eback() < this->gptr();
19627  if (__builtin_expect(!__testpos ||
19628         !traits_type::eq(__c, this->gptr()[-1]), false))
19629    __ret = this->pbackfail(traits_type::to_int_type(__c));
19630  else
19631    {
19632      this->gbump(-1);
19633      __ret = traits_type::to_int_type(*this->gptr());
19634    }
19635  return __ret;
19636       }
19637 # 379 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19638       int_type
19639       sungetc()
19640       {
19641  int_type __ret;
19642  if (__builtin_expect(this->eback() < this->gptr(), true))
19643    {
19644      this->gbump(-1);
19645      __ret = traits_type::to_int_type(*this->gptr());
19646    }
19647  else
19648    __ret = this->pbackfail();
19649  return __ret;
19650       }
19651 # 406 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19652       int_type
19653       sputc(char_type __c)
19654       {
19655  int_type __ret;
19656  if (__builtin_expect(this->pptr() < this->epptr(), true))
19657    {
19658      *this->pptr() = __c;
19659      this->pbump(1);
19660      __ret = traits_type::to_int_type(__c);
19661    }
19662  else
19663    __ret = this->overflow(traits_type::to_int_type(__c));
19664  return __ret;
19665       }
19666 # 432 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19667       streamsize
19668       sputn(const char_type* __s, streamsize __n)
19669       { return this->xsputn(__s, __n); }
19670
19671     protected:
19672 # 446 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19673       basic_streambuf()
19674       : _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
19675       _M_out_beg(0), _M_out_cur(0), _M_out_end(0),
19676       _M_buf_locale(locale())
19677       { }
19678 # 464 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19679       char_type*
19680       eback() const { return _M_in_beg; }
19681
19682       char_type*
19683       gptr() const { return _M_in_cur; }
19684
19685       char_type*
19686       egptr() const { return _M_in_end; }
19687 # 480 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19688       void
19689       gbump(int __n) { _M_in_cur += __n; }
19690 # 491 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19691       void
19692       setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)
19693       {
19694  _M_in_beg = __gbeg;
19695  _M_in_cur = __gnext;
19696  _M_in_end = __gend;
19697       }
19698 # 511 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19699       char_type*
19700       pbase() const { return _M_out_beg; }
19701
19702       char_type*
19703       pptr() const { return _M_out_cur; }
19704
19705       char_type*
19706       epptr() const { return _M_out_end; }
19707 # 527 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19708       void
19709       pbump(int __n) { _M_out_cur += __n; }
19710 # 537 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19711       void
19712       setp(char_type* __pbeg, char_type* __pend)
19713       {
19714  _M_out_beg = _M_out_cur = __pbeg;
19715  _M_out_end = __pend;
19716       }
19717 # 558 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19718       virtual void
19719       imbue(const locale&)
19720       { }
19721 # 573 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19722       virtual basic_streambuf<char_type,_Traits>*
19723       setbuf(char_type*, streamsize)
19724       { return this; }
19725 # 584 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19726       virtual pos_type
19727       seekoff(off_type, ios_base::seekdir,
19728        ios_base::openmode = ios_base::in | ios_base::out)
19729       { return pos_type(off_type(-1)); }
19730 # 596 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19731       virtual pos_type
19732       seekpos(pos_type,
19733        ios_base::openmode = ios_base::in | ios_base::out)
19734       { return pos_type(off_type(-1)); }
19735 # 609 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19736       virtual int
19737       sync() { return 0; }
19738 # 631 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19739       virtual streamsize
19740       showmanyc() { return 0; }
19741 # 647 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19742       virtual streamsize
19743       xsgetn(char_type* __s, streamsize __n);
19744 # 669 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19745       virtual int_type
19746       underflow()
19747       { return traits_type::eof(); }
19748 # 682 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19749       virtual int_type
19750       uflow()
19751       {
19752  int_type __ret = traits_type::eof();
19753  const bool __testeof = traits_type::eq_int_type(this->underflow(),
19754        __ret);
19755  if (!__testeof)
19756    {
19757      __ret = traits_type::to_int_type(*this->gptr());
19758      this->gbump(1);
19759    }
19760  return __ret;
19761       }
19762 # 706 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19763       virtual int_type
19764       pbackfail(int_type = traits_type::eof())
19765       { return traits_type::eof(); }
19766 # 724 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19767       virtual streamsize
19768       xsputn(const char_type* __s, streamsize __n);
19769 # 749 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19770       virtual int_type
19771       overflow(int_type = traits_type::eof())
19772       { return traits_type::eof(); }
19773 # 778 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 3
19774     private:
19775
19776
19777       basic_streambuf(const __streambuf_type& __sb)
19778       : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur),
19779       _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg),
19780       _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur),
19781       _M_buf_locale(__sb._M_buf_locale)
19782       { }
19783
19784       __streambuf_type&
19785       operator=(const __streambuf_type&) { return *this; };
19786     };
19787
19788
19789   template<>
19790     streamsize
19791     __copy_streambufs(basic_streambuf<char>* __sbin,
19792         basic_streambuf<char>* __sbout);
19793
19794
19795
19796
19797
19798
19799 }
19800
19801
19802 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf.tcc" 1 3
19803 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf.tcc" 3
19804        
19805 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf.tcc" 3
19806
19807 namespace std
19808 {
19809   template<typename _CharT, typename _Traits>
19810     streamsize
19811     basic_streambuf<_CharT, _Traits>::
19812     xsgetn(char_type* __s, streamsize __n)
19813     {
19814       streamsize __ret = 0;
19815       while (__ret < __n)
19816  {
19817    const streamsize __buf_len = this->egptr() - this->gptr();
19818    if (__buf_len)
19819      {
19820        const streamsize __remaining = __n - __ret;
19821        const streamsize __len = std::min(__buf_len, __remaining);
19822        traits_type::copy(__s, this->gptr(), __len);
19823        __ret += __len;
19824        __s += __len;
19825        this->gbump(__len);
19826      }
19827
19828    if (__ret < __n)
19829      {
19830        const int_type __c = this->uflow();
19831        if (!traits_type::eq_int_type(__c, traits_type::eof()))
19832   {
19833     traits_type::assign(*__s++, traits_type::to_char_type(__c));
19834     ++__ret;
19835   }
19836        else
19837   break;
19838      }
19839  }
19840       return __ret;
19841     }
19842
19843   template<typename _CharT, typename _Traits>
19844     streamsize
19845     basic_streambuf<_CharT, _Traits>::
19846     xsputn(const char_type* __s, streamsize __n)
19847     {
19848       streamsize __ret = 0;
19849       while (__ret < __n)
19850  {
19851    const streamsize __buf_len = this->epptr() - this->pptr();
19852    if (__buf_len)
19853      {
19854        const streamsize __remaining = __n - __ret;
19855        const streamsize __len = std::min(__buf_len, __remaining);
19856        traits_type::copy(this->pptr(), __s, __len);
19857        __ret += __len;
19858        __s += __len;
19859        this->pbump(__len);
19860      }
19861
19862    if (__ret < __n)
19863      {
19864        int_type __c = this->overflow(traits_type::to_int_type(*__s));
19865        if (!traits_type::eq_int_type(__c, traits_type::eof()))
19866   {
19867     ++__ret;
19868     ++__s;
19869   }
19870        else
19871   break;
19872      }
19873  }
19874       return __ret;
19875     }
19876
19877
19878
19879
19880   template<typename _CharT, typename _Traits>
19881     streamsize
19882     __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
19883         basic_streambuf<_CharT, _Traits>* __sbout)
19884     {
19885       streamsize __ret = 0;
19886       typename _Traits::int_type __c = __sbin->sgetc();
19887       while (!_Traits::eq_int_type(__c, _Traits::eof()))
19888  {
19889    __c = __sbout->sputc(_Traits::to_char_type(__c));
19890    if (_Traits::eq_int_type(__c, _Traits::eof()))
19891      break;
19892    ++__ret;
19893    __c = __sbin->snextc();
19894  }
19895       return __ret;
19896     }
19897
19898
19899
19900
19901
19902   extern template class basic_streambuf<char>;
19903   extern template
19904     streamsize
19905     __copy_streambufs(basic_streambuf<char>*, basic_streambuf<char>*);
19906 # 152 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf.tcc" 3
19907 }
19908 # 807 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/streambuf" 2 3
19909 # 50 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
19910
19911 namespace std
19912 {
19913 # 63 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
19914   template<typename _Tv>
19915     void
19916     __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err,
19917      const __c_locale& __cloc);
19918
19919
19920   template<>
19921     void
19922     __convert_to_v(const char*, float&, ios_base::iostate&,
19923      const __c_locale&);
19924
19925   template<>
19926     void
19927     __convert_to_v(const char*, double&, ios_base::iostate&,
19928      const __c_locale&);
19929
19930   template<>
19931     void
19932     __convert_to_v(const char*, long double&, ios_base::iostate&,
19933      const __c_locale&);
19934
19935
19936
19937   template<typename _CharT, typename _Traits>
19938     struct __pad
19939     {
19940       static void
19941       _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
19942       const _CharT* __olds, const streamsize __newlen,
19943       const streamsize __oldlen, const bool __num);
19944     };
19945
19946
19947
19948
19949
19950
19951   template<typename _CharT>
19952     _CharT*
19953     __add_grouping(_CharT* __s, _CharT __sep,
19954      const char* __gbeg, size_t __gsize,
19955      const _CharT* __first, const _CharT* __last);
19956
19957
19958
19959
19960   template<typename _CharT>
19961     inline
19962     ostreambuf_iterator<_CharT>
19963     __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len)
19964     {
19965       __s._M_put(__ws, __len);
19966       return __s;
19967     }
19968
19969
19970   template<typename _CharT, typename _OutIter>
19971     inline
19972     _OutIter
19973     __write(_OutIter __s, const _CharT* __ws, int __len)
19974     {
19975       for (int __j = 0; __j < __len; __j++, ++__s)
19976  *__s = __ws[__j];
19977       return __s;
19978     }
19979
19980
19981
19982
19983 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/ctype_base.h" 1 3
19984 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/ctype_base.h" 3
19985   struct ctype_base
19986   {
19987
19988
19989
19990     typedef const __ctype_touplow_t* __to_type;
19991
19992
19993
19994     typedef __ctype_mask_t mask;
19995     static const mask upper = _ISupper;
19996     static const mask lower = _ISlower;
19997     static const mask alpha = _ISalpha;
19998     static const mask digit = _ISdigit;
19999     static const mask xdigit = _ISxdigit;
20000     static const mask space = _ISspace;
20001     static const mask print = _ISprint;
20002     static const mask graph = _ISalpha | _ISdigit | _ISpunct;
20003     static const mask cntrl = _IScntrl;
20004     static const mask punct = _ISpunct;
20005     static const mask alnum = _ISalpha | _ISdigit;
20006   };
20007 # 133 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
20008 # 144 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20009   template<typename _CharT>
20010     class __ctype_abstract_base : public locale::facet, public ctype_base
20011     {
20012     public:
20013
20014
20015       typedef _CharT char_type;
20016 # 162 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20017       bool
20018       is(mask __m, char_type __c) const
20019       { return this->do_is(__m, __c); }
20020 # 179 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20021       const char_type*
20022       is(const char_type *__lo, const char_type *__hi, mask *__vec) const
20023       { return this->do_is(__lo, __hi, __vec); }
20024 # 195 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20025       const char_type*
20026       scan_is(mask __m, const char_type* __lo, const char_type* __hi) const
20027       { return this->do_scan_is(__m, __lo, __hi); }
20028 # 211 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20029       const char_type*
20030       scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
20031       { return this->do_scan_not(__m, __lo, __hi); }
20032 # 225 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20033       char_type
20034       toupper(char_type __c) const
20035       { return this->do_toupper(__c); }
20036 # 240 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20037       const char_type*
20038       toupper(char_type *__lo, const char_type* __hi) const
20039       { return this->do_toupper(__lo, __hi); }
20040 # 254 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20041       char_type
20042       tolower(char_type __c) const
20043       { return this->do_tolower(__c); }
20044 # 269 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20045       const char_type*
20046       tolower(char_type* __lo, const char_type* __hi) const
20047       { return this->do_tolower(__lo, __hi); }
20048 # 286 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20049       char_type
20050       widen(char __c) const
20051       { return this->do_widen(__c); }
20052 # 305 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20053       const char*
20054       widen(const char* __lo, const char* __hi, char_type* __to) const
20055       { return this->do_widen(__lo, __hi, __to); }
20056 # 324 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20057       char
20058       narrow(char_type __c, char __dfault) const
20059       { return this->do_narrow(__c, __dfault); }
20060 # 346 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20061       const char_type*
20062       narrow(const char_type* __lo, const char_type* __hi,
20063        char __dfault, char *__to) const
20064       { return this->do_narrow(__lo, __hi, __dfault, __to); }
20065
20066     protected:
20067       explicit
20068       __ctype_abstract_base(size_t __refs = 0): facet(__refs) { }
20069
20070       virtual
20071       ~__ctype_abstract_base() { }
20072 # 371 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20073       virtual bool
20074       do_is(mask __m, char_type __c) const = 0;
20075 # 390 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20076       virtual const char_type*
20077       do_is(const char_type* __lo, const char_type* __hi,
20078      mask* __vec) const = 0;
20079 # 409 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20080       virtual const char_type*
20081       do_scan_is(mask __m, const char_type* __lo,
20082    const char_type* __hi) const = 0;
20083 # 428 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20084       virtual const char_type*
20085       do_scan_not(mask __m, const char_type* __lo,
20086     const char_type* __hi) const = 0;
20087 # 446 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20088       virtual char_type
20089       do_toupper(char_type) const = 0;
20090 # 463 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20091       virtual const char_type*
20092       do_toupper(char_type* __lo, const char_type* __hi) const = 0;
20093 # 479 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20094       virtual char_type
20095       do_tolower(char_type) const = 0;
20096 # 496 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20097       virtual const char_type*
20098       do_tolower(char_type* __lo, const char_type* __hi) const = 0;
20099 # 515 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20100       virtual char_type
20101       do_widen(char) const = 0;
20102 # 536 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20103       virtual const char*
20104       do_widen(const char* __lo, const char* __hi,
20105         char_type* __dest) const = 0;
20106 # 558 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20107       virtual char
20108       do_narrow(char_type, char __dfault) const = 0;
20109 # 582 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20110       virtual const char_type*
20111       do_narrow(const char_type* __lo, const char_type* __hi,
20112   char __dfault, char* __dest) const = 0;
20113     };
20114 # 605 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20115   template<typename _CharT>
20116     class ctype : public __ctype_abstract_base<_CharT>
20117     {
20118     public:
20119
20120       typedef _CharT char_type;
20121       typedef typename __ctype_abstract_base<_CharT>::mask mask;
20122
20123
20124       static locale::id id;
20125
20126       explicit
20127       ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }
20128
20129    protected:
20130       virtual
20131       ~ctype();
20132
20133       virtual bool
20134       do_is(mask __m, char_type __c) const;
20135
20136       virtual const char_type*
20137       do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
20138
20139       virtual const char_type*
20140       do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
20141
20142       virtual const char_type*
20143       do_scan_not(mask __m, const char_type* __lo,
20144     const char_type* __hi) const;
20145
20146       virtual char_type
20147       do_toupper(char_type __c) const;
20148
20149       virtual const char_type*
20150       do_toupper(char_type* __lo, const char_type* __hi) const;
20151
20152       virtual char_type
20153       do_tolower(char_type __c) const;
20154
20155       virtual const char_type*
20156       do_tolower(char_type* __lo, const char_type* __hi) const;
20157
20158       virtual char_type
20159       do_widen(char __c) const;
20160
20161       virtual const char*
20162       do_widen(const char* __lo, const char* __hi, char_type* __dest) const;
20163
20164       virtual char
20165       do_narrow(char_type, char __dfault) const;
20166
20167       virtual const char_type*
20168       do_narrow(const char_type* __lo, const char_type* __hi,
20169   char __dfault, char* __dest) const;
20170     };
20171
20172   template<typename _CharT>
20173     locale::id ctype<_CharT>::id;
20174 # 674 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20175   template<>
20176     class ctype<char> : public locale::facet, public ctype_base
20177     {
20178     public:
20179
20180
20181       typedef char char_type;
20182
20183     protected:
20184
20185       __c_locale _M_c_locale_ctype;
20186       bool _M_del;
20187       __to_type _M_toupper;
20188       __to_type _M_tolower;
20189       const mask* _M_table;
20190       mutable char _M_widen_ok;
20191       mutable char _M_widen[1 + static_cast<unsigned char>(-1)];
20192       mutable char _M_narrow[1 + static_cast<unsigned char>(-1)];
20193       mutable char _M_narrow_ok;
20194
20195
20196     public:
20197
20198       static locale::id id;
20199
20200       static const size_t table_size = 1 + static_cast<unsigned char>(-1);
20201 # 711 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20202       explicit
20203       ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0);
20204 # 724 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20205       explicit
20206       ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false,
20207      size_t __refs = 0);
20208 # 737 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20209       inline bool
20210       is(mask __m, char __c) const;
20211 # 752 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20212       inline const char*
20213       is(const char* __lo, const char* __hi, mask* __vec) const;
20214 # 766 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20215       inline const char*
20216       scan_is(mask __m, const char* __lo, const char* __hi) const;
20217 # 780 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20218       inline const char*
20219       scan_not(mask __m, const char* __lo, const char* __hi) const;
20220 # 795 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20221       char_type
20222       toupper(char_type __c) const
20223       { return this->do_toupper(__c); }
20224 # 812 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20225       const char_type*
20226       toupper(char_type *__lo, const char_type* __hi) const
20227       { return this->do_toupper(__lo, __hi); }
20228 # 828 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20229       char_type
20230       tolower(char_type __c) const
20231       { return this->do_tolower(__c); }
20232 # 845 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20233       const char_type*
20234       tolower(char_type* __lo, const char_type* __hi) const
20235       { return this->do_tolower(__lo, __hi); }
20236 # 865 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20237       char_type
20238       widen(char __c) const
20239       {
20240  if (_M_widen_ok)
20241    return _M_widen[static_cast<unsigned char>(__c)];
20242  this->_M_widen_init();
20243  return this->do_widen(__c);
20244       }
20245 # 892 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20246       const char*
20247       widen(const char* __lo, const char* __hi, char_type* __to) const
20248       {
20249  if (_M_widen_ok == 1)
20250    {
20251      memcpy(__to, __lo, __hi - __lo);
20252      return __hi;
20253    }
20254  if (!_M_widen_ok)
20255    _M_widen_init();
20256  return this->do_widen(__lo, __hi, __to);
20257       }
20258 # 923 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20259       char
20260       narrow(char_type __c, char __dfault) const
20261       {
20262  if (_M_narrow[static_cast<unsigned char>(__c)])
20263    return _M_narrow[static_cast<unsigned char>(__c)];
20264  const char __t = do_narrow(__c, __dfault);
20265  if (__t != __dfault)
20266    _M_narrow[static_cast<unsigned char>(__c)] = __t;
20267  return __t;
20268       }
20269 # 956 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20270       const char_type*
20271       narrow(const char_type* __lo, const char_type* __hi,
20272       char __dfault, char *__to) const
20273       {
20274  if (__builtin_expect(_M_narrow_ok == 1, true))
20275    {
20276      memcpy(__to, __lo, __hi - __lo);
20277      return __hi;
20278    }
20279  if (!_M_narrow_ok)
20280    _M_narrow_init();
20281  return this->do_narrow(__lo, __hi, __dfault, __to);
20282       }
20283
20284     protected:
20285
20286
20287       const mask*
20288       table() const throw()
20289       { return _M_table; }
20290
20291
20292       static const mask*
20293       classic_table() throw();
20294
20295
20296
20297
20298
20299
20300
20301       virtual
20302       ~ctype();
20303 # 1003 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20304       virtual char_type
20305       do_toupper(char_type) const;
20306 # 1020 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20307       virtual const char_type*
20308       do_toupper(char_type* __lo, const char_type* __hi) const;
20309 # 1036 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20310       virtual char_type
20311       do_tolower(char_type) const;
20312 # 1053 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20313       virtual const char_type*
20314       do_tolower(char_type* __lo, const char_type* __hi) const;
20315 # 1073 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20316       virtual char_type
20317       do_widen(char __c) const
20318       { return __c; }
20319 # 1096 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20320       virtual const char*
20321       do_widen(const char* __lo, const char* __hi, char_type* __dest) const
20322       {
20323  memcpy(__dest, __lo, __hi - __lo);
20324  return __hi;
20325       }
20326 # 1122 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20327       virtual char
20328       do_narrow(char_type __c, char) const
20329       { return __c; }
20330 # 1148 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20331       virtual const char_type*
20332       do_narrow(const char_type* __lo, const char_type* __hi,
20333   char, char* __dest) const
20334       {
20335  memcpy(__dest, __lo, __hi - __lo);
20336  return __hi;
20337       }
20338
20339     private:
20340
20341       void _M_widen_init() const
20342       {
20343  char __tmp[sizeof(_M_widen)];
20344  for (size_t __i = 0; __i < sizeof(_M_widen); ++__i)
20345    __tmp[__i] = __i;
20346  do_widen(__tmp, __tmp + sizeof(__tmp), _M_widen);
20347
20348  _M_widen_ok = 1;
20349
20350  if (memcmp(__tmp, _M_widen, sizeof(_M_widen)))
20351    _M_widen_ok = 2;
20352       }
20353
20354
20355
20356
20357       void _M_narrow_init() const
20358       {
20359  char __tmp[sizeof(_M_narrow)];
20360  for (size_t __i = 0; __i < sizeof(_M_narrow); ++__i)
20361    __tmp[__i] = __i;
20362  do_narrow(__tmp, __tmp + sizeof(__tmp), 0, _M_narrow);
20363
20364  _M_narrow_ok = 1;
20365  if (memcmp(__tmp, _M_narrow, sizeof(_M_narrow)))
20366    _M_narrow_ok = 2;
20367  else
20368    {
20369
20370
20371      char __c;
20372      do_narrow(__tmp, __tmp + 1, 1, &__c);
20373      if (__c == 1)
20374        _M_narrow_ok = 2;
20375    }
20376       }
20377     };
20378
20379   template<>
20380     const ctype<char>&
20381     use_facet<ctype<char> >(const locale& __loc);
20382 # 1508 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20383 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/ctype_inline.h" 1 3
20384 # 37 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/ctype_inline.h" 3
20385   bool
20386   ctype<char>::
20387   is(mask __m, char __c) const
20388   { return _M_table[static_cast<unsigned char>(__c)] & __m; }
20389
20390   const char*
20391   ctype<char>::
20392   is(const char* __low, const char* __high, mask* __vec) const
20393   {
20394     while (__low < __high)
20395       *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
20396     return __high;
20397   }
20398
20399   const char*
20400   ctype<char>::
20401   scan_is(mask __m, const char* __low, const char* __high) const
20402   {
20403     while (__low < __high
20404     && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
20405       ++__low;
20406     return __low;
20407   }
20408
20409   const char*
20410   ctype<char>::
20411   scan_not(mask __m, const char* __low, const char* __high) const
20412   {
20413     while (__low < __high
20414     && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
20415       ++__low;
20416     return __low;
20417   }
20418 # 1509 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
20419
20420
20421   template<typename _CharT>
20422     class ctype_byname : public ctype<_CharT>
20423     {
20424     public:
20425       typedef _CharT char_type;
20426
20427       explicit
20428       ctype_byname(const char* __s, size_t __refs = 0);
20429
20430     protected:
20431       virtual
20432       ~ctype_byname() { };
20433     };
20434
20435
20436   template<>
20437     ctype_byname<char>::ctype_byname(const char*, size_t refs);
20438
20439   template<>
20440     ctype_byname<wchar_t>::ctype_byname(const char*, size_t refs);
20441
20442
20443 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 1 3
20444 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20445        
20446 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20447
20448
20449   class codecvt_base
20450   {
20451   public:
20452     enum result
20453     {
20454       ok,
20455       partial,
20456       error,
20457       noconv
20458     };
20459   };
20460 # 69 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20461   template<typename _InternT, typename _ExternT, typename _StateT>
20462     class __codecvt_abstract_base
20463     : public locale::facet, public codecvt_base
20464     {
20465     public:
20466
20467       typedef codecvt_base::result result;
20468       typedef _InternT intern_type;
20469       typedef _ExternT extern_type;
20470       typedef _StateT state_type;
20471 # 117 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20472       result
20473       out(state_type& __state, const intern_type* __from,
20474    const intern_type* __from_end, const intern_type*& __from_next,
20475    extern_type* __to, extern_type* __to_end,
20476    extern_type*& __to_next) const
20477       {
20478  return this->do_out(__state, __from, __from_end, __from_next,
20479        __to, __to_end, __to_next);
20480       }
20481 # 156 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20482       result
20483       unshift(state_type& __state, extern_type* __to, extern_type* __to_end,
20484        extern_type*& __to_next) const
20485       { return this->do_unshift(__state, __to,__to_end,__to_next); }
20486 # 197 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20487       result
20488       in(state_type& __state, const extern_type* __from,
20489   const extern_type* __from_end, const extern_type*& __from_next,
20490   intern_type* __to, intern_type* __to_end,
20491   intern_type*& __to_next) const
20492       {
20493  return this->do_in(__state, __from, __from_end, __from_next,
20494       __to, __to_end, __to_next);
20495       }
20496
20497       int
20498       encoding() const throw()
20499       { return this->do_encoding(); }
20500
20501       bool
20502       always_noconv() const throw()
20503       { return this->do_always_noconv(); }
20504
20505       int
20506       length(state_type& __state, const extern_type* __from,
20507       const extern_type* __end, size_t __max) const
20508       { return this->do_length(__state, __from, __end, __max); }
20509
20510       int
20511       max_length() const throw()
20512       { return this->do_max_length(); }
20513
20514     protected:
20515       explicit
20516       __codecvt_abstract_base(size_t __refs = 0) : locale::facet(__refs) { }
20517
20518       virtual
20519       ~__codecvt_abstract_base() { }
20520 # 238 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20521       virtual result
20522       do_out(state_type& __state, const intern_type* __from,
20523       const intern_type* __from_end, const intern_type*& __from_next,
20524       extern_type* __to, extern_type* __to_end,
20525       extern_type*& __to_next) const = 0;
20526
20527       virtual result
20528       do_unshift(state_type& __state, extern_type* __to,
20529    extern_type* __to_end, extern_type*& __to_next) const = 0;
20530
20531       virtual result
20532       do_in(state_type& __state, const extern_type* __from,
20533      const extern_type* __from_end, const extern_type*& __from_next,
20534      intern_type* __to, intern_type* __to_end,
20535      intern_type*& __to_next) const = 0;
20536
20537       virtual int
20538       do_encoding() const throw() = 0;
20539
20540       virtual bool
20541       do_always_noconv() const throw() = 0;
20542
20543       virtual int
20544       do_length(state_type&, const extern_type* __from,
20545   const extern_type* __end, size_t __max) const = 0;
20546
20547       virtual int
20548       do_max_length() const throw() = 0;
20549     };
20550
20551
20552
20553   template<typename _InternT, typename _ExternT, typename _StateT>
20554     class codecvt
20555     : public __codecvt_abstract_base<_InternT, _ExternT, _StateT>
20556     {
20557     public:
20558
20559       typedef codecvt_base::result result;
20560       typedef _InternT intern_type;
20561       typedef _ExternT extern_type;
20562       typedef _StateT state_type;
20563
20564     protected:
20565       __c_locale _M_c_locale_codecvt;
20566
20567     public:
20568       static locale::id id;
20569
20570       explicit
20571       codecvt(size_t __refs = 0)
20572       : __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs) { }
20573
20574       explicit
20575       codecvt(__c_locale __cloc, size_t __refs = 0);
20576
20577     protected:
20578       virtual
20579       ~codecvt() { }
20580
20581       virtual result
20582       do_out(state_type& __state, const intern_type* __from,
20583       const intern_type* __from_end, const intern_type*& __from_next,
20584       extern_type* __to, extern_type* __to_end,
20585       extern_type*& __to_next) const;
20586
20587       virtual result
20588       do_unshift(state_type& __state, extern_type* __to,
20589    extern_type* __to_end, extern_type*& __to_next) const;
20590
20591       virtual result
20592       do_in(state_type& __state, const extern_type* __from,
20593      const extern_type* __from_end, const extern_type*& __from_next,
20594      intern_type* __to, intern_type* __to_end,
20595      intern_type*& __to_next) const;
20596
20597       virtual int
20598       do_encoding() const throw();
20599
20600       virtual bool
20601       do_always_noconv() const throw();
20602
20603       virtual int
20604       do_length(state_type&, const extern_type* __from,
20605   const extern_type* __end, size_t __max) const;
20606
20607       virtual int
20608       do_max_length() const throw();
20609     };
20610
20611   template<typename _InternT, typename _ExternT, typename _StateT>
20612     locale::id codecvt<_InternT, _ExternT, _StateT>::id;
20613
20614
20615   template<>
20616     class codecvt<char, char, mbstate_t>
20617     : public __codecvt_abstract_base<char, char, mbstate_t>
20618     {
20619     public:
20620
20621       typedef char intern_type;
20622       typedef char extern_type;
20623       typedef mbstate_t state_type;
20624
20625     protected:
20626       __c_locale _M_c_locale_codecvt;
20627
20628     public:
20629       static locale::id id;
20630
20631       explicit
20632       codecvt(size_t __refs = 0);
20633
20634       explicit
20635       codecvt(__c_locale __cloc, size_t __refs = 0);
20636
20637     protected:
20638       virtual
20639       ~codecvt();
20640
20641       virtual result
20642       do_out(state_type& __state, const intern_type* __from,
20643       const intern_type* __from_end, const intern_type*& __from_next,
20644       extern_type* __to, extern_type* __to_end,
20645       extern_type*& __to_next) const;
20646
20647       virtual result
20648       do_unshift(state_type& __state, extern_type* __to,
20649    extern_type* __to_end, extern_type*& __to_next) const;
20650
20651       virtual result
20652       do_in(state_type& __state, const extern_type* __from,
20653      const extern_type* __from_end, const extern_type*& __from_next,
20654      intern_type* __to, intern_type* __to_end,
20655      intern_type*& __to_next) const;
20656
20657       virtual int
20658       do_encoding() const throw();
20659
20660       virtual bool
20661       do_always_noconv() const throw();
20662
20663       virtual int
20664       do_length(state_type&, const extern_type* __from,
20665   const extern_type* __end, size_t __max) const;
20666
20667       virtual int
20668       do_max_length() const throw();
20669   };
20670 # 450 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/codecvt.h" 3
20671   template<typename _InternT, typename _ExternT, typename _StateT>
20672     class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT>
20673     {
20674     public:
20675       explicit
20676       codecvt_byname(const char* __s, size_t __refs = 0)
20677       : codecvt<_InternT, _ExternT, _StateT>(__refs)
20678       {
20679  if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
20680    {
20681      this->_S_destroy_c_locale(this->_M_c_locale_codecvt);
20682      this->_S_create_c_locale(this->_M_c_locale_codecvt, __s);
20683    }
20684       }
20685
20686     protected:
20687       virtual
20688       ~codecvt_byname() { }
20689     };
20690 # 1534 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
20691
20692
20693   class __num_base
20694   {
20695   public:
20696
20697
20698     enum
20699       {
20700         _S_ominus,
20701         _S_oplus,
20702         _S_ox,
20703         _S_oX,
20704         _S_odigits,
20705         _S_odigits_end = _S_odigits + 16,
20706         _S_oudigits = _S_odigits_end,
20707         _S_oudigits_end = _S_oudigits + 16,
20708         _S_oe = _S_odigits + 14,
20709         _S_oE = _S_oudigits + 14,
20710  _S_oend = _S_oudigits_end
20711       };
20712
20713
20714
20715
20716
20717
20718     static const char* _S_atoms_out;
20719
20720
20721
20722     static const char* _S_atoms_in;
20723
20724     enum
20725     {
20726       _S_iminus,
20727       _S_iplus,
20728       _S_ix,
20729       _S_iX,
20730       _S_izero,
20731       _S_ie = _S_izero + 14,
20732       _S_iE = _S_izero + 20,
20733       _S_iend = 26
20734     };
20735
20736
20737
20738     static void
20739     _S_format_float(const ios_base& __io, char* __fptr, char __mod);
20740   };
20741
20742   template<typename _CharT>
20743     struct __numpunct_cache : public locale::facet
20744     {
20745       const char* _M_grouping;
20746       size_t _M_grouping_size;
20747       bool _M_use_grouping;
20748       const _CharT* _M_truename;
20749       size_t _M_truename_size;
20750       const _CharT* _M_falsename;
20751       size_t _M_falsename_size;
20752       _CharT _M_decimal_point;
20753       _CharT _M_thousands_sep;
20754
20755
20756
20757
20758
20759       _CharT _M_atoms_out[__num_base::_S_oend];
20760
20761
20762
20763
20764
20765       _CharT _M_atoms_in[__num_base::_S_iend];
20766
20767       bool _M_allocated;
20768
20769       __numpunct_cache(size_t __refs = 0) : facet(__refs),
20770       _M_grouping(__null), _M_grouping_size(0), _M_use_grouping(false),
20771       _M_truename(__null), _M_truename_size(0), _M_falsename(__null),
20772       _M_falsename_size(0), _M_decimal_point(_CharT()),
20773       _M_thousands_sep(_CharT()), _M_allocated(false)
20774       { }
20775
20776       ~__numpunct_cache();
20777
20778       void
20779       _M_cache(const locale& __loc);
20780
20781     private:
20782       __numpunct_cache&
20783       operator=(const __numpunct_cache&);
20784
20785       explicit
20786       __numpunct_cache(const __numpunct_cache&);
20787     };
20788
20789   template<typename _CharT>
20790     __numpunct_cache<_CharT>::~__numpunct_cache()
20791     {
20792       if (_M_allocated)
20793  {
20794    delete [] _M_grouping;
20795    delete [] _M_truename;
20796    delete [] _M_falsename;
20797  }
20798     }
20799 # 1656 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20800   template<typename _CharT>
20801     class numpunct : public locale::facet
20802     {
20803     public:
20804
20805
20806
20807       typedef _CharT char_type;
20808       typedef basic_string<_CharT> string_type;
20809
20810       typedef __numpunct_cache<_CharT> __cache_type;
20811
20812     protected:
20813       __cache_type* _M_data;
20814
20815     public:
20816
20817       static locale::id id;
20818
20819
20820
20821
20822
20823
20824       explicit
20825       numpunct(size_t __refs = 0) : facet(__refs), _M_data(__null)
20826       { _M_initialize_numpunct(); }
20827 # 1693 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20828       explicit
20829       numpunct(__cache_type* __cache, size_t __refs = 0)
20830       : facet(__refs), _M_data(__cache)
20831       { _M_initialize_numpunct(); }
20832 # 1707 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20833       explicit
20834       numpunct(__c_locale __cloc, size_t __refs = 0)
20835       : facet(__refs), _M_data(__null)
20836       { _M_initialize_numpunct(__cloc); }
20837 # 1721 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20838       char_type
20839       decimal_point() const
20840       { return this->do_decimal_point(); }
20841 # 1734 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20842       char_type
20843       thousands_sep() const
20844       { return this->do_thousands_sep(); }
20845 # 1765 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20846       string
20847       grouping() const
20848       { return this->do_grouping(); }
20849 # 1778 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20850       string_type
20851       truename() const
20852       { return this->do_truename(); }
20853 # 1791 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20854       string_type
20855       falsename() const
20856       { return this->do_falsename(); }
20857
20858     protected:
20859
20860       virtual
20861       ~numpunct();
20862 # 1808 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20863       virtual char_type
20864       do_decimal_point() const
20865       { return _M_data->_M_decimal_point; }
20866 # 1820 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20867       virtual char_type
20868       do_thousands_sep() const
20869       { return _M_data->_M_thousands_sep; }
20870 # 1833 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20871       virtual string
20872       do_grouping() const
20873       { return _M_data->_M_grouping; }
20874 # 1846 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20875       virtual string_type
20876       do_truename() const
20877       { return _M_data->_M_truename; }
20878 # 1859 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20879       virtual string_type
20880       do_falsename() const
20881       { return _M_data->_M_falsename; }
20882
20883
20884       void
20885       _M_initialize_numpunct(__c_locale __cloc = __null);
20886     };
20887
20888   template<typename _CharT>
20889     locale::id numpunct<_CharT>::id;
20890
20891   template<>
20892     numpunct<char>::~numpunct();
20893
20894   template<>
20895     void
20896     numpunct<char>::_M_initialize_numpunct(__c_locale __cloc);
20897 # 1888 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20898   template<typename _CharT>
20899     class numpunct_byname : public numpunct<_CharT>
20900     {
20901     public:
20902       typedef _CharT char_type;
20903       typedef basic_string<_CharT> string_type;
20904
20905       explicit
20906       numpunct_byname(const char* __s, size_t __refs = 0)
20907       : numpunct<_CharT>(__refs)
20908       {
20909  if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
20910    {
20911      __c_locale __tmp;
20912      this->_S_create_c_locale(__tmp, __s);
20913      this->_M_initialize_numpunct(__tmp);
20914      this->_S_destroy_c_locale(__tmp);
20915    }
20916       }
20917
20918     protected:
20919       virtual
20920       ~numpunct_byname() { }
20921     };
20922 # 1925 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20923   template<typename _CharT, typename _InIter>
20924     class num_get : public locale::facet
20925     {
20926     public:
20927
20928
20929
20930       typedef _CharT char_type;
20931       typedef _InIter iter_type;
20932
20933
20934
20935       static locale::id id;
20936 # 1946 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20937       explicit
20938       num_get(size_t __refs = 0) : facet(__refs) { }
20939 # 1972 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20940       iter_type
20941       get(iter_type __in, iter_type __end, ios_base& __io,
20942    ios_base::iostate& __err, bool& __v) const
20943       { return this->do_get(__in, __end, __io, __err, __v); }
20944 # 2008 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20945       iter_type
20946       get(iter_type __in, iter_type __end, ios_base& __io,
20947    ios_base::iostate& __err, long& __v) const
20948       { return this->do_get(__in, __end, __io, __err, __v); }
20949
20950       iter_type
20951       get(iter_type __in, iter_type __end, ios_base& __io,
20952    ios_base::iostate& __err, unsigned short& __v) const
20953       { return this->do_get(__in, __end, __io, __err, __v); }
20954
20955       iter_type
20956       get(iter_type __in, iter_type __end, ios_base& __io,
20957    ios_base::iostate& __err, unsigned int& __v) const
20958       { return this->do_get(__in, __end, __io, __err, __v); }
20959
20960       iter_type
20961       get(iter_type __in, iter_type __end, ios_base& __io,
20962    ios_base::iostate& __err, unsigned long& __v) const
20963       { return this->do_get(__in, __end, __io, __err, __v); }
20964
20965
20966       iter_type
20967       get(iter_type __in, iter_type __end, ios_base& __io,
20968    ios_base::iostate& __err, long long& __v) const
20969       { return this->do_get(__in, __end, __io, __err, __v); }
20970
20971       iter_type
20972       get(iter_type __in, iter_type __end, ios_base& __io,
20973    ios_base::iostate& __err, unsigned long long& __v) const
20974       { return this->do_get(__in, __end, __io, __err, __v); }
20975 # 2067 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20976       iter_type
20977       get(iter_type __in, iter_type __end, ios_base& __io,
20978    ios_base::iostate& __err, float& __v) const
20979       { return this->do_get(__in, __end, __io, __err, __v); }
20980
20981       iter_type
20982       get(iter_type __in, iter_type __end, ios_base& __io,
20983    ios_base::iostate& __err, double& __v) const
20984       { return this->do_get(__in, __end, __io, __err, __v); }
20985
20986       iter_type
20987       get(iter_type __in, iter_type __end, ios_base& __io,
20988    ios_base::iostate& __err, long double& __v) const
20989       { return this->do_get(__in, __end, __io, __err, __v); }
20990 # 2109 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
20991       iter_type
20992       get(iter_type __in, iter_type __end, ios_base& __io,
20993    ios_base::iostate& __err, void*& __v) const
20994       { return this->do_get(__in, __end, __io, __err, __v); }
20995
20996     protected:
20997
20998       virtual ~num_get() { }
20999
21000       iter_type
21001       _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&,
21002          string& __xtrc) const;
21003
21004       template<typename _ValueT>
21005         iter_type
21006         _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,
21007          _ValueT& __v) const;
21008 # 2142 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21009       virtual iter_type
21010       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;
21011
21012
21013       virtual iter_type
21014       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long&) const;
21015
21016       virtual iter_type
21017       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21018        unsigned short&) const;
21019
21020       virtual iter_type
21021       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21022       unsigned int&) const;
21023
21024       virtual iter_type
21025       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21026       unsigned long&) const;
21027
21028
21029       virtual iter_type
21030       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21031       long long&) const;
21032
21033       virtual iter_type
21034       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21035       unsigned long long&) const;
21036
21037
21038       virtual iter_type
21039       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21040       float&) const;
21041
21042       virtual iter_type
21043       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21044       double&) const;
21045
21046       virtual iter_type
21047       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21048       long double&) const;
21049
21050       virtual iter_type
21051       do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
21052       void*&) const;
21053
21054     };
21055
21056   template<typename _CharT, typename _InIter>
21057     locale::id num_get<_CharT, _InIter>::id;
21058 # 2204 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21059   template<typename _CharT, typename _OutIter>
21060     class num_put : public locale::facet
21061     {
21062     public:
21063
21064
21065
21066       typedef _CharT char_type;
21067       typedef _OutIter iter_type;
21068
21069
21070
21071       static locale::id id;
21072 # 2225 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21073       explicit
21074       num_put(size_t __refs = 0) : facet(__refs) { }
21075 # 2243 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21076       iter_type
21077       put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const
21078       { return this->do_put(__s, __f, __fill, __v); }
21079 # 2285 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21080       iter_type
21081       put(iter_type __s, ios_base& __f, char_type __fill, long __v) const
21082       { return this->do_put(__s, __f, __fill, __v); }
21083
21084       iter_type
21085       put(iter_type __s, ios_base& __f, char_type __fill,
21086    unsigned long __v) const
21087       { return this->do_put(__s, __f, __fill, __v); }
21088
21089
21090       iter_type
21091       put(iter_type __s, ios_base& __f, char_type __fill, long long __v) const
21092       { return this->do_put(__s, __f, __fill, __v); }
21093
21094       iter_type
21095       put(iter_type __s, ios_base& __f, char_type __fill,
21096    unsigned long long __v) const
21097       { return this->do_put(__s, __f, __fill, __v); }
21098 # 2348 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21099       iter_type
21100       put(iter_type __s, ios_base& __f, char_type __fill, double __v) const
21101       { return this->do_put(__s, __f, __fill, __v); }
21102
21103       iter_type
21104       put(iter_type __s, ios_base& __f, char_type __fill,
21105    long double __v) const
21106       { return this->do_put(__s, __f, __fill, __v); }
21107 # 2373 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21108       iter_type
21109       put(iter_type __s, ios_base& __f, char_type __fill,
21110    const void* __v) const
21111       { return this->do_put(__s, __f, __fill, __v); }
21112
21113     protected:
21114       template<typename _ValueT>
21115         iter_type
21116         _M_insert_float(iter_type, ios_base& __io, char_type __fill,
21117    char __mod, _ValueT __v) const;
21118
21119       void
21120       _M_group_float(const char* __grouping, size_t __grouping_size,
21121        char_type __sep, const char_type* __p, char_type* __new,
21122        char_type* __cs, int& __len) const;
21123
21124       template<typename _ValueT>
21125         iter_type
21126         _M_insert_int(iter_type, ios_base& __io, char_type __fill,
21127         _ValueT __v) const;
21128
21129       void
21130       _M_group_int(const char* __grouping, size_t __grouping_size,
21131      char_type __sep, ios_base& __io, char_type* __new,
21132      char_type* __cs, int& __len) const;
21133
21134       void
21135       _M_pad(char_type __fill, streamsize __w, ios_base& __io,
21136       char_type* __new, const char_type* __cs, int& __len) const;
21137
21138
21139       virtual
21140       ~num_put() { };
21141 # 2421 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21142       virtual iter_type
21143       do_put(iter_type, ios_base&, char_type __fill, bool __v) const;
21144
21145       virtual iter_type
21146       do_put(iter_type, ios_base&, char_type __fill, long __v) const;
21147
21148       virtual iter_type
21149       do_put(iter_type, ios_base&, char_type __fill, unsigned long) const;
21150
21151
21152       virtual iter_type
21153       do_put(iter_type, ios_base&, char_type __fill, long long __v) const;
21154
21155       virtual iter_type
21156       do_put(iter_type, ios_base&, char_type __fill, unsigned long long) const;
21157
21158
21159       virtual iter_type
21160       do_put(iter_type, ios_base&, char_type __fill, double __v) const;
21161
21162       virtual iter_type
21163       do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
21164
21165       virtual iter_type
21166       do_put(iter_type, ios_base&, char_type __fill, const void* __v) const;
21167
21168     };
21169
21170   template <typename _CharT, typename _OutIter>
21171     locale::id num_put<_CharT, _OutIter>::id;
21172 # 2465 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21173   template<typename _CharT>
21174     class collate : public locale::facet
21175     {
21176     public:
21177
21178
21179
21180       typedef _CharT char_type;
21181       typedef basic_string<_CharT> string_type;
21182
21183
21184     protected:
21185
21186
21187       __c_locale _M_c_locale_collate;
21188
21189     public:
21190
21191       static locale::id id;
21192 # 2492 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21193       explicit
21194       collate(size_t __refs = 0)
21195       : facet(__refs), _M_c_locale_collate(_S_get_c_locale())
21196       { }
21197 # 2506 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21198       explicit
21199       collate(__c_locale __cloc, size_t __refs = 0)
21200       : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc))
21201       { }
21202 # 2523 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21203       int
21204       compare(const _CharT* __lo1, const _CharT* __hi1,
21205        const _CharT* __lo2, const _CharT* __hi2) const
21206       { return this->do_compare(__lo1, __hi1, __lo2, __hi2); }
21207 # 2542 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21208       string_type
21209       transform(const _CharT* __lo, const _CharT* __hi) const
21210       { return this->do_transform(__lo, __hi); }
21211 # 2556 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21212       long
21213       hash(const _CharT* __lo, const _CharT* __hi) const
21214       { return this->do_hash(__lo, __hi); }
21215
21216
21217       int
21218       _M_compare(const _CharT*, const _CharT*) const;
21219
21220       size_t
21221       _M_transform(_CharT*, const _CharT*, size_t) const;
21222
21223   protected:
21224
21225       virtual
21226       ~collate()
21227       { _S_destroy_c_locale(_M_c_locale_collate); }
21228 # 2585 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21229       virtual int
21230       do_compare(const _CharT* __lo1, const _CharT* __hi1,
21231    const _CharT* __lo2, const _CharT* __hi2) const;
21232 # 2601 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21233       virtual string_type
21234       do_transform(const _CharT* __lo, const _CharT* __hi) const;
21235 # 2614 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21236       virtual long
21237       do_hash(const _CharT* __lo, const _CharT* __hi) const;
21238     };
21239
21240   template<typename _CharT>
21241     locale::id collate<_CharT>::id;
21242
21243
21244   template<>
21245     int
21246     collate<char>::_M_compare(const char*, const char*) const;
21247
21248   template<>
21249     size_t
21250     collate<char>::_M_transform(char*, const char*, size_t) const;
21251 # 2641 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21252   template<typename _CharT>
21253     class collate_byname : public collate<_CharT>
21254     {
21255     public:
21256
21257
21258       typedef _CharT char_type;
21259       typedef basic_string<_CharT> string_type;
21260
21261
21262       explicit
21263       collate_byname(const char* __s, size_t __refs = 0)
21264       : collate<_CharT>(__refs)
21265       {
21266  if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
21267    {
21268      this->_S_destroy_c_locale(this->_M_c_locale_collate);
21269      this->_S_create_c_locale(this->_M_c_locale_collate, __s);
21270    }
21271       }
21272
21273     protected:
21274       virtual
21275       ~collate_byname() { }
21276     };
21277 # 2674 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21278   class time_base
21279   {
21280   public:
21281     enum dateorder { no_order, dmy, mdy, ymd, ydm };
21282   };
21283
21284   template<typename _CharT>
21285     struct __timepunct_cache : public locale::facet
21286     {
21287
21288       static const _CharT* _S_timezones[14];
21289
21290       const _CharT* _M_date_format;
21291       const _CharT* _M_date_era_format;
21292       const _CharT* _M_time_format;
21293       const _CharT* _M_time_era_format;
21294       const _CharT* _M_date_time_format;
21295       const _CharT* _M_date_time_era_format;
21296       const _CharT* _M_am;
21297       const _CharT* _M_pm;
21298       const _CharT* _M_am_pm_format;
21299
21300
21301       const _CharT* _M_day1;
21302       const _CharT* _M_day2;
21303       const _CharT* _M_day3;
21304       const _CharT* _M_day4;
21305       const _CharT* _M_day5;
21306       const _CharT* _M_day6;
21307       const _CharT* _M_day7;
21308
21309
21310       const _CharT* _M_aday1;
21311       const _CharT* _M_aday2;
21312       const _CharT* _M_aday3;
21313       const _CharT* _M_aday4;
21314       const _CharT* _M_aday5;
21315       const _CharT* _M_aday6;
21316       const _CharT* _M_aday7;
21317
21318
21319       const _CharT* _M_month01;
21320       const _CharT* _M_month02;
21321       const _CharT* _M_month03;
21322       const _CharT* _M_month04;
21323       const _CharT* _M_month05;
21324       const _CharT* _M_month06;
21325       const _CharT* _M_month07;
21326       const _CharT* _M_month08;
21327       const _CharT* _M_month09;
21328       const _CharT* _M_month10;
21329       const _CharT* _M_month11;
21330       const _CharT* _M_month12;
21331
21332
21333       const _CharT* _M_amonth01;
21334       const _CharT* _M_amonth02;
21335       const _CharT* _M_amonth03;
21336       const _CharT* _M_amonth04;
21337       const _CharT* _M_amonth05;
21338       const _CharT* _M_amonth06;
21339       const _CharT* _M_amonth07;
21340       const _CharT* _M_amonth08;
21341       const _CharT* _M_amonth09;
21342       const _CharT* _M_amonth10;
21343       const _CharT* _M_amonth11;
21344       const _CharT* _M_amonth12;
21345
21346       bool _M_allocated;
21347
21348       __timepunct_cache(size_t __refs = 0) : facet(__refs),
21349       _M_date_format(__null), _M_date_era_format(__null), _M_time_format(__null),
21350       _M_time_era_format(__null), _M_date_time_format(__null),
21351       _M_date_time_era_format(__null), _M_am(__null), _M_pm(__null),
21352       _M_am_pm_format(__null), _M_day1(__null), _M_day2(__null), _M_day3(__null),
21353       _M_day4(__null), _M_day5(__null), _M_day6(__null), _M_day7(__null),
21354       _M_aday1(__null), _M_aday2(__null), _M_aday3(__null), _M_aday4(__null),
21355       _M_aday5(__null), _M_aday6(__null), _M_aday7(__null), _M_month01(__null),
21356       _M_month02(__null), _M_month03(__null), _M_month04(__null), _M_month05(__null),
21357       _M_month06(__null), _M_month07(__null), _M_month08(__null), _M_month09(__null),
21358       _M_month10(__null), _M_month11(__null), _M_month12(__null), _M_amonth01(__null),
21359       _M_amonth02(__null), _M_amonth03(__null), _M_amonth04(__null),
21360       _M_amonth05(__null), _M_amonth06(__null), _M_amonth07(__null),
21361       _M_amonth08(__null), _M_amonth09(__null), _M_amonth10(__null),
21362       _M_amonth11(__null), _M_amonth12(__null), _M_allocated(false)
21363       { }
21364
21365       ~__timepunct_cache();
21366
21367       void
21368       _M_cache(const locale& __loc);
21369
21370     private:
21371       __timepunct_cache&
21372       operator=(const __timepunct_cache&);
21373
21374       explicit
21375       __timepunct_cache(const __timepunct_cache&);
21376     };
21377
21378   template<typename _CharT>
21379     __timepunct_cache<_CharT>::~__timepunct_cache()
21380     {
21381       if (_M_allocated)
21382  {
21383
21384  }
21385     }
21386
21387
21388   template<>
21389     const char*
21390     __timepunct_cache<char>::_S_timezones[14];
21391 # 2795 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21392   template<typename _CharT>
21393     const _CharT* __timepunct_cache<_CharT>::_S_timezones[14];
21394
21395   template<typename _CharT>
21396     class __timepunct : public locale::facet
21397     {
21398     public:
21399
21400       typedef _CharT __char_type;
21401       typedef basic_string<_CharT> __string_type;
21402       typedef __timepunct_cache<_CharT> __cache_type;
21403
21404     protected:
21405       __cache_type* _M_data;
21406       __c_locale _M_c_locale_timepunct;
21407       const char* _M_name_timepunct;
21408
21409     public:
21410
21411       static locale::id id;
21412
21413       explicit
21414       __timepunct(size_t __refs = 0);
21415
21416       explicit
21417       __timepunct(__cache_type* __cache, size_t __refs = 0);
21418 # 2832 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21419       explicit
21420       __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0);
21421
21422
21423
21424       void
21425       _M_put(_CharT* __s, size_t __maxlen, const _CharT* __format,
21426       const tm* __tm) const;
21427
21428       void
21429       _M_date_formats(const _CharT** __date) const
21430       {
21431
21432  __date[0] = _M_data->_M_date_format;
21433  __date[1] = _M_data->_M_date_era_format;
21434       }
21435
21436       void
21437       _M_time_formats(const _CharT** __time) const
21438       {
21439
21440  __time[0] = _M_data->_M_time_format;
21441  __time[1] = _M_data->_M_time_era_format;
21442       }
21443
21444       void
21445       _M_date_time_formats(const _CharT** __dt) const
21446       {
21447
21448  __dt[0] = _M_data->_M_date_time_format;
21449  __dt[1] = _M_data->_M_date_time_era_format;
21450       }
21451
21452       void
21453       _M_am_pm_format(const _CharT* __ampm) const
21454       { __ampm = _M_data->_M_am_pm_format; }
21455
21456       void
21457       _M_am_pm(const _CharT** __ampm) const
21458       {
21459  __ampm[0] = _M_data->_M_am;
21460  __ampm[1] = _M_data->_M_pm;
21461       }
21462
21463       void
21464       _M_days(const _CharT** __days) const
21465       {
21466  __days[0] = _M_data->_M_day1;
21467  __days[1] = _M_data->_M_day2;
21468  __days[2] = _M_data->_M_day3;
21469  __days[3] = _M_data->_M_day4;
21470  __days[4] = _M_data->_M_day5;
21471  __days[5] = _M_data->_M_day6;
21472  __days[6] = _M_data->_M_day7;
21473       }
21474
21475       void
21476       _M_days_abbreviated(const _CharT** __days) const
21477       {
21478  __days[0] = _M_data->_M_aday1;
21479  __days[1] = _M_data->_M_aday2;
21480  __days[2] = _M_data->_M_aday3;
21481  __days[3] = _M_data->_M_aday4;
21482  __days[4] = _M_data->_M_aday5;
21483  __days[5] = _M_data->_M_aday6;
21484  __days[6] = _M_data->_M_aday7;
21485       }
21486
21487       void
21488       _M_months(const _CharT** __months) const
21489       {
21490  __months[0] = _M_data->_M_month01;
21491  __months[1] = _M_data->_M_month02;
21492  __months[2] = _M_data->_M_month03;
21493  __months[3] = _M_data->_M_month04;
21494  __months[4] = _M_data->_M_month05;
21495  __months[5] = _M_data->_M_month06;
21496  __months[6] = _M_data->_M_month07;
21497  __months[7] = _M_data->_M_month08;
21498  __months[8] = _M_data->_M_month09;
21499  __months[9] = _M_data->_M_month10;
21500  __months[10] = _M_data->_M_month11;
21501  __months[11] = _M_data->_M_month12;
21502       }
21503
21504       void
21505       _M_months_abbreviated(const _CharT** __months) const
21506       {
21507  __months[0] = _M_data->_M_amonth01;
21508  __months[1] = _M_data->_M_amonth02;
21509  __months[2] = _M_data->_M_amonth03;
21510  __months[3] = _M_data->_M_amonth04;
21511  __months[4] = _M_data->_M_amonth05;
21512  __months[5] = _M_data->_M_amonth06;
21513  __months[6] = _M_data->_M_amonth07;
21514  __months[7] = _M_data->_M_amonth08;
21515  __months[8] = _M_data->_M_amonth09;
21516  __months[9] = _M_data->_M_amonth10;
21517  __months[10] = _M_data->_M_amonth11;
21518  __months[11] = _M_data->_M_amonth12;
21519       }
21520
21521     protected:
21522       virtual
21523       ~__timepunct();
21524
21525
21526       void
21527       _M_initialize_timepunct(__c_locale __cloc = __null);
21528     };
21529
21530   template<typename _CharT>
21531     locale::id __timepunct<_CharT>::id;
21532
21533
21534   template<>
21535     void
21536     __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc);
21537
21538   template<>
21539     void
21540     __timepunct<char>::_M_put(char*, size_t, const char*, const tm*) const;
21541 # 2967 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21542 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/time_members.h" 1 3
21543 # 37 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/time_members.h" 3
21544   template<typename _CharT>
21545     __timepunct<_CharT>::__timepunct(size_t __refs)
21546     : facet(__refs), _M_data(__null)
21547     {
21548       _M_name_timepunct = _S_get_c_name();
21549       _M_initialize_timepunct();
21550     }
21551
21552   template<typename _CharT>
21553     __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
21554     : facet(__refs), _M_data(__cache)
21555     {
21556       _M_name_timepunct = _S_get_c_name();
21557       _M_initialize_timepunct();
21558     }
21559
21560   template<typename _CharT>
21561     __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
21562          size_t __refs)
21563     : facet(__refs), _M_data(__null)
21564     {
21565       const size_t __len = std::strlen(__s) + 1;
21566       char* __tmp = new char[__len];
21567       std::memcpy(__tmp, __s, __len);
21568       _M_name_timepunct = __tmp;
21569
21570       try
21571  { _M_initialize_timepunct(__cloc); }
21572       catch(...)
21573  {
21574    delete [] _M_name_timepunct;
21575    throw;
21576  }
21577     }
21578
21579   template<typename _CharT>
21580     __timepunct<_CharT>::~__timepunct()
21581     {
21582       if (_M_name_timepunct != _S_get_c_name())
21583  delete [] _M_name_timepunct;
21584       delete _M_data;
21585       _S_destroy_c_locale(_M_c_locale_timepunct);
21586     }
21587 # 2968 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
21588 # 2981 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21589   template<typename _CharT, typename _InIter>
21590     class time_get : public locale::facet, public time_base
21591     {
21592     public:
21593
21594
21595
21596       typedef _CharT char_type;
21597       typedef _InIter iter_type;
21598
21599       typedef basic_string<_CharT> __string_type;
21600
21601
21602       static locale::id id;
21603 # 3003 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21604       explicit
21605       time_get(size_t __refs = 0)
21606       : facet (__refs) { }
21607 # 3020 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21608       dateorder
21609       date_order() const
21610       { return this->do_date_order(); }
21611 # 3044 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21612       iter_type
21613       get_time(iter_type __beg, iter_type __end, ios_base& __io,
21614         ios_base::iostate& __err, tm* __tm) const
21615       { return this->do_get_time(__beg, __end, __io, __err, __tm); }
21616 # 3069 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21617       iter_type
21618       get_date(iter_type __beg, iter_type __end, ios_base& __io,
21619         ios_base::iostate& __err, tm* __tm) const
21620       { return this->do_get_date(__beg, __end, __io, __err, __tm); }
21621 # 3097 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21622       iter_type
21623       get_weekday(iter_type __beg, iter_type __end, ios_base& __io,
21624     ios_base::iostate& __err, tm* __tm) const
21625       { return this->do_get_weekday(__beg, __end, __io, __err, __tm); }
21626 # 3126 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21627       iter_type
21628       get_monthname(iter_type __beg, iter_type __end, ios_base& __io,
21629       ios_base::iostate& __err, tm* __tm) const
21630       { return this->do_get_monthname(__beg, __end, __io, __err, __tm); }
21631 # 3152 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21632       iter_type
21633       get_year(iter_type __beg, iter_type __end, ios_base& __io,
21634         ios_base::iostate& __err, tm* __tm) const
21635       { return this->do_get_year(__beg, __end, __io, __err, __tm); }
21636
21637     protected:
21638
21639       virtual
21640       ~time_get() { }
21641 # 3172 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21642       virtual dateorder
21643       do_date_order() const;
21644 # 3190 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21645       virtual iter_type
21646       do_get_time(iter_type __beg, iter_type __end, ios_base& __io,
21647     ios_base::iostate& __err, tm* __tm) const;
21648 # 3209 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21649       virtual iter_type
21650       do_get_date(iter_type __beg, iter_type __end, ios_base& __io,
21651     ios_base::iostate& __err, tm* __tm) const;
21652 # 3228 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21653       virtual iter_type
21654       do_get_weekday(iter_type __beg, iter_type __end, ios_base&,
21655        ios_base::iostate& __err, tm* __tm) const;
21656 # 3247 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21657       virtual iter_type
21658       do_get_monthname(iter_type __beg, iter_type __end, ios_base&,
21659          ios_base::iostate& __err, tm* __tm) const;
21660 # 3266 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21661       virtual iter_type
21662       do_get_year(iter_type __beg, iter_type __end, ios_base& __io,
21663     ios_base::iostate& __err, tm* __tm) const;
21664
21665
21666       iter_type
21667       _M_extract_num(iter_type __beg, iter_type __end, int& __member,
21668        int __min, int __max, size_t __len,
21669        ios_base& __io, ios_base::iostate& __err) const;
21670
21671
21672
21673       iter_type
21674       _M_extract_name(iter_type __beg, iter_type __end, int& __member,
21675         const _CharT** __names, size_t __indexlen,
21676         ios_base& __io, ios_base::iostate& __err) const;
21677
21678
21679       iter_type
21680       _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io,
21681        ios_base::iostate& __err, tm* __tm,
21682        const _CharT* __format) const;
21683     };
21684
21685   template<typename _CharT, typename _InIter>
21686     locale::id time_get<_CharT, _InIter>::id;
21687
21688
21689   template<typename _CharT, typename _InIter>
21690     class time_get_byname : public time_get<_CharT, _InIter>
21691     {
21692     public:
21693
21694       typedef _CharT char_type;
21695       typedef _InIter iter_type;
21696
21697       explicit
21698       time_get_byname(const char*, size_t __refs = 0)
21699       : time_get<_CharT, _InIter>(__refs) { }
21700
21701     protected:
21702       virtual
21703       ~time_get_byname() { }
21704     };
21705 # 3322 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21706   template<typename _CharT, typename _OutIter>
21707     class time_put : public locale::facet
21708     {
21709     public:
21710
21711
21712
21713       typedef _CharT char_type;
21714       typedef _OutIter iter_type;
21715
21716
21717
21718       static locale::id id;
21719 # 3343 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21720       explicit
21721       time_put(size_t __refs = 0)
21722       : facet(__refs) { }
21723 # 3362 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21724       iter_type
21725       put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
21726    const _CharT* __beg, const _CharT* __end) const;
21727 # 3382 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21728       iter_type
21729       put(iter_type __s, ios_base& __io, char_type __fill,
21730    const tm* __tm, char __format, char __mod = 0) const
21731       { return this->do_put(__s, __io, __fill, __tm, __format, __mod); }
21732
21733     protected:
21734
21735       virtual
21736       ~time_put()
21737       { }
21738 # 3409 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21739       virtual iter_type
21740       do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
21741       char __format, char __mod) const;
21742     };
21743
21744   template<typename _CharT, typename _OutIter>
21745     locale::id time_put<_CharT, _OutIter>::id;
21746
21747
21748   template<typename _CharT, typename _OutIter>
21749     class time_put_byname : public time_put<_CharT, _OutIter>
21750     {
21751     public:
21752
21753       typedef _CharT char_type;
21754       typedef _OutIter iter_type;
21755
21756       explicit
21757       time_put_byname(const char*, size_t __refs = 0)
21758       : time_put<_CharT, _OutIter>(__refs)
21759       { };
21760
21761     protected:
21762       virtual
21763       ~time_put_byname() { }
21764     };
21765 # 3447 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21766   class money_base
21767   {
21768   public:
21769     enum part { none, space, symbol, sign, value };
21770     struct pattern { char field[4]; };
21771
21772     static const pattern _S_default_pattern;
21773
21774     enum
21775     {
21776       _S_minus,
21777       _S_zero,
21778       _S_end = 11
21779     };
21780
21781
21782
21783     static const char* _S_atoms;
21784
21785
21786
21787     static pattern
21788     _S_construct_pattern(char __precedes, char __space, char __posn);
21789   };
21790
21791   template<typename _CharT, bool _Intl>
21792     struct __moneypunct_cache : public locale::facet
21793     {
21794       const char* _M_grouping;
21795       size_t _M_grouping_size;
21796       bool _M_use_grouping;
21797       _CharT _M_decimal_point;
21798       _CharT _M_thousands_sep;
21799       const _CharT* _M_curr_symbol;
21800       size_t _M_curr_symbol_size;
21801       const _CharT* _M_positive_sign;
21802       size_t _M_positive_sign_size;
21803       const _CharT* _M_negative_sign;
21804       size_t _M_negative_sign_size;
21805       int _M_frac_digits;
21806       money_base::pattern _M_pos_format;
21807       money_base::pattern _M_neg_format;
21808
21809
21810
21811
21812       _CharT _M_atoms[money_base::_S_end];
21813
21814       bool _M_allocated;
21815
21816       __moneypunct_cache(size_t __refs = 0) : facet(__refs),
21817       _M_grouping(__null), _M_grouping_size(0), _M_use_grouping(false),
21818       _M_decimal_point(_CharT()), _M_thousands_sep(_CharT()),
21819       _M_curr_symbol(__null), _M_curr_symbol_size(0),
21820       _M_positive_sign(__null), _M_positive_sign_size(0),
21821       _M_negative_sign(__null), _M_negative_sign_size(0),
21822       _M_frac_digits(0),
21823       _M_pos_format(money_base::pattern()),
21824       _M_neg_format(money_base::pattern()), _M_allocated(false)
21825       { }
21826
21827       ~__moneypunct_cache();
21828
21829       void
21830       _M_cache(const locale& __loc);
21831
21832     private:
21833       __moneypunct_cache&
21834       operator=(const __moneypunct_cache&);
21835
21836       explicit
21837       __moneypunct_cache(const __moneypunct_cache&);
21838     };
21839
21840   template<typename _CharT, bool _Intl>
21841     __moneypunct_cache<_CharT, _Intl>::~__moneypunct_cache()
21842     {
21843       if (_M_allocated)
21844  {
21845    delete [] _M_grouping;
21846    delete [] _M_curr_symbol;
21847    delete [] _M_positive_sign;
21848    delete [] _M_negative_sign;
21849  }
21850     }
21851
21852
21853
21854
21855
21856
21857
21858   template<typename _CharT, bool _Intl>
21859     class moneypunct : public locale::facet, public money_base
21860     {
21861     public:
21862
21863
21864
21865       typedef _CharT char_type;
21866       typedef basic_string<_CharT> string_type;
21867
21868       typedef __moneypunct_cache<_CharT, _Intl> __cache_type;
21869
21870     private:
21871       __cache_type* _M_data;
21872
21873     public:
21874
21875
21876       static const bool intl = _Intl;
21877
21878       static locale::id id;
21879 # 3568 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21880       explicit
21881       moneypunct(size_t __refs = 0) : facet(__refs), _M_data(__null)
21882       { _M_initialize_moneypunct(); }
21883 # 3580 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21884       explicit
21885       moneypunct(__cache_type* __cache, size_t __refs = 0)
21886       : facet(__refs), _M_data(__cache)
21887       { _M_initialize_moneypunct(); }
21888 # 3595 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21889       explicit
21890       moneypunct(__c_locale __cloc, const char* __s, size_t __refs = 0)
21891       : facet(__refs), _M_data(__null)
21892       { _M_initialize_moneypunct(__cloc, __s); }
21893 # 3609 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21894       char_type
21895       decimal_point() const
21896       { return this->do_decimal_point(); }
21897 # 3622 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21898       char_type
21899       thousands_sep() const
21900       { return this->do_thousands_sep(); }
21901 # 3651 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21902       string
21903       grouping() const
21904       { return this->do_grouping(); }
21905 # 3664 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21906       string_type
21907       curr_symbol() const
21908       { return this->do_curr_symbol(); }
21909 # 3681 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21910       string_type
21911       positive_sign() const
21912       { return this->do_positive_sign(); }
21913 # 3698 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21914       string_type
21915       negative_sign() const
21916       { return this->do_negative_sign(); }
21917 # 3714 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21918       int
21919       frac_digits() const
21920       { return this->do_frac_digits(); }
21921 # 3749 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21922       pattern
21923       pos_format() const
21924       { return this->do_pos_format(); }
21925
21926       pattern
21927       neg_format() const
21928       { return this->do_neg_format(); }
21929
21930
21931     protected:
21932
21933       virtual
21934       ~moneypunct();
21935 # 3771 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21936       virtual char_type
21937       do_decimal_point() const
21938       { return _M_data->_M_decimal_point; }
21939 # 3783 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21940       virtual char_type
21941       do_thousands_sep() const
21942       { return _M_data->_M_thousands_sep; }
21943 # 3796 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21944       virtual string
21945       do_grouping() const
21946       { return _M_data->_M_grouping; }
21947 # 3809 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21948       virtual string_type
21949       do_curr_symbol() const
21950       { return _M_data->_M_curr_symbol; }
21951 # 3822 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21952       virtual string_type
21953       do_positive_sign() const
21954       { return _M_data->_M_positive_sign; }
21955 # 3835 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21956       virtual string_type
21957       do_negative_sign() const
21958       { return _M_data->_M_negative_sign; }
21959 # 3849 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21960       virtual int
21961       do_frac_digits() const
21962       { return _M_data->_M_frac_digits; }
21963 # 3863 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21964       virtual pattern
21965       do_pos_format() const
21966       { return _M_data->_M_pos_format; }
21967 # 3877 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21968       virtual pattern
21969       do_neg_format() const
21970       { return _M_data->_M_neg_format; }
21971
21972
21973        void
21974        _M_initialize_moneypunct(__c_locale __cloc = __null,
21975     const char* __name = __null);
21976     };
21977
21978   template<typename _CharT, bool _Intl>
21979     locale::id moneypunct<_CharT, _Intl>::id;
21980
21981   template<typename _CharT, bool _Intl>
21982     const bool moneypunct<_CharT, _Intl>::intl;
21983
21984   template<>
21985     moneypunct<char, true>::~moneypunct();
21986
21987   template<>
21988     moneypunct<char, false>::~moneypunct();
21989
21990   template<>
21991     void
21992     moneypunct<char, true>::_M_initialize_moneypunct(__c_locale, const char*);
21993
21994   template<>
21995     void
21996     moneypunct<char, false>::_M_initialize_moneypunct(__c_locale, const char*);
21997 # 3926 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
21998   template<typename _CharT, bool _Intl>
21999     class moneypunct_byname : public moneypunct<_CharT, _Intl>
22000     {
22001     public:
22002       typedef _CharT char_type;
22003       typedef basic_string<_CharT> string_type;
22004
22005       static const bool intl = _Intl;
22006
22007       explicit
22008       moneypunct_byname(const char* __s, size_t __refs = 0)
22009       : moneypunct<_CharT, _Intl>(__refs)
22010       {
22011  if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
22012    {
22013      __c_locale __tmp;
22014      this->_S_create_c_locale(__tmp, __s);
22015      this->_M_initialize_moneypunct(__tmp);
22016      this->_S_destroy_c_locale(__tmp);
22017    }
22018       }
22019
22020     protected:
22021       virtual
22022       ~moneypunct_byname() { }
22023     };
22024
22025   template<typename _CharT, bool _Intl>
22026     const bool moneypunct_byname<_CharT, _Intl>::intl;
22027 # 3968 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22028   template<typename _CharT, typename _InIter>
22029     class money_get : public locale::facet
22030     {
22031     public:
22032
22033
22034
22035       typedef _CharT char_type;
22036       typedef _InIter iter_type;
22037       typedef basic_string<_CharT> string_type;
22038
22039
22040
22041       static locale::id id;
22042 # 3990 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22043       explicit
22044       money_get(size_t __refs = 0) : facet(__refs) { }
22045 # 4020 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22046       iter_type
22047       get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
22048    ios_base::iostate& __err, long double& __units) const
22049       { return this->do_get(__s, __end, __intl, __io, __err, __units); }
22050 # 4050 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22051       iter_type
22052       get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
22053    ios_base::iostate& __err, string_type& __digits) const
22054       { return this->do_get(__s, __end, __intl, __io, __err, __digits); }
22055
22056     protected:
22057
22058       virtual
22059       ~money_get() { }
22060 # 4067 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22061       virtual iter_type
22062       do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
22063       ios_base::iostate& __err, long double& __units) const;
22064 # 4078 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22065       virtual iter_type
22066       do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
22067       ios_base::iostate& __err, string_type& __digits) const;
22068
22069       template<bool _Intl>
22070         iter_type
22071         _M_extract(iter_type __s, iter_type __end, ios_base& __io,
22072      ios_base::iostate& __err, string& __digits) const;
22073     };
22074
22075   template<typename _CharT, typename _InIter>
22076     locale::id money_get<_CharT, _InIter>::id;
22077 # 4103 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22078   template<typename _CharT, typename _OutIter>
22079     class money_put : public locale::facet
22080     {
22081     public:
22082
22083
22084       typedef _CharT char_type;
22085       typedef _OutIter iter_type;
22086       typedef basic_string<_CharT> string_type;
22087
22088
22089
22090       static locale::id id;
22091 # 4124 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22092       explicit
22093       money_put(size_t __refs = 0) : facet(__refs) { }
22094 # 4144 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22095       iter_type
22096       put(iter_type __s, bool __intl, ios_base& __io,
22097    char_type __fill, long double __units) const
22098       { return this->do_put(__s, __intl, __io, __fill, __units); }
22099 # 4166 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22100       iter_type
22101       put(iter_type __s, bool __intl, ios_base& __io,
22102    char_type __fill, const string_type& __digits) const
22103       { return this->do_put(__s, __intl, __io, __fill, __digits); }
22104
22105     protected:
22106
22107       virtual
22108       ~money_put() { }
22109 # 4194 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22110       virtual iter_type
22111       do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
22112       long double __units) const;
22113 # 4216 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22114       virtual iter_type
22115       do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
22116       const string_type& __digits) const;
22117
22118       template<bool _Intl>
22119         iter_type
22120         _M_insert(iter_type __s, ios_base& __io, char_type __fill,
22121     const string_type& __digits) const;
22122     };
22123
22124   template<typename _CharT, typename _OutIter>
22125     locale::id money_put<_CharT, _OutIter>::id;
22126
22127
22128
22129
22130   struct messages_base
22131   {
22132     typedef int catalog;
22133   };
22134 # 4257 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22135   template<typename _CharT>
22136     class messages : public locale::facet, public messages_base
22137     {
22138     public:
22139
22140
22141
22142       typedef _CharT char_type;
22143       typedef basic_string<_CharT> string_type;
22144
22145
22146     protected:
22147
22148
22149       __c_locale _M_c_locale_messages;
22150       const char* _M_name_messages;
22151
22152     public:
22153
22154       static locale::id id;
22155 # 4285 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22156       explicit
22157       messages(size_t __refs = 0);
22158 # 4299 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22159       explicit
22160       messages(__c_locale __cloc, const char* __s, size_t __refs = 0);
22161 # 4312 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22162       catalog
22163       open(const basic_string<char>& __s, const locale& __loc) const
22164       { return this->do_open(__s, __loc); }
22165 # 4330 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22166       catalog
22167       open(const basic_string<char>&, const locale&, const char*) const;
22168 # 4348 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22169       string_type
22170       get(catalog __c, int __set, int __msgid, const string_type& __s) const
22171       { return this->do_get(__c, __set, __msgid, __s); }
22172 # 4359 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22173       void
22174       close(catalog __c) const
22175       { return this->do_close(__c); }
22176
22177     protected:
22178
22179       virtual
22180       ~messages();
22181 # 4379 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22182       virtual catalog
22183       do_open(const basic_string<char>&, const locale&) const;
22184 # 4398 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22185       virtual string_type
22186       do_get(catalog, int, int, const string_type& __dfault) const;
22187
22188
22189
22190
22191
22192
22193       virtual void
22194       do_close(catalog) const;
22195
22196
22197       char*
22198       _M_convert_to_char(const string_type& __msg) const
22199       {
22200
22201  return reinterpret_cast<char*>(const_cast<_CharT*>(__msg.c_str()));
22202       }
22203
22204
22205       string_type
22206       _M_convert_from_char(char*) const
22207       {
22208 # 4455 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22209  return string_type();
22210       }
22211      };
22212
22213   template<typename _CharT>
22214     locale::id messages<_CharT>::id;
22215
22216
22217   template<>
22218     string
22219     messages<char>::do_get(catalog, int, int, const string&) const;
22220 # 4474 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22221    template<typename _CharT>
22222     class messages_byname : public messages<_CharT>
22223     {
22224     public:
22225       typedef _CharT char_type;
22226       typedef basic_string<_CharT> string_type;
22227
22228       explicit
22229       messages_byname(const char* __s, size_t __refs = 0);
22230
22231     protected:
22232       virtual
22233       ~messages_byname()
22234       { }
22235     };
22236
22237
22238 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/messages_members.h" 1 3
22239 # 37 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bfin-linux-uclibc/bits/messages_members.h" 3
22240   template<typename _CharT>
22241      messages<_CharT>::messages(size_t __refs)
22242      : facet(__refs)
22243      { _M_c_locale_messages = _S_get_c_locale(); }
22244
22245   template<typename _CharT>
22246      messages<_CharT>::messages(__c_locale, const char*, size_t __refs)
22247      : facet(__refs)
22248      { _M_c_locale_messages = _S_get_c_locale(); }
22249
22250   template<typename _CharT>
22251     typename messages<_CharT>::catalog
22252     messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
22253       const char*) const
22254     { return this->do_open(__s, __loc); }
22255
22256
22257   template<typename _CharT>
22258     messages<_CharT>::~messages()
22259     { _S_destroy_c_locale(_M_c_locale_messages); }
22260
22261   template<typename _CharT>
22262     typename messages<_CharT>::catalog
22263     messages<_CharT>::do_open(const basic_string<char>&, const locale&) const
22264     { return 0; }
22265
22266   template<typename _CharT>
22267     typename messages<_CharT>::string_type
22268     messages<_CharT>::do_get(catalog, int, int,
22269         const string_type& __dfault) const
22270     { return __dfault; }
22271
22272   template<typename _CharT>
22273     void
22274     messages<_CharT>::do_close(catalog) const
22275     { }
22276
22277
22278    template<typename _CharT>
22279      messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
22280      : messages<_CharT>(__refs)
22281      {
22282  if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
22283    {
22284      this->_S_destroy_c_locale(this->_M_c_locale_messages);
22285      this->_S_create_c_locale(this->_M_c_locale_messages, __s);
22286    }
22287      }
22288 # 4492 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 2 3
22289 # 4500 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.h" 3
22290   template<typename _CharT>
22291     inline bool
22292     isspace(_CharT __c, const locale& __loc)
22293     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); }
22294
22295
22296   template<typename _CharT>
22297     inline bool
22298     isprint(_CharT __c, const locale& __loc)
22299     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); }
22300
22301
22302   template<typename _CharT>
22303     inline bool
22304     iscntrl(_CharT __c, const locale& __loc)
22305     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); }
22306
22307
22308   template<typename _CharT>
22309     inline bool
22310     isupper(_CharT __c, const locale& __loc)
22311     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); }
22312
22313
22314   template<typename _CharT>
22315     inline bool
22316     islower(_CharT __c, const locale& __loc)
22317     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); }
22318
22319
22320   template<typename _CharT>
22321     inline bool
22322     isalpha(_CharT __c, const locale& __loc)
22323     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); }
22324
22325
22326   template<typename _CharT>
22327     inline bool
22328     isdigit(_CharT __c, const locale& __loc)
22329     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); }
22330
22331
22332   template<typename _CharT>
22333     inline bool
22334     ispunct(_CharT __c, const locale& __loc)
22335     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); }
22336
22337
22338   template<typename _CharT>
22339     inline bool
22340     isxdigit(_CharT __c, const locale& __loc)
22341     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); }
22342
22343
22344   template<typename _CharT>
22345     inline bool
22346     isalnum(_CharT __c, const locale& __loc)
22347     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); }
22348
22349
22350   template<typename _CharT>
22351     inline bool
22352     isgraph(_CharT __c, const locale& __loc)
22353     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); }
22354
22355
22356   template<typename _CharT>
22357     inline _CharT
22358     toupper(_CharT __c, const locale& __loc)
22359     { return use_facet<ctype<_CharT> >(__loc).toupper(__c); }
22360
22361
22362   template<typename _CharT>
22363     inline _CharT
22364     tolower(_CharT __c, const locale& __loc)
22365     { return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
22366 }
22367 # 46 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 2 3
22368 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 1 3
22369 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
22370        
22371 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
22372
22373
22374 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/typeinfo" 1 3
22375 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/typeinfo" 3
22376 #pragma GCC visibility push(default)
22377
22378 extern "C++" {
22379
22380 namespace __cxxabiv1
22381 {
22382   class __class_type_info;
22383 }
22384 # 59 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/typeinfo" 3
22385 namespace std
22386 {
22387
22388
22389
22390
22391
22392
22393   class type_info
22394   {
22395   public:
22396
22397
22398
22399
22400     virtual ~type_info();
22401
22402   private:
22403
22404     type_info& operator=(const type_info&);
22405     type_info(const type_info&);
22406
22407   protected:
22408     const char *__name;
22409
22410   protected:
22411     explicit type_info(const char *__n): __name(__n) { }
22412
22413   public:
22414
22415
22416
22417     const char* name() const
22418     { return __name; }
22419 # 105 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/typeinfo" 3
22420     bool before(const type_info& __arg) const
22421     { return __name < __arg.__name; }
22422     bool operator==(const type_info& __arg) const
22423     { return __name == __arg.__name; }
22424
22425     bool operator!=(const type_info& __arg) const
22426     { return !operator==(__arg); }
22427
22428
22429   public:
22430
22431     virtual bool __is_pointer_p() const;
22432
22433     virtual bool __is_function_p() const;
22434
22435
22436
22437
22438
22439
22440
22441     virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
22442        unsigned __outer) const;
22443
22444
22445     virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
22446         void **__obj_ptr) const;
22447   };
22448
22449
22450
22451
22452
22453
22454   class bad_cast : public exception
22455   {
22456   public:
22457     bad_cast() throw() { }
22458
22459
22460     virtual ~bad_cast() throw();
22461   };
22462
22463
22464   class bad_typeid : public exception
22465   {
22466   public:
22467     bad_typeid () throw() { }
22468
22469
22470     virtual ~bad_typeid() throw();
22471   };
22472 }
22473
22474 #pragma GCC visibility pop
22475
22476 }
22477 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 2 3
22478 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf_iterator.h" 1 3
22479 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf_iterator.h" 3
22480        
22481 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/streambuf_iterator.h" 3
22482
22483
22484
22485
22486
22487
22488 namespace std
22489 {
22490
22491
22492   template<typename _CharT, typename _Traits>
22493     class istreambuf_iterator
22494     : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type,
22495         _CharT*, _CharT&>
22496     {
22497     public:
22498
22499
22500
22501       typedef _CharT char_type;
22502       typedef _Traits traits_type;
22503       typedef typename _Traits::int_type int_type;
22504       typedef basic_streambuf<_CharT, _Traits> streambuf_type;
22505       typedef basic_istream<_CharT, _Traits> istream_type;
22506
22507
22508     private:
22509
22510
22511
22512
22513
22514
22515
22516       mutable streambuf_type* _M_sbuf;
22517       mutable int_type _M_c;
22518
22519     public:
22520
22521       istreambuf_iterator() throw()
22522       : _M_sbuf(0), _M_c(traits_type::eof()) { }
22523
22524
22525       istreambuf_iterator(istream_type& __s) throw()
22526       : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { }
22527
22528
22529       istreambuf_iterator(streambuf_type* __s) throw()
22530       : _M_sbuf(__s), _M_c(traits_type::eof()) { }
22531
22532
22533
22534
22535       char_type
22536       operator*() const
22537       {
22538
22539
22540
22541
22542
22543
22544
22545  return traits_type::to_char_type(_M_get());
22546       }
22547
22548
22549       istreambuf_iterator&
22550       operator++()
22551       {
22552  ;
22553
22554
22555  if (_M_sbuf)
22556    {
22557      _M_sbuf->sbumpc();
22558      _M_c = traits_type::eof();
22559    }
22560  return *this;
22561       }
22562
22563
22564       istreambuf_iterator
22565       operator++(int)
22566       {
22567  ;
22568
22569
22570
22571  istreambuf_iterator __old = *this;
22572  if (_M_sbuf)
22573    {
22574      __old._M_c = _M_sbuf->sbumpc();
22575      _M_c = traits_type::eof();
22576    }
22577  return __old;
22578       }
22579
22580
22581
22582
22583
22584       bool
22585       equal(const istreambuf_iterator& __b) const
22586       {
22587  const bool __thiseof = _M_at_eof();
22588  const bool __beof = __b._M_at_eof();
22589  return (__thiseof && __beof || (!__thiseof && !__beof));
22590       }
22591
22592     private:
22593       int_type
22594       _M_get() const
22595       {
22596  const int_type __eof = traits_type::eof();
22597  int_type __ret = __eof;
22598  if (_M_sbuf)
22599    {
22600      if (!traits_type::eq_int_type(_M_c, __eof))
22601        __ret = _M_c;
22602      else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()),
22603             __eof))
22604        _M_c = __ret;
22605      else
22606        _M_sbuf = 0;
22607    }
22608  return __ret;
22609       }
22610
22611       bool
22612       _M_at_eof() const
22613       {
22614  const int_type __eof = traits_type::eof();
22615  return traits_type::eq_int_type(_M_get(), __eof);
22616       }
22617     };
22618
22619   template<typename _CharT, typename _Traits>
22620     inline bool
22621     operator==(const istreambuf_iterator<_CharT, _Traits>& __a,
22622         const istreambuf_iterator<_CharT, _Traits>& __b)
22623     { return __a.equal(__b); }
22624
22625   template<typename _CharT, typename _Traits>
22626     inline bool
22627     operator!=(const istreambuf_iterator<_CharT, _Traits>& __a,
22628         const istreambuf_iterator<_CharT, _Traits>& __b)
22629     { return !__a.equal(__b); }
22630
22631
22632   template<typename _CharT, typename _Traits>
22633     class ostreambuf_iterator
22634     : public iterator<output_iterator_tag, void, void, void, void>
22635     {
22636     public:
22637
22638
22639
22640       typedef _CharT char_type;
22641       typedef _Traits traits_type;
22642       typedef basic_streambuf<_CharT, _Traits> streambuf_type;
22643       typedef basic_ostream<_CharT, _Traits> ostream_type;
22644
22645
22646     private:
22647       streambuf_type* _M_sbuf;
22648       bool _M_failed;
22649
22650     public:
22651
22652       ostreambuf_iterator(ostream_type& __s) throw ()
22653       : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
22654
22655
22656       ostreambuf_iterator(streambuf_type* __s) throw ()
22657       : _M_sbuf(__s), _M_failed(!_M_sbuf) { }
22658
22659
22660       ostreambuf_iterator&
22661       operator=(_CharT __c)
22662       {
22663  if (!_M_failed &&
22664      _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
22665    _M_failed = true;
22666  return *this;
22667       }
22668
22669
22670       ostreambuf_iterator&
22671       operator*()
22672       { return *this; }
22673
22674
22675       ostreambuf_iterator&
22676       operator++(int)
22677       { return *this; }
22678
22679
22680       ostreambuf_iterator&
22681       operator++()
22682       { return *this; }
22683
22684
22685       bool
22686       failed() const throw()
22687       { return _M_failed; }
22688
22689       ostreambuf_iterator&
22690       _M_put(const _CharT* __ws, streamsize __len)
22691       {
22692  if (__builtin_expect(!_M_failed, true)
22693      && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len,
22694     false))
22695    _M_failed = true;
22696  return *this;
22697       }
22698     };
22699 }
22700 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 2 3
22701
22702 namespace std
22703 {
22704   template<typename _Facet>
22705     locale
22706     locale::combine(const locale& __other) const
22707     {
22708       _Impl* __tmp = new _Impl(*_M_impl, 1);
22709       try
22710  {
22711    __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
22712  }
22713       catch(...)
22714  {
22715    __tmp->_M_remove_reference();
22716    throw;
22717  }
22718       return locale(__tmp);
22719     }
22720
22721   template<typename _CharT, typename _Traits, typename _Alloc>
22722     bool
22723     locale::operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1,
22724                        const basic_string<_CharT, _Traits, _Alloc>& __s2) const
22725     {
22726       typedef std::collate<_CharT> __collate_type;
22727       const __collate_type& __collate = use_facet<__collate_type>(*this);
22728       return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),
22729     __s2.data(), __s2.data() + __s2.length()) < 0);
22730     }
22731 # 86 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
22732   template<typename _Facet>
22733     inline bool
22734     has_facet(const locale& __loc) throw()
22735     {
22736       const size_t __i = _Facet::id._M_id();
22737       const locale::facet** __facets = __loc._M_impl->_M_facets;
22738       return (__i < __loc._M_impl->_M_facets_size && __facets[__i]);
22739     }
22740 # 108 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
22741   template<typename _Facet>
22742     inline const _Facet&
22743     use_facet(const locale& __loc)
22744     {
22745       const size_t __i = _Facet::id._M_id();
22746       const locale::facet** __facets = __loc._M_impl->_M_facets;
22747       if (!(__i < __loc._M_impl->_M_facets_size && __facets[__i]))
22748         __throw_bad_cast();
22749       return static_cast<const _Facet&>(*__facets[__i]);
22750     }
22751
22752
22753
22754   template<typename _Facet>
22755     struct __use_cache
22756     {
22757       const _Facet*
22758       operator() (const locale& __loc) const;
22759     };
22760
22761
22762   template<typename _CharT>
22763     struct __use_cache<__numpunct_cache<_CharT> >
22764     {
22765       const __numpunct_cache<_CharT>*
22766       operator() (const locale& __loc) const
22767       {
22768  const size_t __i = numpunct<_CharT>::id._M_id();
22769  const locale::facet** __caches = __loc._M_impl->_M_caches;
22770  if (!__caches[__i])
22771    {
22772      __numpunct_cache<_CharT>* __tmp = __null;
22773      try
22774        {
22775   __tmp = new __numpunct_cache<_CharT>;
22776   __tmp->_M_cache(__loc);
22777        }
22778      catch(...)
22779        {
22780   delete __tmp;
22781   throw;
22782        }
22783      __loc._M_impl->_M_install_cache(__tmp, __i);
22784    }
22785  return static_cast<const __numpunct_cache<_CharT>*>(__caches[__i]);
22786       }
22787     };
22788
22789   template<typename _CharT, bool _Intl>
22790     struct __use_cache<__moneypunct_cache<_CharT, _Intl> >
22791     {
22792       const __moneypunct_cache<_CharT, _Intl>*
22793       operator() (const locale& __loc) const
22794       {
22795  const size_t __i = moneypunct<_CharT, _Intl>::id._M_id();
22796  const locale::facet** __caches = __loc._M_impl->_M_caches;
22797  if (!__caches[__i])
22798    {
22799      __moneypunct_cache<_CharT, _Intl>* __tmp = __null;
22800      try
22801        {
22802   __tmp = new __moneypunct_cache<_CharT, _Intl>;
22803   __tmp->_M_cache(__loc);
22804        }
22805      catch(...)
22806        {
22807   delete __tmp;
22808   throw;
22809        }
22810      __loc._M_impl->_M_install_cache(__tmp, __i);
22811    }
22812  return static_cast<
22813    const __moneypunct_cache<_CharT, _Intl>*>(__caches[__i]);
22814       }
22815     };
22816
22817   template<typename _CharT>
22818     void
22819     __numpunct_cache<_CharT>::_M_cache(const locale& __loc)
22820     {
22821       _M_allocated = true;
22822
22823       const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
22824
22825       _M_grouping_size = __np.grouping().size();
22826       char* __grouping = new char[_M_grouping_size];
22827       __np.grouping().copy(__grouping, _M_grouping_size);
22828       _M_grouping = __grouping;
22829       _M_use_grouping = (_M_grouping_size
22830     && static_cast<signed char>(__np.grouping()[0]) > 0);
22831
22832       _M_truename_size = __np.truename().size();
22833       _CharT* __truename = new _CharT[_M_truename_size];
22834       __np.truename().copy(__truename, _M_truename_size);
22835       _M_truename = __truename;
22836
22837       _M_falsename_size = __np.falsename().size();
22838       _CharT* __falsename = new _CharT[_M_falsename_size];
22839       __np.falsename().copy(__falsename, _M_falsename_size);
22840       _M_falsename = __falsename;
22841
22842       _M_decimal_point = __np.decimal_point();
22843       _M_thousands_sep = __np.thousands_sep();
22844
22845       const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
22846       __ct.widen(__num_base::_S_atoms_out,
22847    __num_base::_S_atoms_out + __num_base::_S_oend, _M_atoms_out);
22848       __ct.widen(__num_base::_S_atoms_in,
22849    __num_base::_S_atoms_in + __num_base::_S_iend, _M_atoms_in);
22850     }
22851
22852   template<typename _CharT, bool _Intl>
22853     void
22854     __moneypunct_cache<_CharT, _Intl>::_M_cache(const locale& __loc)
22855     {
22856       _M_allocated = true;
22857
22858       const moneypunct<_CharT, _Intl>& __mp =
22859  use_facet<moneypunct<_CharT, _Intl> >(__loc);
22860
22861       _M_grouping_size = __mp.grouping().size();
22862       char* __grouping = new char[_M_grouping_size];
22863       __mp.grouping().copy(__grouping, _M_grouping_size);
22864       _M_grouping = __grouping;
22865       _M_use_grouping = (_M_grouping_size
22866     && static_cast<signed char>(__mp.grouping()[0]) > 0);
22867
22868       _M_decimal_point = __mp.decimal_point();
22869       _M_thousands_sep = __mp.thousands_sep();
22870       _M_frac_digits = __mp.frac_digits();
22871
22872       _M_curr_symbol_size = __mp.curr_symbol().size();
22873       _CharT* __curr_symbol = new _CharT[_M_curr_symbol_size];
22874       __mp.curr_symbol().copy(__curr_symbol, _M_curr_symbol_size);
22875       _M_curr_symbol = __curr_symbol;
22876
22877       _M_positive_sign_size = __mp.positive_sign().size();
22878       _CharT* __positive_sign = new _CharT[_M_positive_sign_size];
22879       __mp.positive_sign().copy(__positive_sign, _M_positive_sign_size);
22880       _M_positive_sign = __positive_sign;
22881
22882       _M_negative_sign_size = __mp.negative_sign().size();
22883       _CharT* __negative_sign = new _CharT[_M_negative_sign_size];
22884       __mp.negative_sign().copy(__negative_sign, _M_negative_sign_size);
22885       _M_negative_sign = __negative_sign;
22886
22887       _M_pos_format = __mp.pos_format();
22888       _M_neg_format = __mp.neg_format();
22889
22890       const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
22891       __ct.widen(money_base::_S_atoms,
22892    money_base::_S_atoms + money_base::_S_end, _M_atoms);
22893     }
22894 # 271 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
22895   static bool
22896   __verify_grouping(const char* __grouping, size_t __grouping_size,
22897       const string& __grouping_tmp);
22898
22899   template<typename _CharT, typename _InIter>
22900     _InIter
22901     num_get<_CharT, _InIter>::
22902     _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,
22903        ios_base::iostate& __err, string& __xtrc) const
22904     {
22905       typedef char_traits<_CharT> __traits_type;
22906       typedef __numpunct_cache<_CharT> __cache_type;
22907       __use_cache<__cache_type> __uc;
22908       const locale& __loc = __io._M_getloc();
22909       const __cache_type* __lc = __uc(__loc);
22910       const _CharT* __lit = __lc->_M_atoms_in;
22911       char_type __c = char_type();
22912
22913
22914       bool __testeof = __beg == __end;
22915
22916
22917       if (!__testeof)
22918  {
22919    __c = *__beg;
22920    const bool __plus = __c == __lit[__num_base::_S_iplus];
22921    if ((__plus || __c == __lit[__num_base::_S_iminus])
22922        && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
22923        && !(__c == __lc->_M_decimal_point))
22924      {
22925        __xtrc += __plus ? '+' : '-';
22926        if (++__beg != __end)
22927   __c = *__beg;
22928        else
22929   __testeof = true;
22930      }
22931  }
22932
22933
22934       bool __found_mantissa = false;
22935       int __sep_pos = 0;
22936       while (!__testeof)
22937  {
22938    if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep
22939        || __c == __lc->_M_decimal_point)
22940      break;
22941    else if (__c == __lit[__num_base::_S_izero])
22942      {
22943        if (!__found_mantissa)
22944   {
22945     __xtrc += '0';
22946     __found_mantissa = true;
22947   }
22948        ++__sep_pos;
22949
22950        if (++__beg != __end)
22951   __c = *__beg;
22952        else
22953   __testeof = true;
22954      }
22955    else
22956      break;
22957  }
22958
22959
22960       bool __found_dec = false;
22961       bool __found_sci = false;
22962       string __found_grouping;
22963       if (__lc->_M_use_grouping)
22964  __found_grouping.reserve(32);
22965       const char_type* __q;
22966       const char_type* __lit_zero = __lit + __num_base::_S_izero;
22967       while (!__testeof)
22968         {
22969
22970
22971           if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
22972      {
22973        if (!__found_dec && !__found_sci)
22974   {
22975
22976
22977     if (__sep_pos)
22978       {
22979         __found_grouping += static_cast<char>(__sep_pos);
22980         __sep_pos = 0;
22981       }
22982     else
22983       {
22984
22985
22986         __xtrc.clear();
22987         break;
22988       }
22989   }
22990        else
22991   break;
22992             }
22993    else if (__c == __lc->_M_decimal_point)
22994      {
22995        if (!__found_dec && !__found_sci)
22996   {
22997
22998
22999
23000     if (__found_grouping.size())
23001       __found_grouping += static_cast<char>(__sep_pos);
23002     __xtrc += '.';
23003     __found_dec = true;
23004   }
23005        else
23006   break;
23007      }
23008           else if ((__q = __traits_type::find(__lit_zero, 10, __c)))
23009      {
23010        __xtrc += __num_base::_S_atoms_in[__q - __lit];
23011        __found_mantissa = true;
23012        ++__sep_pos;
23013      }
23014    else if ((__c == __lit[__num_base::_S_ie]
23015       || __c == __lit[__num_base::_S_iE])
23016      && !__found_sci && __found_mantissa)
23017      {
23018
23019        if (__found_grouping.size() && !__found_dec)
23020   __found_grouping += static_cast<char>(__sep_pos);
23021        __xtrc += 'e';
23022        __found_sci = true;
23023
23024
23025        if (++__beg != __end)
23026   {
23027     __c = *__beg;
23028     const bool __plus = __c == __lit[__num_base::_S_iplus];
23029     if ((__plus || __c == __lit[__num_base::_S_iminus])
23030         && !(__lc->_M_use_grouping
23031       && __c == __lc->_M_thousands_sep)
23032         && !(__c == __lc->_M_decimal_point))
23033       __xtrc += __plus ? '+' : '-';
23034     else
23035       continue;
23036   }
23037        else
23038   {
23039     __testeof = true;
23040     break;
23041   }
23042      }
23043    else
23044
23045      break;
23046
23047    if (++__beg != __end)
23048      __c = *__beg;
23049    else
23050      __testeof = true;
23051         }
23052
23053
23054
23055       if (__found_grouping.size())
23056         {
23057
23058    if (!__found_dec && !__found_sci)
23059      __found_grouping += static_cast<char>(__sep_pos);
23060
23061           if (!std::__verify_grouping(__lc->_M_grouping,
23062           __lc->_M_grouping_size,
23063           __found_grouping))
23064      __err |= ios_base::failbit;
23065         }
23066
23067
23068       if (__testeof)
23069         __err |= ios_base::eofbit;
23070       return __beg;
23071     }
23072
23073   template<typename _ValueT>
23074     struct __to_unsigned_type
23075     { typedef _ValueT __type; };
23076
23077   template<>
23078     struct __to_unsigned_type<long>
23079     { typedef unsigned long __type; };
23080
23081
23082   template<>
23083     struct __to_unsigned_type<long long>
23084     { typedef unsigned long long __type; };
23085
23086
23087   template<typename _CharT, typename _InIter>
23088     template<typename _ValueT>
23089       _InIter
23090       num_get<_CharT, _InIter>::
23091       _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,
23092        ios_base::iostate& __err, _ValueT& __v) const
23093       {
23094         typedef char_traits<_CharT> __traits_type;
23095  typedef typename __to_unsigned_type<_ValueT>::__type __unsigned_type;
23096  typedef __numpunct_cache<_CharT> __cache_type;
23097  __use_cache<__cache_type> __uc;
23098  const locale& __loc = __io._M_getloc();
23099  const __cache_type* __lc = __uc(__loc);
23100  const _CharT* __lit = __lc->_M_atoms_in;
23101  char_type __c = char_type();
23102
23103
23104  const ios_base::fmtflags __basefield = __io.flags()
23105                                         & ios_base::basefield;
23106  const bool __oct = __basefield == ios_base::oct;
23107  int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10);
23108
23109
23110  bool __testeof = __beg == __end;
23111
23112
23113  bool __negative = false;
23114  if (!__testeof)
23115    {
23116      __c = *__beg;
23117      if (numeric_limits<_ValueT>::is_signed)
23118        __negative = __c == __lit[__num_base::_S_iminus];
23119      if ((__negative || __c == __lit[__num_base::_S_iplus])
23120   && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
23121   && !(__c == __lc->_M_decimal_point))
23122        {
23123   if (++__beg != __end)
23124     __c = *__beg;
23125   else
23126     __testeof = true;
23127        }
23128    }
23129
23130
23131
23132  bool __found_zero = false;
23133  int __sep_pos = 0;
23134  while (!__testeof)
23135    {
23136      if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep
23137   || __c == __lc->_M_decimal_point)
23138        break;
23139      else if (__c == __lit[__num_base::_S_izero]
23140        && (!__found_zero || __base == 10))
23141        {
23142   __found_zero = true;
23143   ++__sep_pos;
23144   if (__basefield == 0)
23145     __base = 8;
23146   if (__base == 8)
23147     __sep_pos = 0;
23148        }
23149      else if (__found_zero
23150        && (__c == __lit[__num_base::_S_ix]
23151     || __c == __lit[__num_base::_S_iX]))
23152        {
23153   if (__basefield == 0)
23154     __base = 16;
23155   if (__base == 16)
23156     {
23157       __found_zero = false;
23158       __sep_pos = 0;
23159     }
23160   else
23161     break;
23162        }
23163      else
23164        break;
23165
23166      if (++__beg != __end)
23167        {
23168   __c = *__beg;
23169   if (!__found_zero)
23170     break;
23171        }
23172      else
23173        __testeof = true;
23174    }
23175
23176
23177
23178  const size_t __len = (__base == 16 ? __num_base::_S_iend
23179          - __num_base::_S_izero : __base);
23180
23181
23182  string __found_grouping;
23183  if (__lc->_M_use_grouping)
23184    __found_grouping.reserve(32);
23185  bool __testfail = false;
23186  const __unsigned_type __max = __negative ?
23187    -numeric_limits<_ValueT>::min() : numeric_limits<_ValueT>::max();
23188  const __unsigned_type __smax = __max / __base;
23189  __unsigned_type __result = 0;
23190  const char_type* __q;
23191  const char_type* __lit_zero = __lit + __num_base::_S_izero;
23192  while (!__testeof)
23193    {
23194
23195
23196      if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
23197        {
23198
23199
23200   if (__sep_pos)
23201     {
23202       __found_grouping += static_cast<char>(__sep_pos);
23203       __sep_pos = 0;
23204     }
23205   else
23206     {
23207       __testfail = true;
23208       break;
23209     }
23210        }
23211      else if (__c == __lc->_M_decimal_point)
23212        break;
23213      else if ((__q = __traits_type::find(__lit_zero, __len, __c)))
23214        {
23215   int __digit = __q - __lit_zero;
23216   if (__digit > 15)
23217     __digit -= 6;
23218   if (__result > __smax)
23219     __testfail = true;
23220   else
23221     {
23222       __result *= __base;
23223       __testfail |= __result > __max - __digit;
23224       __result += __digit;
23225       ++__sep_pos;
23226     }
23227        }
23228      else
23229
23230        break;
23231
23232      if (++__beg != __end)
23233        __c = *__beg;
23234      else
23235        __testeof = true;
23236    }
23237
23238
23239
23240  if (__found_grouping.size())
23241    {
23242
23243      __found_grouping += static_cast<char>(__sep_pos);
23244
23245      if (!std::__verify_grouping(__lc->_M_grouping,
23246      __lc->_M_grouping_size,
23247      __found_grouping))
23248        __err |= ios_base::failbit;
23249    }
23250
23251  if (!__testfail && (__sep_pos || __found_zero
23252        || __found_grouping.size()))
23253    __v = __negative ? -__result : __result;
23254  else
23255    __err |= ios_base::failbit;
23256
23257  if (__testeof)
23258    __err |= ios_base::eofbit;
23259  return __beg;
23260       }
23261
23262
23263
23264   template<typename _CharT, typename _InIter>
23265     _InIter
23266     num_get<_CharT, _InIter>::
23267     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23268            ios_base::iostate& __err, bool& __v) const
23269     {
23270       if (!(__io.flags() & ios_base::boolalpha))
23271         {
23272
23273
23274
23275    long __l = -1;
23276           __beg = _M_extract_int(__beg, __end, __io, __err, __l);
23277    if (__l == 0 || __l == 1)
23278      __v = __l;
23279    else
23280             __err |= ios_base::failbit;
23281         }
23282       else
23283         {
23284
23285    typedef __numpunct_cache<_CharT> __cache_type;
23286    __use_cache<__cache_type> __uc;
23287    const locale& __loc = __io._M_getloc();
23288    const __cache_type* __lc = __uc(__loc);
23289
23290    bool __testf = true;
23291    bool __testt = true;
23292    size_t __n;
23293    bool __testeof = __beg == __end;
23294           for (__n = 0; !__testeof; ++__n)
23295             {
23296        const char_type __c = *__beg;
23297
23298        if (__testf)
23299   if (__n < __lc->_M_falsename_size)
23300     __testf = __c == __lc->_M_falsename[__n];
23301   else
23302     break;
23303
23304        if (__testt)
23305   if (__n < __lc->_M_truename_size)
23306     __testt = __c == __lc->_M_truename[__n];
23307   else
23308     break;
23309
23310        if (!__testf && !__testt)
23311   break;
23312
23313        if (++__beg == __end)
23314   __testeof = true;
23315             }
23316    if (__testf && __n == __lc->_M_falsename_size)
23317      __v = 0;
23318    else if (__testt && __n == __lc->_M_truename_size)
23319      __v = 1;
23320    else
23321      __err |= ios_base::failbit;
23322
23323           if (__testeof)
23324             __err |= ios_base::eofbit;
23325         }
23326       return __beg;
23327     }
23328
23329   template<typename _CharT, typename _InIter>
23330     _InIter
23331     num_get<_CharT, _InIter>::
23332     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23333            ios_base::iostate& __err, long& __v) const
23334     { return _M_extract_int(__beg, __end, __io, __err, __v); }
23335
23336   template<typename _CharT, typename _InIter>
23337     _InIter
23338     num_get<_CharT, _InIter>::
23339     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23340            ios_base::iostate& __err, unsigned short& __v) const
23341     { return _M_extract_int(__beg, __end, __io, __err, __v); }
23342
23343   template<typename _CharT, typename _InIter>
23344     _InIter
23345     num_get<_CharT, _InIter>::
23346     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23347            ios_base::iostate& __err, unsigned int& __v) const
23348     { return _M_extract_int(__beg, __end, __io, __err, __v); }
23349
23350   template<typename _CharT, typename _InIter>
23351     _InIter
23352     num_get<_CharT, _InIter>::
23353     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23354            ios_base::iostate& __err, unsigned long& __v) const
23355     { return _M_extract_int(__beg, __end, __io, __err, __v); }
23356
23357
23358   template<typename _CharT, typename _InIter>
23359     _InIter
23360     num_get<_CharT, _InIter>::
23361     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23362            ios_base::iostate& __err, long long& __v) const
23363     { return _M_extract_int(__beg, __end, __io, __err, __v); }
23364
23365   template<typename _CharT, typename _InIter>
23366     _InIter
23367     num_get<_CharT, _InIter>::
23368     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23369            ios_base::iostate& __err, unsigned long long& __v) const
23370     { return _M_extract_int(__beg, __end, __io, __err, __v); }
23371
23372
23373   template<typename _CharT, typename _InIter>
23374     _InIter
23375     num_get<_CharT, _InIter>::
23376     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23377     ios_base::iostate& __err, float& __v) const
23378     {
23379       string __xtrc;
23380       __xtrc.reserve(32);
23381       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
23382       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
23383       return __beg;
23384     }
23385
23386   template<typename _CharT, typename _InIter>
23387     _InIter
23388     num_get<_CharT, _InIter>::
23389     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23390            ios_base::iostate& __err, double& __v) const
23391     {
23392       string __xtrc;
23393       __xtrc.reserve(32);
23394       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
23395       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
23396       return __beg;
23397     }
23398
23399   template<typename _CharT, typename _InIter>
23400     _InIter
23401     num_get<_CharT, _InIter>::
23402     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23403            ios_base::iostate& __err, long double& __v) const
23404     {
23405       string __xtrc;
23406       __xtrc.reserve(32);
23407       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
23408       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
23409       return __beg;
23410     }
23411
23412   template<typename _CharT, typename _InIter>
23413     _InIter
23414     num_get<_CharT, _InIter>::
23415     do_get(iter_type __beg, iter_type __end, ios_base& __io,
23416            ios_base::iostate& __err, void*& __v) const
23417     {
23418
23419       typedef ios_base::fmtflags fmtflags;
23420       const fmtflags __fmt = __io.flags();
23421       __io.flags(__fmt & ~ios_base::basefield | ios_base::hex);
23422
23423       unsigned long __ul;
23424       __beg = _M_extract_int(__beg, __end, __io, __err, __ul);
23425
23426
23427       __io.flags(__fmt);
23428
23429       if (!(__err & ios_base::failbit))
23430  __v = reinterpret_cast<void*>(__ul);
23431       return __beg;
23432     }
23433
23434
23435
23436   template<typename _CharT, typename _OutIter>
23437     void
23438     num_put<_CharT, _OutIter>::
23439     _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
23440     _CharT* __new, const _CharT* __cs, int& __len) const
23441     {
23442
23443
23444       __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, __cs,
23445         __w, __len, true);
23446       __len = static_cast<int>(__w);
23447     }
23448
23449
23450
23451
23452   template<typename _CharT>
23453     inline int
23454     __int_to_char(_CharT* __bufend, long __v, const _CharT* __lit,
23455     ios_base::fmtflags __flags)
23456     {
23457       unsigned long __ul = __v;
23458       const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
23459       if (__builtin_expect(__basefield != ios_base::oct
23460       && __basefield != ios_base::hex, true))
23461  __ul = __v < 0 ? -__v : __ul;
23462       return __int_to_char(__bufend, __ul, __lit, __flags, false);
23463     }
23464
23465   template<typename _CharT>
23466     inline int
23467     __int_to_char(_CharT* __bufend, unsigned long __v, const _CharT* __lit,
23468     ios_base::fmtflags __flags)
23469     { return __int_to_char(__bufend, __v, __lit, __flags, false); }
23470
23471
23472   template<typename _CharT>
23473     inline int
23474     __int_to_char(_CharT* __bufend, long long __v, const _CharT* __lit,
23475     ios_base::fmtflags __flags)
23476     {
23477       unsigned long long __ull = __v;
23478       const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
23479       if (__builtin_expect(__basefield != ios_base::oct
23480       && __basefield != ios_base::hex, true))
23481  __ull = __v < 0 ? -__v : __ull;
23482       return __int_to_char(__bufend, __ull, __lit, __flags, false);
23483     }
23484
23485   template<typename _CharT>
23486     inline int
23487     __int_to_char(_CharT* __bufend, unsigned long long __v,
23488     const _CharT* __lit, ios_base::fmtflags __flags)
23489     { return __int_to_char(__bufend, __v, __lit, __flags, false); }
23490
23491
23492
23493   template<typename _CharT, typename _ValueT>
23494     int
23495     __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit,
23496     ios_base::fmtflags __flags, bool)
23497     {
23498       const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
23499       _CharT* __buf = __bufend;
23500
23501       if (__builtin_expect(__basefield != ios_base::oct
23502       && __basefield != ios_base::hex, true))
23503  {
23504
23505    do
23506      {
23507        *--__buf = __lit[(__v % 10) + __num_base::_S_odigits];
23508        __v /= 10;
23509      }
23510    while (__v != 0);
23511  }
23512       else if (__basefield == ios_base::oct)
23513  {
23514
23515    do
23516      {
23517        *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits];
23518        __v >>= 3;
23519      }
23520    while (__v != 0);
23521  }
23522       else
23523  {
23524
23525    const bool __uppercase = __flags & ios_base::uppercase;
23526    const int __case_offset = __uppercase ? __num_base::_S_oudigits
23527                                          : __num_base::_S_odigits;
23528    do
23529      {
23530        *--__buf = __lit[(__v & 0xf) + __case_offset];
23531        __v >>= 4;
23532      }
23533    while (__v != 0);
23534  }
23535       return __bufend - __buf;
23536     }
23537
23538   template<typename _CharT, typename _OutIter>
23539     void
23540     num_put<_CharT, _OutIter>::
23541     _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep,
23542    ios_base&, _CharT* __new, _CharT* __cs, int& __len) const
23543     {
23544       _CharT* __p = std::__add_grouping(__new, __sep, __grouping,
23545      __grouping_size, __cs, __cs + __len);
23546       __len = __p - __new;
23547     }
23548
23549   template<typename _CharT, typename _OutIter>
23550     template<typename _ValueT>
23551       _OutIter
23552       num_put<_CharT, _OutIter>::
23553       _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill,
23554       _ValueT __v) const
23555       {
23556  typedef __numpunct_cache<_CharT> __cache_type;
23557  __use_cache<__cache_type> __uc;
23558  const locale& __loc = __io._M_getloc();
23559  const __cache_type* __lc = __uc(__loc);
23560  const _CharT* __lit = __lc->_M_atoms_out;
23561  const ios_base::fmtflags __flags = __io.flags();
23562
23563
23564  const int __ilen = 5 * sizeof(_ValueT);
23565  _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23566             * __ilen));
23567
23568
23569
23570  int __len = __int_to_char(__cs + __ilen, __v, __lit, __flags);
23571  __cs += __ilen - __len;
23572
23573
23574  if (__lc->_M_use_grouping)
23575    {
23576
23577
23578      _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23579           * (__len + 1)
23580           * 2));
23581      _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size,
23582     __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len);
23583      __cs = __cs2 + 2;
23584    }
23585
23586
23587  const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
23588  if (__builtin_expect(__basefield != ios_base::oct
23589         && __basefield != ios_base::hex, true))
23590    {
23591
23592      if (__v > 0)
23593        {
23594   if (__flags & ios_base::showpos
23595       && numeric_limits<_ValueT>::is_signed)
23596     *--__cs = __lit[__num_base::_S_oplus], ++__len;
23597        }
23598      else if (__v)
23599        *--__cs = __lit[__num_base::_S_ominus], ++__len;
23600    }
23601  else if (__flags & ios_base::showbase && __v)
23602    {
23603      if (__basefield == ios_base::oct)
23604        *--__cs = __lit[__num_base::_S_odigits], ++__len;
23605      else
23606        {
23607
23608   const bool __uppercase = __flags & ios_base::uppercase;
23609   *--__cs = __lit[__num_base::_S_ox + __uppercase];
23610
23611   *--__cs = __lit[__num_base::_S_odigits];
23612   __len += 2;
23613        }
23614    }
23615
23616
23617  const streamsize __w = __io.width();
23618  if (__w > static_cast<streamsize>(__len))
23619    {
23620      _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23621           * __w));
23622      _M_pad(__fill, __w, __io, __cs3, __cs, __len);
23623      __cs = __cs3;
23624    }
23625  __io.width(0);
23626
23627
23628
23629  return std::__write(__s, __cs, __len);
23630       }
23631
23632   template<typename _CharT, typename _OutIter>
23633     void
23634     num_put<_CharT, _OutIter>::
23635     _M_group_float(const char* __grouping, size_t __grouping_size,
23636      _CharT __sep, const _CharT* __p, _CharT* __new,
23637      _CharT* __cs, int& __len) const
23638     {
23639
23640
23641
23642       const int __declen = __p ? __p - __cs : __len;
23643       _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping,
23644       __grouping_size,
23645       __cs, __cs + __declen);
23646
23647
23648       int __newlen = __p2 - __new;
23649       if (__p)
23650  {
23651    char_traits<_CharT>::copy(__p2, __p, __len - __declen);
23652    __newlen += __len - __declen;
23653  }
23654       __len = __newlen;
23655     }
23656 # 1043 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
23657   template<typename _CharT, typename _OutIter>
23658     template<typename _ValueT>
23659       _OutIter
23660       num_put<_CharT, _OutIter>::
23661       _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
23662          _ValueT __v) const
23663       {
23664  typedef __numpunct_cache<_CharT> __cache_type;
23665  __use_cache<__cache_type> __uc;
23666  const locale& __loc = __io._M_getloc();
23667  const __cache_type* __lc = __uc(__loc);
23668
23669
23670  streamsize __prec = __io.precision();
23671  if (__prec < static_cast<streamsize>(0))
23672    __prec = static_cast<streamsize>(6);
23673
23674  const int __max_digits = numeric_limits<_ValueT>::digits10;
23675
23676
23677  int __len;
23678
23679  char __fbuf[16];
23680 # 1087 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
23681  const bool __fixed = __io.flags() & ios_base::fixed;
23682  const int __max_exp = numeric_limits<_ValueT>::max_exponent10;
23683
23684
23685
23686
23687
23688
23689
23690  const int __cs_size = __fixed ? __max_exp + __prec + 4
23691                                : __max_digits * 2 + __prec;
23692  char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
23693
23694  __num_base::_S_format_float(__io, __fbuf, __mod);
23695  __len = std::__convert_from_v(__cs, 0, __fbuf, __v,
23696           _S_get_c_locale(), __prec);
23697
23698
23699
23700
23701  const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
23702
23703  _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23704             * __len));
23705  __ctype.widen(__cs, __cs + __len, __ws);
23706
23707
23708  const _CharT __cdec = __ctype.widen('.');
23709  const _CharT __dec = __lc->_M_decimal_point;
23710  const _CharT* __p = char_traits<_CharT>::find(__ws, __len, __cdec);
23711  if (__p)
23712    __ws[__p - __ws] = __dec;
23713
23714
23715
23716
23717  if (__lc->_M_use_grouping
23718      && (__p || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9'
23719          && __cs[1] >= '0' && __cs[2] >= '0')))
23720    {
23721
23722
23723      _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23724           * __len * 2));
23725
23726      streamsize __off = 0;
23727      if (__cs[0] == '-' || __cs[0] == '+')
23728        {
23729   __off = 1;
23730   __ws2[0] = __ws[0];
23731   __len -= 1;
23732        }
23733
23734      _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size,
23735       __lc->_M_thousands_sep, __p, __ws2 + __off,
23736       __ws + __off, __len);
23737      __len += __off;
23738
23739      __ws = __ws2;
23740    }
23741
23742
23743  const streamsize __w = __io.width();
23744  if (__w > static_cast<streamsize>(__len))
23745    {
23746      _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23747           * __w));
23748      _M_pad(__fill, __w, __io, __ws3, __ws, __len);
23749      __ws = __ws3;
23750    }
23751  __io.width(0);
23752
23753
23754
23755  return std::__write(__s, __ws, __len);
23756       }
23757
23758   template<typename _CharT, typename _OutIter>
23759     _OutIter
23760     num_put<_CharT, _OutIter>::
23761     do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const
23762     {
23763       const ios_base::fmtflags __flags = __io.flags();
23764       if ((__flags & ios_base::boolalpha) == 0)
23765         {
23766           const long __l = __v;
23767           __s = _M_insert_int(__s, __io, __fill, __l);
23768         }
23769       else
23770         {
23771    typedef __numpunct_cache<_CharT> __cache_type;
23772    __use_cache<__cache_type> __uc;
23773    const locale& __loc = __io._M_getloc();
23774    const __cache_type* __lc = __uc(__loc);
23775
23776    const _CharT* __name = __v ? __lc->_M_truename
23777                               : __lc->_M_falsename;
23778    int __len = __v ? __lc->_M_truename_size
23779                    : __lc->_M_falsename_size;
23780
23781    const streamsize __w = __io.width();
23782    if (__w > static_cast<streamsize>(__len))
23783      {
23784        _CharT* __cs
23785   = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
23786        * __w));
23787        _M_pad(__fill, __w, __io, __cs, __name, __len);
23788        __name = __cs;
23789      }
23790    __io.width(0);
23791    __s = std::__write(__s, __name, __len);
23792  }
23793       return __s;
23794     }
23795
23796   template<typename _CharT, typename _OutIter>
23797     _OutIter
23798     num_put<_CharT, _OutIter>::
23799     do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
23800     { return _M_insert_int(__s, __io, __fill, __v); }
23801
23802   template<typename _CharT, typename _OutIter>
23803     _OutIter
23804     num_put<_CharT, _OutIter>::
23805     do_put(iter_type __s, ios_base& __io, char_type __fill,
23806            unsigned long __v) const
23807     { return _M_insert_int(__s, __io, __fill, __v); }
23808
23809
23810   template<typename _CharT, typename _OutIter>
23811     _OutIter
23812     num_put<_CharT, _OutIter>::
23813     do_put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const
23814     { return _M_insert_int(__s, __io, __fill, __v); }
23815
23816   template<typename _CharT, typename _OutIter>
23817     _OutIter
23818     num_put<_CharT, _OutIter>::
23819     do_put(iter_type __s, ios_base& __io, char_type __fill,
23820            unsigned long long __v) const
23821     { return _M_insert_int(__s, __io, __fill, __v); }
23822
23823
23824   template<typename _CharT, typename _OutIter>
23825     _OutIter
23826     num_put<_CharT, _OutIter>::
23827     do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
23828     { return _M_insert_float(__s, __io, __fill, char(), __v); }
23829
23830   template<typename _CharT, typename _OutIter>
23831     _OutIter
23832     num_put<_CharT, _OutIter>::
23833     do_put(iter_type __s, ios_base& __io, char_type __fill,
23834     long double __v) const
23835     { return _M_insert_float(__s, __io, __fill, 'L', __v); }
23836
23837   template<typename _CharT, typename _OutIter>
23838     _OutIter
23839     num_put<_CharT, _OutIter>::
23840     do_put(iter_type __s, ios_base& __io, char_type __fill,
23841            const void* __v) const
23842     {
23843       const ios_base::fmtflags __flags = __io.flags();
23844       const ios_base::fmtflags __fmt = ~(ios_base::basefield
23845       | ios_base::uppercase
23846       | ios_base::internal);
23847       __io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase));
23848
23849       __s = _M_insert_int(__s, __io, __fill,
23850      reinterpret_cast<unsigned long>(__v));
23851       __io.flags(__flags);
23852       return __s;
23853     }
23854
23855   template<typename _CharT, typename _InIter>
23856     template<bool _Intl>
23857       _InIter
23858       money_get<_CharT, _InIter>::
23859       _M_extract(iter_type __beg, iter_type __end, ios_base& __io,
23860    ios_base::iostate& __err, string& __units) const
23861       {
23862  typedef char_traits<_CharT> __traits_type;
23863  typedef typename string_type::size_type size_type;
23864  typedef money_base::part part;
23865  typedef __moneypunct_cache<_CharT, _Intl> __cache_type;
23866
23867  const locale& __loc = __io._M_getloc();
23868  const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
23869
23870  __use_cache<__cache_type> __uc;
23871  const __cache_type* __lc = __uc(__loc);
23872  const char_type* __lit = __lc->_M_atoms;
23873
23874
23875  bool __negative = false;
23876
23877  size_type __sign_size = 0;
23878
23879  const bool __mandatory_sign = (__lc->_M_positive_sign_size
23880            && __lc->_M_negative_sign_size);
23881
23882  string __grouping_tmp;
23883  if (__lc->_M_use_grouping)
23884    __grouping_tmp.reserve(32);
23885
23886  int __last_pos = 0;
23887
23888  int __n = 0;
23889
23890  bool __testvalid = true;
23891
23892  bool __testdecfound = false;
23893
23894
23895  string __res;
23896  __res.reserve(32);
23897
23898  const char_type* __lit_zero = __lit + money_base::_S_zero;
23899  const money_base::pattern __p = __lc->_M_neg_format;
23900  for (int __i = 0; __i < 4 && __testvalid; ++__i)
23901    {
23902      const part __which = static_cast<part>(__p.field[__i]);
23903      switch (__which)
23904        {
23905        case money_base::symbol:
23906
23907
23908
23909
23910   if (__io.flags() & ios_base::showbase || __sign_size > 1
23911       || __i == 0
23912       || (__i == 1 && (__mandatory_sign
23913          || (static_cast<part>(__p.field[0])
23914       == money_base::sign)
23915          || (static_cast<part>(__p.field[2])
23916       == money_base::space)))
23917       || (__i == 2 && ((static_cast<part>(__p.field[3])
23918           == money_base::value)
23919          || __mandatory_sign
23920          && (static_cast<part>(__p.field[3])
23921       == money_base::sign))))
23922     {
23923       const size_type __len = __lc->_M_curr_symbol_size;
23924       size_type __j = 0;
23925       for (; __beg != __end && __j < __len
23926       && *__beg == __lc->_M_curr_symbol[__j];
23927     ++__beg, ++__j);
23928       if (__j != __len
23929    && (__j || __io.flags() & ios_base::showbase))
23930         __testvalid = false;
23931     }
23932   break;
23933        case money_base::sign:
23934
23935   if (__lc->_M_positive_sign_size && __beg != __end
23936       && *__beg == __lc->_M_positive_sign[0])
23937     {
23938       __sign_size = __lc->_M_positive_sign_size;
23939       ++__beg;
23940     }
23941   else if (__lc->_M_negative_sign_size && __beg != __end
23942     && *__beg == __lc->_M_negative_sign[0])
23943     {
23944       __negative = true;
23945       __sign_size = __lc->_M_negative_sign_size;
23946       ++__beg;
23947     }
23948   else if (__lc->_M_positive_sign_size
23949     && !__lc->_M_negative_sign_size)
23950
23951
23952     __negative = true;
23953   else if (__mandatory_sign)
23954     __testvalid = false;
23955   break;
23956        case money_base::value:
23957
23958
23959   for (; __beg != __end; ++__beg)
23960     {
23961       const char_type __c = *__beg;
23962       const char_type* __q = __traits_type::find(__lit_zero,
23963               10, __c);
23964       if (__q != 0)
23965         {
23966    __res += money_base::_S_atoms[__q - __lit];
23967    ++__n;
23968         }
23969       else if (__c == __lc->_M_decimal_point
23970         && !__testdecfound)
23971         {
23972    __last_pos = __n;
23973    __n = 0;
23974    __testdecfound = true;
23975         }
23976       else if (__lc->_M_use_grouping
23977         && __c == __lc->_M_thousands_sep
23978         && !__testdecfound)
23979         {
23980    if (__n)
23981      {
23982
23983        __grouping_tmp += static_cast<char>(__n);
23984        __n = 0;
23985      }
23986    else
23987      {
23988        __testvalid = false;
23989        break;
23990      }
23991         }
23992       else
23993         break;
23994     }
23995   if (__res.empty())
23996     __testvalid = false;
23997   break;
23998        case money_base::space:
23999
24000   if (__beg != __end && __ctype.is(ctype_base::space, *__beg))
24001     ++__beg;
24002   else
24003     __testvalid = false;
24004        case money_base::none:
24005
24006   if (__i != 3)
24007     for (; __beg != __end
24008     && __ctype.is(ctype_base::space, *__beg); ++__beg);
24009   break;
24010        }
24011    }
24012
24013
24014  if (__sign_size > 1 && __testvalid)
24015    {
24016      const char_type* __sign = __negative ? __lc->_M_negative_sign
24017                                           : __lc->_M_positive_sign;
24018      size_type __i = 1;
24019      for (; __beg != __end && __i < __sign_size
24020      && *__beg == __sign[__i]; ++__beg, ++__i);
24021
24022      if (__i != __sign_size)
24023        __testvalid = false;
24024    }
24025
24026  if (__testvalid)
24027    {
24028
24029      if (__res.size() > 1)
24030        {
24031   const size_type __first = __res.find_first_not_of('0');
24032   const bool __only_zeros = __first == string::npos;
24033   if (__first)
24034     __res.erase(0, __only_zeros ? __res.size() - 1 : __first);
24035        }
24036
24037
24038      if (__negative && __res[0] != '0')
24039        __res.insert(__res.begin(), '-');
24040
24041
24042      if (__grouping_tmp.size())
24043        {
24044
24045   __grouping_tmp += static_cast<char>(__testdecfound ? __last_pos
24046                          : __n);
24047   if (!std::__verify_grouping(__lc->_M_grouping,
24048          __lc->_M_grouping_size,
24049          __grouping_tmp))
24050     __err |= ios_base::failbit;
24051        }
24052
24053
24054      if (__testdecfound && __lc->_M_frac_digits > 0
24055   && __n != __lc->_M_frac_digits)
24056        __testvalid = false;
24057    }
24058
24059
24060  if (!__testvalid)
24061    __err |= ios_base::failbit;
24062  else
24063    __units.swap(__res);
24064
24065
24066  if (__beg == __end)
24067    __err |= ios_base::eofbit;
24068  return __beg;
24069       }
24070
24071   template<typename _CharT, typename _InIter>
24072     _InIter
24073     money_get<_CharT, _InIter>::
24074     do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
24075     ios_base::iostate& __err, long double& __units) const
24076     {
24077       string __str;
24078       if (__intl)
24079  __beg = _M_extract<true>(__beg, __end, __io, __err, __str);
24080       else
24081  __beg = _M_extract<false>(__beg, __end, __io, __err, __str);
24082       std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale());
24083       return __beg;
24084     }
24085
24086   template<typename _CharT, typename _InIter>
24087     _InIter
24088     money_get<_CharT, _InIter>::
24089     do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
24090     ios_base::iostate& __err, string_type& __units) const
24091     {
24092       typedef typename string::size_type size_type;
24093
24094       const locale& __loc = __io._M_getloc();
24095       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24096
24097       string __str;
24098       const iter_type __ret = __intl ? _M_extract<true>(__beg, __end, __io,
24099        __err, __str)
24100                               : _M_extract<false>(__beg, __end, __io,
24101         __err, __str);
24102       const size_type __len = __str.size();
24103       if (__len)
24104  {
24105    _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
24106               * __len));
24107    __ctype.widen(__str.data(), __str.data() + __len, __ws);
24108    __units.assign(__ws, __len);
24109  }
24110
24111       return __ret;
24112     }
24113
24114   template<typename _CharT, typename _OutIter>
24115     template<bool _Intl>
24116       _OutIter
24117       money_put<_CharT, _OutIter>::
24118       _M_insert(iter_type __s, ios_base& __io, char_type __fill,
24119   const string_type& __digits) const
24120       {
24121  typedef typename string_type::size_type size_type;
24122  typedef money_base::part part;
24123  typedef __moneypunct_cache<_CharT, _Intl> __cache_type;
24124
24125  const locale& __loc = __io._M_getloc();
24126  const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24127
24128  __use_cache<__cache_type> __uc;
24129  const __cache_type* __lc = __uc(__loc);
24130  const char_type* __lit = __lc->_M_atoms;
24131
24132
24133
24134  const char_type* __beg = __digits.data();
24135
24136  money_base::pattern __p;
24137  const char_type* __sign;
24138  size_type __sign_size;
24139  if (!(*__beg == __lit[money_base::_S_minus]))
24140    {
24141      __p = __lc->_M_pos_format;
24142      __sign = __lc->_M_positive_sign;
24143      __sign_size = __lc->_M_positive_sign_size;
24144    }
24145  else
24146    {
24147      __p = __lc->_M_neg_format;
24148      __sign = __lc->_M_negative_sign;
24149      __sign_size = __lc->_M_negative_sign_size;
24150      if (__digits.size())
24151        ++__beg;
24152    }
24153
24154
24155  size_type __len = __ctype.scan_not(ctype_base::digit, __beg,
24156         __beg + __digits.size()) - __beg;
24157  if (__len)
24158    {
24159
24160
24161
24162      string_type __value;
24163      __value.reserve(2 * __len);
24164
24165
24166
24167      int __paddec = __len - __lc->_M_frac_digits;
24168      if (__paddec > 0)
24169          {
24170   if (__lc->_M_frac_digits < 0)
24171     __paddec = __len;
24172     if (__lc->_M_grouping_size)
24173       {
24174       _CharT* __ws =
24175           static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
24176              * 2 * __len));
24177         _CharT* __ws_end =
24178         std::__add_grouping(__ws, __lc->_M_thousands_sep,
24179        __lc->_M_grouping,
24180        __lc->_M_grouping_size,
24181        __beg, __beg + __paddec);
24182       __value.assign(__ws, __ws_end - __ws);
24183       }
24184     else
24185     __value.assign(__beg, __paddec);
24186        }
24187
24188
24189      if (__lc->_M_frac_digits > 0)
24190        {
24191   __value += __lc->_M_decimal_point;
24192   if (__paddec >= 0)
24193     __value.append(__beg + __paddec, __lc->_M_frac_digits);
24194   else
24195     {
24196
24197       __value.append(-__paddec, __lit[money_base::_S_zero]);
24198       __value.append(__beg, __len);
24199     }
24200          }
24201
24202
24203      const ios_base::fmtflags __f = __io.flags()
24204                                     & ios_base::adjustfield;
24205      __len = __value.size() + __sign_size;
24206      __len += ((__io.flags() & ios_base::showbase)
24207         ? __lc->_M_curr_symbol_size : 0);
24208
24209      string_type __res;
24210      __res.reserve(2 * __len);
24211
24212      const size_type __width = static_cast<size_type>(__io.width());
24213      const bool __testipad = (__f == ios_base::internal
24214          && __len < __width);
24215
24216      for (int __i = 0; __i < 4; ++__i)
24217        {
24218   const part __which = static_cast<part>(__p.field[__i]);
24219   switch (__which)
24220     {
24221     case money_base::symbol:
24222       if (__io.flags() & ios_base::showbase)
24223         __res.append(__lc->_M_curr_symbol,
24224        __lc->_M_curr_symbol_size);
24225       break;
24226     case money_base::sign:
24227
24228
24229
24230       if (__sign_size)
24231         __res += __sign[0];
24232       break;
24233     case money_base::value:
24234       __res += __value;
24235       break;
24236     case money_base::space:
24237
24238
24239
24240       if (__testipad)
24241         __res.append(__width - __len, __fill);
24242       else
24243         __res += __fill;
24244       break;
24245     case money_base::none:
24246       if (__testipad)
24247         __res.append(__width - __len, __fill);
24248       break;
24249     }
24250        }
24251
24252
24253      if (__sign_size > 1)
24254        __res.append(__sign + 1, __sign_size - 1);
24255
24256
24257      __len = __res.size();
24258      if (__width > __len)
24259        {
24260   if (__f == ios_base::left)
24261
24262     __res.append(__width - __len, __fill);
24263   else
24264
24265     __res.insert(0, __width - __len, __fill);
24266   __len = __width;
24267        }
24268
24269
24270      __s = std::__write(__s, __res.data(), __len);
24271    }
24272  __io.width(0);
24273  return __s;
24274       }
24275
24276   template<typename _CharT, typename _OutIter>
24277     _OutIter
24278     money_put<_CharT, _OutIter>::
24279     do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
24280     long double __units) const
24281     {
24282       const locale __loc = __io.getloc();
24283       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24284 # 1708 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
24285       const int __cs_size = numeric_limits<long double>::max_exponent10 + 3;
24286       char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
24287       int __len = std::__convert_from_v(__cs, 0, "%.*Lf", __units,
24288      _S_get_c_locale(), 0);
24289
24290       _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
24291           * __cs_size));
24292       __ctype.widen(__cs, __cs + __len, __ws);
24293       const string_type __digits(__ws, __len);
24294       return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
24295              : _M_insert<false>(__s, __io, __fill, __digits);
24296     }
24297
24298   template<typename _CharT, typename _OutIter>
24299     _OutIter
24300     money_put<_CharT, _OutIter>::
24301     do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
24302     const string_type& __digits) const
24303     { return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
24304              : _M_insert<false>(__s, __io, __fill, __digits); }
24305
24306
24307
24308
24309
24310   template<typename _CharT, typename _InIter>
24311     time_base::dateorder
24312     time_get<_CharT, _InIter>::do_date_order() const
24313     { return time_base::no_order; }
24314
24315
24316
24317   template<typename _CharT, typename _InIter>
24318     _InIter
24319     time_get<_CharT, _InIter>::
24320     _M_extract_via_format(iter_type __beg, iter_type __end, ios_base& __io,
24321      ios_base::iostate& __err, tm* __tm,
24322      const _CharT* __format) const
24323     {
24324       const locale& __loc = __io._M_getloc();
24325       const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
24326       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24327       const size_t __len = char_traits<_CharT>::length(__format);
24328
24329       for (size_t __i = 0; __beg != __end && __i < __len && !__err; ++__i)
24330  {
24331    if (__ctype.narrow(__format[__i], 0) == '%')
24332      {
24333
24334        char __c = __ctype.narrow(__format[++__i], 0);
24335        int __mem = 0;
24336        if (__c == 'E' || __c == 'O')
24337   __c = __ctype.narrow(__format[++__i], 0);
24338        switch (__c)
24339   {
24340     const char* __cs;
24341     _CharT __wcs[10];
24342   case 'a':
24343
24344     const char_type* __days1[7];
24345     __tp._M_days_abbreviated(__days1);
24346     __beg = _M_extract_name(__beg, __end, __tm->tm_wday, __days1,
24347        7, __io, __err);
24348     break;
24349   case 'A':
24350
24351     const char_type* __days2[7];
24352     __tp._M_days(__days2);
24353     __beg = _M_extract_name(__beg, __end, __tm->tm_wday, __days2,
24354        7, __io, __err);
24355     break;
24356   case 'h':
24357   case 'b':
24358
24359     const char_type* __months1[12];
24360     __tp._M_months_abbreviated(__months1);
24361     __beg = _M_extract_name(__beg, __end, __tm->tm_mon,
24362        __months1, 12, __io, __err);
24363     break;
24364   case 'B':
24365
24366     const char_type* __months2[12];
24367     __tp._M_months(__months2);
24368     __beg = _M_extract_name(__beg, __end, __tm->tm_mon,
24369        __months2, 12, __io, __err);
24370     break;
24371   case 'c':
24372
24373     const char_type* __dt[2];
24374     __tp._M_date_time_formats(__dt);
24375     __beg = _M_extract_via_format(__beg, __end, __io, __err,
24376       __tm, __dt[0]);
24377     break;
24378   case 'd':
24379
24380     __beg = _M_extract_num(__beg, __end, __tm->tm_mday, 1, 31, 2,
24381       __io, __err);
24382     break;
24383   case 'e':
24384
24385
24386     if (__ctype.is(ctype_base::space, *__beg))
24387       __beg = _M_extract_num(++__beg, __end, __tm->tm_mday, 1, 9,
24388         1, __io, __err);
24389     else
24390       __beg = _M_extract_num(__beg, __end, __tm->tm_mday, 10, 31,
24391         2, __io, __err);
24392     break;
24393   case 'D':
24394
24395     __cs = "%m/%d/%y";
24396     __ctype.widen(__cs, __cs + 9, __wcs);
24397     __beg = _M_extract_via_format(__beg, __end, __io, __err,
24398       __tm, __wcs);
24399     break;
24400   case 'H':
24401
24402     __beg = _M_extract_num(__beg, __end, __tm->tm_hour, 0, 23, 2,
24403       __io, __err);
24404     break;
24405   case 'I':
24406
24407     __beg = _M_extract_num(__beg, __end, __tm->tm_hour, 1, 12, 2,
24408       __io, __err);
24409     break;
24410   case 'm':
24411
24412     __beg = _M_extract_num(__beg, __end, __mem, 1, 12, 2,
24413       __io, __err);
24414     if (!__err)
24415       __tm->tm_mon = __mem - 1;
24416     break;
24417   case 'M':
24418
24419     __beg = _M_extract_num(__beg, __end, __tm->tm_min, 0, 59, 2,
24420       __io, __err);
24421     break;
24422   case 'n':
24423     if (__ctype.narrow(*__beg, 0) == '\n')
24424       ++__beg;
24425     else
24426       __err |= ios_base::failbit;
24427     break;
24428   case 'R':
24429
24430     __cs = "%H:%M";
24431     __ctype.widen(__cs, __cs + 6, __wcs);
24432     __beg = _M_extract_via_format(__beg, __end, __io, __err,
24433       __tm, __wcs);
24434     break;
24435   case 'S':
24436
24437
24438
24439
24440
24441     __beg = _M_extract_num(__beg, __end, __tm->tm_sec, 0, 61, 2,
24442
24443       __io, __err);
24444     break;
24445   case 't':
24446     if (__ctype.narrow(*__beg, 0) == '\t')
24447       ++__beg;
24448     else
24449       __err |= ios_base::failbit;
24450     break;
24451   case 'T':
24452
24453     __cs = "%H:%M:%S";
24454     __ctype.widen(__cs, __cs + 9, __wcs);
24455     __beg = _M_extract_via_format(__beg, __end, __io, __err,
24456       __tm, __wcs);
24457     break;
24458   case 'x':
24459
24460     const char_type* __dates[2];
24461     __tp._M_date_formats(__dates);
24462     __beg = _M_extract_via_format(__beg, __end, __io, __err,
24463       __tm, __dates[0]);
24464     break;
24465   case 'X':
24466
24467     const char_type* __times[2];
24468     __tp._M_time_formats(__times);
24469     __beg = _M_extract_via_format(__beg, __end, __io, __err,
24470       __tm, __times[0]);
24471     break;
24472   case 'y':
24473   case 'C':
24474
24475     __beg = _M_extract_num(__beg, __end, __tm->tm_year, 0, 99, 2,
24476       __io, __err);
24477     break;
24478   case 'Y':
24479
24480     __beg = _M_extract_num(__beg, __end, __mem, 0, 9999, 4,
24481       __io, __err);
24482     if (!__err)
24483       __tm->tm_year = __mem - 1900;
24484     break;
24485   case 'Z':
24486
24487     if (__ctype.is(ctype_base::upper, *__beg))
24488       {
24489         int __tmp;
24490         __beg = _M_extract_name(__beg, __end, __tmp,
24491            __timepunct_cache<_CharT>::_S_timezones,
24492            14, __io, __err);
24493
24494
24495         if (__beg != __end && !__err && __tmp == 0
24496      && (*__beg == __ctype.widen('-')
24497          || *__beg == __ctype.widen('+')))
24498    {
24499      __beg = _M_extract_num(__beg, __end, __tmp, 0, 23, 2,
24500        __io, __err);
24501      __beg = _M_extract_num(__beg, __end, __tmp, 0, 59, 2,
24502        __io, __err);
24503    }
24504       }
24505     else
24506       __err |= ios_base::failbit;
24507     break;
24508   default:
24509
24510     __err |= ios_base::failbit;
24511   }
24512      }
24513    else
24514      {
24515
24516        if (__format[__i] == *__beg)
24517   ++__beg;
24518        else
24519   __err |= ios_base::failbit;
24520      }
24521  }
24522       return __beg;
24523     }
24524
24525   template<typename _CharT, typename _InIter>
24526     _InIter
24527     time_get<_CharT, _InIter>::
24528     _M_extract_num(iter_type __beg, iter_type __end, int& __member,
24529      int __min, int __max, size_t __len,
24530      ios_base& __io, ios_base::iostate& __err) const
24531     {
24532       const locale& __loc = __io._M_getloc();
24533       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24534
24535
24536       int __mult = __len == 2 ? 10 : (__len == 4 ? 1000 : 1);
24537
24538       ++__min;
24539       size_t __i = 0;
24540       int __value = 0;
24541       for (; __beg != __end && __i < __len; ++__beg, ++__i)
24542  {
24543    const char __c = __ctype.narrow(*__beg, '*');
24544    if (__c >= '0' && __c <= '9')
24545      {
24546        __value = __value * 10 + (__c - '0');
24547        const int __valuec = __value * __mult;
24548        if (__valuec > __max || __valuec + __mult < __min)
24549   break;
24550        __mult /= 10;
24551      }
24552    else
24553      break;
24554  }
24555       if (__i == __len)
24556  __member = __value;
24557       else
24558  __err |= ios_base::failbit;
24559       return __beg;
24560     }
24561
24562
24563
24564   template<typename _CharT, typename _InIter>
24565     _InIter
24566     time_get<_CharT, _InIter>::
24567     _M_extract_name(iter_type __beg, iter_type __end, int& __member,
24568       const _CharT** __names, size_t __indexlen,
24569       ios_base& __io, ios_base::iostate& __err) const
24570     {
24571       typedef char_traits<_CharT> __traits_type;
24572       const locale& __loc = __io._M_getloc();
24573       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24574
24575       int* __matches = static_cast<int*>(__builtin_alloca(sizeof(int)
24576          * __indexlen));
24577       size_t __nmatches = 0;
24578       size_t __pos = 0;
24579       bool __testvalid = true;
24580       const char_type* __name;
24581
24582
24583
24584
24585
24586       if (__beg != __end)
24587  {
24588    const char_type __c = *__beg;
24589    for (size_t __i1 = 0; __i1 < __indexlen; ++__i1)
24590      if (__c == __names[__i1][0]
24591   || __c == __ctype.toupper(__names[__i1][0]))
24592        __matches[__nmatches++] = __i1;
24593  }
24594
24595       while (__nmatches > 1)
24596  {
24597
24598    size_t __minlen = __traits_type::length(__names[__matches[0]]);
24599    for (size_t __i2 = 1; __i2 < __nmatches; ++__i2)
24600      __minlen = std::min(__minlen,
24601          __traits_type::length(__names[__matches[__i2]]));
24602    ++__beg, ++__pos;
24603    if (__pos < __minlen && __beg != __end)
24604      for (size_t __i3 = 0; __i3 < __nmatches;)
24605        {
24606   __name = __names[__matches[__i3]];
24607   if (!(__name[__pos] == *__beg))
24608     __matches[__i3] = __matches[--__nmatches];
24609   else
24610     ++__i3;
24611        }
24612    else
24613      break;
24614  }
24615
24616       if (__nmatches == 1)
24617  {
24618
24619    ++__beg, ++__pos;
24620    __name = __names[__matches[0]];
24621    const size_t __len = __traits_type::length(__name);
24622    while (__pos < __len && __beg != __end && __name[__pos] == *__beg)
24623      ++__beg, ++__pos;
24624
24625    if (__len == __pos)
24626      __member = __matches[0];
24627    else
24628      __testvalid = false;
24629  }
24630       else
24631  __testvalid = false;
24632       if (!__testvalid)
24633  __err |= ios_base::failbit;
24634       return __beg;
24635     }
24636
24637   template<typename _CharT, typename _InIter>
24638     _InIter
24639     time_get<_CharT, _InIter>::
24640     do_get_time(iter_type __beg, iter_type __end, ios_base& __io,
24641   ios_base::iostate& __err, tm* __tm) const
24642     {
24643       const locale& __loc = __io._M_getloc();
24644       const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
24645       const char_type* __times[2];
24646       __tp._M_time_formats(__times);
24647       __beg = _M_extract_via_format(__beg, __end, __io, __err,
24648         __tm, __times[0]);
24649       if (__beg == __end)
24650  __err |= ios_base::eofbit;
24651       return __beg;
24652     }
24653
24654   template<typename _CharT, typename _InIter>
24655     _InIter
24656     time_get<_CharT, _InIter>::
24657     do_get_date(iter_type __beg, iter_type __end, ios_base& __io,
24658   ios_base::iostate& __err, tm* __tm) const
24659     {
24660       const locale& __loc = __io._M_getloc();
24661       const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
24662       const char_type* __dates[2];
24663       __tp._M_date_formats(__dates);
24664       __beg = _M_extract_via_format(__beg, __end, __io, __err,
24665         __tm, __dates[0]);
24666       if (__beg == __end)
24667  __err |= ios_base::eofbit;
24668       return __beg;
24669     }
24670
24671   template<typename _CharT, typename _InIter>
24672     _InIter
24673     time_get<_CharT, _InIter>::
24674     do_get_weekday(iter_type __beg, iter_type __end, ios_base& __io,
24675      ios_base::iostate& __err, tm* __tm) const
24676     {
24677       typedef char_traits<_CharT> __traits_type;
24678       const locale& __loc = __io._M_getloc();
24679       const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
24680       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24681       const char_type* __days[7];
24682       __tp._M_days_abbreviated(__days);
24683       int __tmpwday;
24684       __beg = _M_extract_name(__beg, __end, __tmpwday, __days, 7, __io, __err);
24685
24686
24687
24688
24689
24690
24691
24692       if (!__err && __beg != __end)
24693  {
24694    size_t __pos = __traits_type::length(__days[__tmpwday]);
24695    __tp._M_days(__days);
24696    const char_type* __name = __days[__tmpwday];
24697    if (__name[__pos] == *__beg)
24698      {
24699
24700        const size_t __len = __traits_type::length(__name);
24701        while (__pos < __len && __beg != __end
24702        && __name[__pos] == *__beg)
24703   ++__beg, ++__pos;
24704        if (__len != __pos)
24705   __err |= ios_base::failbit;
24706      }
24707  }
24708       if (!__err)
24709  __tm->tm_wday = __tmpwday;
24710
24711       if (__beg == __end)
24712  __err |= ios_base::eofbit;
24713       return __beg;
24714      }
24715
24716   template<typename _CharT, typename _InIter>
24717     _InIter
24718     time_get<_CharT, _InIter>::
24719     do_get_monthname(iter_type __beg, iter_type __end,
24720                      ios_base& __io, ios_base::iostate& __err, tm* __tm) const
24721     {
24722       typedef char_traits<_CharT> __traits_type;
24723       const locale& __loc = __io._M_getloc();
24724       const __timepunct<_CharT>& __tp = use_facet<__timepunct<_CharT> >(__loc);
24725       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24726       const char_type* __months[12];
24727       __tp._M_months_abbreviated(__months);
24728       int __tmpmon;
24729       __beg = _M_extract_name(__beg, __end, __tmpmon, __months, 12,
24730          __io, __err);
24731
24732
24733
24734
24735
24736
24737
24738       if (!__err && __beg != __end)
24739  {
24740    size_t __pos = __traits_type::length(__months[__tmpmon]);
24741    __tp._M_months(__months);
24742    const char_type* __name = __months[__tmpmon];
24743    if (__name[__pos] == *__beg)
24744      {
24745
24746        const size_t __len = __traits_type::length(__name);
24747        while (__pos < __len && __beg != __end
24748        && __name[__pos] == *__beg)
24749   ++__beg, ++__pos;
24750        if (__len != __pos)
24751   __err |= ios_base::failbit;
24752      }
24753  }
24754       if (!__err)
24755  __tm->tm_mon = __tmpmon;
24756
24757       if (__beg == __end)
24758  __err |= ios_base::eofbit;
24759       return __beg;
24760     }
24761
24762   template<typename _CharT, typename _InIter>
24763     _InIter
24764     time_get<_CharT, _InIter>::
24765     do_get_year(iter_type __beg, iter_type __end, ios_base& __io,
24766   ios_base::iostate& __err, tm* __tm) const
24767     {
24768       const locale& __loc = __io._M_getloc();
24769       const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24770
24771       size_t __i = 0;
24772       int __value = 0;
24773       for (; __beg != __end && __i < 4; ++__beg, ++__i)
24774  {
24775    const char __c = __ctype.narrow(*__beg, '*');
24776    if (__c >= '0' && __c <= '9')
24777      __value = __value * 10 + (__c - '0');
24778    else
24779      break;
24780  }
24781       if (__i == 2 || __i == 4)
24782  __tm->tm_year = __i == 2 ? __value : __value - 1900;
24783       else
24784  __err |= ios_base::failbit;
24785       if (__beg == __end)
24786  __err |= ios_base::eofbit;
24787       return __beg;
24788     }
24789
24790   template<typename _CharT, typename _OutIter>
24791     _OutIter
24792     time_put<_CharT, _OutIter>::
24793     put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
24794  const _CharT* __beg, const _CharT* __end) const
24795     {
24796       const locale& __loc = __io._M_getloc();
24797       ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
24798       for (; __beg != __end; ++__beg)
24799  if (__ctype.narrow(*__beg, 0) != '%')
24800    {
24801      *__s = *__beg;
24802      ++__s;
24803    }
24804  else if (++__beg != __end)
24805    {
24806      char __format;
24807      char __mod = 0;
24808      const char __c = __ctype.narrow(*__beg, 0);
24809      if (__c != 'E' && __c != 'O')
24810        __format = __c;
24811      else if (++__beg != __end)
24812        {
24813   __mod = __c;
24814   __format = __ctype.narrow(*__beg, 0);
24815        }
24816      else
24817        break;
24818      __s = this->do_put(__s, __io, __fill, __tm, __format, __mod);
24819    }
24820  else
24821    break;
24822       return __s;
24823     }
24824
24825   template<typename _CharT, typename _OutIter>
24826     _OutIter
24827     time_put<_CharT, _OutIter>::
24828     do_put(iter_type __s, ios_base& __io, char_type, const tm* __tm,
24829     char __format, char __mod) const
24830     {
24831       const locale& __loc = __io._M_getloc();
24832       ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
24833       __timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
24834
24835
24836
24837       const size_t __maxlen = 128;
24838       char_type* __res =
24839        static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __maxlen));
24840
24841
24842
24843
24844
24845
24846       char_type __fmt[4];
24847       __fmt[0] = __ctype.widen('%');
24848       if (!__mod)
24849  {
24850    __fmt[1] = __format;
24851    __fmt[2] = char_type();
24852  }
24853       else
24854  {
24855    __fmt[1] = __mod;
24856    __fmt[2] = __format;
24857    __fmt[3] = char_type();
24858  }
24859
24860       __tp._M_put(__res, __maxlen, __fmt, __tm);
24861
24862
24863       return std::__write(__s, __res, char_traits<char_type>::length(__res));
24864     }
24865
24866
24867   template<typename _CharT>
24868     int
24869     collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const
24870     { return 0; }
24871
24872
24873   template<typename _CharT>
24874     size_t
24875     collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const
24876     { return 0; }
24877
24878   template<typename _CharT>
24879     int
24880     collate<_CharT>::
24881     do_compare(const _CharT* __lo1, const _CharT* __hi1,
24882         const _CharT* __lo2, const _CharT* __hi2) const
24883     {
24884
24885
24886       const string_type __one(__lo1, __hi1);
24887       const string_type __two(__lo2, __hi2);
24888
24889       const _CharT* __p = __one.c_str();
24890       const _CharT* __pend = __one.data() + __one.length();
24891       const _CharT* __q = __two.c_str();
24892       const _CharT* __qend = __two.data() + __two.length();
24893
24894
24895
24896
24897       for (;;)
24898  {
24899    const int __res = _M_compare(__p, __q);
24900    if (__res)
24901      return __res;
24902
24903    __p += char_traits<_CharT>::length(__p);
24904    __q += char_traits<_CharT>::length(__q);
24905    if (__p == __pend && __q == __qend)
24906      return 0;
24907    else if (__p == __pend)
24908      return -1;
24909    else if (__q == __qend)
24910      return 1;
24911
24912    __p++;
24913    __q++;
24914  }
24915     }
24916
24917   template<typename _CharT>
24918     typename collate<_CharT>::string_type
24919     collate<_CharT>::
24920     do_transform(const _CharT* __lo, const _CharT* __hi) const
24921     {
24922
24923       string_type __str(__lo, __hi);
24924
24925       const _CharT* __p = __str.c_str();
24926       const _CharT* __pend = __str.data() + __str.length();
24927
24928       size_t __len = (__hi - __lo) * 2;
24929
24930       string_type __ret;
24931
24932
24933
24934
24935       for (;;)
24936  {
24937
24938    _CharT* __c =
24939      static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));
24940    size_t __res = _M_transform(__c, __p, __len);
24941
24942
24943    if (__res >= __len)
24944      {
24945        __len = __res + 1;
24946        __c = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
24947          * __len));
24948        __res = _M_transform(__c, __p, __len);
24949      }
24950
24951    __ret.append(__c, __res);
24952    __p += char_traits<_CharT>::length(__p);
24953    if (__p == __pend)
24954      return __ret;
24955
24956    __p++;
24957    __ret.push_back(_CharT());
24958  }
24959     }
24960
24961   template<typename _CharT>
24962     long
24963     collate<_CharT>::
24964     do_hash(const _CharT* __lo, const _CharT* __hi) const
24965     {
24966       unsigned long __val = 0;
24967       for (; __lo < __hi; ++__lo)
24968  __val = *__lo + ((__val << 7) |
24969          (__val >> (numeric_limits<unsigned long>::digits - 7)));
24970       return static_cast<long>(__val);
24971     }
24972 # 2407 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
24973   template<typename _CharT, typename _Traits>
24974     void
24975     __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
24976        _CharT* __news, const _CharT* __olds,
24977        const streamsize __newlen,
24978        const streamsize __oldlen, const bool __num)
24979     {
24980       const size_t __plen = static_cast<size_t>(__newlen - __oldlen);
24981       const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
24982
24983
24984       if (__adjust == ios_base::left)
24985  {
24986    _Traits::copy(__news, const_cast<_CharT*>(__olds), __oldlen);
24987    _Traits::assign(__news + __oldlen, __plen, __fill);
24988    return;
24989  }
24990
24991       size_t __mod = 0;
24992       if (__adjust == ios_base::internal && __num)
24993  {
24994
24995
24996
24997           const locale& __loc = __io._M_getloc();
24998    const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
24999
25000    const bool __testsign = (__ctype.widen('-') == __olds[0]
25001        || __ctype.widen('+') == __olds[0]);
25002    const bool __testhex = (__ctype.widen('0') == __olds[0]
25003       && __oldlen > 1
25004       && (__ctype.widen('x') == __olds[1]
25005           || __ctype.widen('X') == __olds[1]));
25006    if (__testhex)
25007      {
25008        __news[0] = __olds[0];
25009        __news[1] = __olds[1];
25010        __mod = 2;
25011        __news += 2;
25012      }
25013    else if (__testsign)
25014      {
25015        __news[0] = __olds[0];
25016        __mod = 1;
25017        ++__news;
25018      }
25019
25020  }
25021       _Traits::assign(__news, __plen, __fill);
25022       _Traits::copy(__news + __plen, const_cast<_CharT*>(__olds + __mod),
25023       __oldlen - __mod);
25024     }
25025
25026   bool
25027   __verify_grouping(const char* __grouping, size_t __grouping_size,
25028       const string& __grouping_tmp)
25029   {
25030     const size_t __n = __grouping_tmp.size() - 1;
25031     const size_t __min = std::min(__n, size_t(__grouping_size - 1));
25032     size_t __i = __n;
25033     bool __test = true;
25034
25035
25036
25037
25038     for (size_t __j = 0; __j < __min && __test; --__i, ++__j)
25039       __test = __grouping_tmp[__i] == __grouping[__j];
25040     for (; __i && __test; --__i)
25041       __test = __grouping_tmp[__i] == __grouping[__min];
25042
25043
25044
25045     if (static_cast<signed char>(__grouping[__min]) > 0)
25046       __test &= __grouping_tmp[0] <= __grouping[__min];
25047     return __test;
25048   }
25049
25050   template<typename _CharT>
25051     _CharT*
25052     __add_grouping(_CharT* __s, _CharT __sep,
25053      const char* __gbeg, size_t __gsize,
25054      const _CharT* __first, const _CharT* __last)
25055     {
25056       if (__last - __first > *__gbeg
25057    && static_cast<signed char>(*__gbeg) > 0)
25058  {
25059    const bool __bump = __gsize != 1;
25060    __s = std::__add_grouping(__s, __sep, __gbeg + __bump,
25061         __gsize - __bump, __first,
25062         __last - *__gbeg);
25063    __first = __last - *__gbeg;
25064    *__s++ = __sep;
25065  }
25066       do
25067  *__s++ = *__first++;
25068       while (__first != __last);
25069       return __s;
25070     }
25071
25072
25073
25074
25075
25076   extern template class moneypunct<char, false>;
25077   extern template class moneypunct<char, true>;
25078   extern template class moneypunct_byname<char, false>;
25079   extern template class moneypunct_byname<char, true>;
25080   extern template class money_get<char>;
25081   extern template class money_put<char>;
25082   extern template class numpunct<char>;
25083   extern template class numpunct_byname<char>;
25084   extern template class num_get<char>;
25085   extern template class num_put<char>;
25086   extern template class __timepunct<char>;
25087   extern template class time_put<char>;
25088   extern template class time_put_byname<char>;
25089   extern template class time_get<char>;
25090   extern template class time_get_byname<char>;
25091   extern template class messages<char>;
25092   extern template class messages_byname<char>;
25093   extern template class ctype_byname<char>;
25094   extern template class codecvt_byname<char, char, mbstate_t>;
25095   extern template class collate<char>;
25096   extern template class collate_byname<char>;
25097
25098   extern template
25099     const codecvt<char, char, mbstate_t>&
25100     use_facet<codecvt<char, char, mbstate_t> >(const locale&);
25101
25102   extern template
25103     const collate<char>&
25104     use_facet<collate<char> >(const locale&);
25105
25106   extern template
25107     const numpunct<char>&
25108     use_facet<numpunct<char> >(const locale&);
25109
25110   extern template
25111     const num_put<char>&
25112     use_facet<num_put<char> >(const locale&);
25113
25114   extern template
25115     const num_get<char>&
25116     use_facet<num_get<char> >(const locale&);
25117
25118   extern template
25119     const moneypunct<char, true>&
25120     use_facet<moneypunct<char, true> >(const locale&);
25121
25122   extern template
25123     const moneypunct<char, false>&
25124     use_facet<moneypunct<char, false> >(const locale&);
25125
25126   extern template
25127     const money_put<char>&
25128     use_facet<money_put<char> >(const locale&);
25129
25130   extern template
25131     const money_get<char>&
25132     use_facet<money_get<char> >(const locale&);
25133
25134   extern template
25135     const __timepunct<char>&
25136     use_facet<__timepunct<char> >(const locale&);
25137
25138   extern template
25139     const time_put<char>&
25140     use_facet<time_put<char> >(const locale&);
25141
25142   extern template
25143     const time_get<char>&
25144     use_facet<time_get<char> >(const locale&);
25145
25146   extern template
25147     const messages<char>&
25148     use_facet<messages<char> >(const locale&);
25149
25150   extern template
25151     bool
25152     has_facet<ctype<char> >(const locale&);
25153
25154   extern template
25155     bool
25156     has_facet<codecvt<char, char, mbstate_t> >(const locale&);
25157
25158   extern template
25159     bool
25160     has_facet<collate<char> >(const locale&);
25161
25162   extern template
25163     bool
25164     has_facet<numpunct<char> >(const locale&);
25165
25166   extern template
25167     bool
25168     has_facet<num_put<char> >(const locale&);
25169
25170   extern template
25171     bool
25172     has_facet<num_get<char> >(const locale&);
25173
25174   extern template
25175     bool
25176     has_facet<moneypunct<char> >(const locale&);
25177
25178   extern template
25179     bool
25180     has_facet<money_put<char> >(const locale&);
25181
25182   extern template
25183     bool
25184     has_facet<money_get<char> >(const locale&);
25185
25186   extern template
25187     bool
25188     has_facet<__timepunct<char> >(const locale&);
25189
25190   extern template
25191     bool
25192     has_facet<time_put<char> >(const locale&);
25193
25194   extern template
25195     bool
25196     has_facet<time_get<char> >(const locale&);
25197
25198   extern template
25199     bool
25200     has_facet<messages<char> >(const locale&);
25201 # 2764 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/locale_facets.tcc" 3
25202 }
25203 # 47 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/locale" 2 3
25204 # 24 "./boost/format.hpp" 2
25205
25206
25207
25208 # 1 "./boost/format/detail/compat_workarounds.hpp" 1
25209 # 33 "./boost/format/detail/compat_workarounds.hpp"
25210 namespace boost {
25211     namespace io {
25212
25213
25214
25215         template<class Tr>
25216         class CompatTraits;
25217
25218
25219
25220
25221         template<class Alloc>
25222         class CompatAlloc;
25223     }
25224 }
25225
25226
25227 # 1 "./boost/format/detail/config_macros.hpp" 1
25228 # 33 "./boost/format/detail/config_macros.hpp"
25229 # 1 "./boost/format/detail/workarounds_gcc-2_95.hpp" 1
25230 # 34 "./boost/format/detail/config_macros.hpp" 2
25231 # 1 "./boost/format/detail/workarounds_stlport.hpp" 1
25232 # 35 "./boost/format/detail/config_macros.hpp" 2
25233 # 86 "./boost/format/detail/config_macros.hpp"
25234 namespace boost { namespace io { namespace detail {
25235
25236     typedef ::std:: locale locale_t;
25237
25238
25239
25240 } } }
25241 # 51 "./boost/format/detail/compat_workarounds.hpp" 2
25242 # 60 "./boost/format/detail/compat_workarounds.hpp"
25243 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 1 3
25244 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25245        
25246 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25247
25248 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ios" 1 3
25249 # 41 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ios" 3
25250        
25251 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ios" 3
25252 # 50 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ios" 3
25253 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 1 3
25254 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25255        
25256 # 40 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25257
25258
25259
25260
25261
25262
25263 namespace std
25264 {
25265
25266
25267
25268
25269
25270
25271
25272   template<typename _CharT, typename _Traits>
25273     class basic_ios : public ios_base
25274     {
25275     public:
25276
25277
25278
25279
25280
25281
25282       typedef _CharT char_type;
25283       typedef typename _Traits::int_type int_type;
25284       typedef typename _Traits::pos_type pos_type;
25285       typedef typename _Traits::off_type off_type;
25286       typedef _Traits traits_type;
25287 # 78 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25288       typedef ctype<_CharT> __ctype_type;
25289       typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
25290            __num_put_type;
25291       typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
25292            __num_get_type;
25293
25294
25295
25296     protected:
25297       basic_ostream<_CharT, _Traits>* _M_tie;
25298       mutable char_type _M_fill;
25299       mutable bool _M_fill_init;
25300       basic_streambuf<_CharT, _Traits>* _M_streambuf;
25301
25302
25303       const __ctype_type* _M_ctype;
25304
25305       const __num_put_type* _M_num_put;
25306
25307       const __num_get_type* _M_num_get;
25308
25309     public:
25310
25311
25312
25313
25314
25315
25316
25317       operator void*() const
25318       { return this->fail() ? 0 : const_cast<basic_ios*>(this); }
25319
25320       bool
25321       operator!() const
25322       { return this->fail(); }
25323 # 122 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25324       iostate
25325       rdstate() const
25326       { return _M_streambuf_state; }
25327 # 133 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25328       void
25329       clear(iostate __state = goodbit);
25330
25331
25332
25333
25334
25335
25336
25337       void
25338       setstate(iostate __state)
25339       { this->clear(this->rdstate() | __state); }
25340
25341
25342
25343
25344       void
25345       _M_setstate(iostate __state)
25346       {
25347
25348
25349  _M_streambuf_state |= __state;
25350  if (this->exceptions() & __state)
25351    throw;
25352       }
25353
25354
25355
25356
25357
25358
25359
25360       bool
25361       good() const
25362       { return this->rdstate() == 0; }
25363
25364
25365
25366
25367
25368
25369
25370       bool
25371       eof() const
25372       { return (this->rdstate() & eofbit) != 0; }
25373 # 186 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25374       bool
25375       fail() const
25376       { return (this->rdstate() & (badbit | failbit)) != 0; }
25377
25378
25379
25380
25381
25382
25383
25384       bool
25385       bad() const
25386       { return (this->rdstate() & badbit) != 0; }
25387 # 207 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25388       iostate
25389       exceptions() const
25390       { return _M_exception; }
25391 # 242 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25392       void
25393       exceptions(iostate __except)
25394       {
25395         _M_exception = __except;
25396         this->clear(_M_streambuf_state);
25397       }
25398
25399
25400
25401
25402
25403
25404
25405       explicit
25406       basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
25407       : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
25408       _M_ctype(0), _M_num_put(0), _M_num_get(0)
25409       { this->init(__sb); }
25410
25411
25412
25413
25414
25415
25416
25417       virtual
25418       ~basic_ios() { }
25419 # 280 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25420       basic_ostream<_CharT, _Traits>*
25421       tie() const
25422       { return _M_tie; }
25423 # 292 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25424       basic_ostream<_CharT, _Traits>*
25425       tie(basic_ostream<_CharT, _Traits>* __tiestr)
25426       {
25427         basic_ostream<_CharT, _Traits>* __old = _M_tie;
25428         _M_tie = __tiestr;
25429         return __old;
25430       }
25431
25432
25433
25434
25435
25436
25437
25438       basic_streambuf<_CharT, _Traits>*
25439       rdbuf() const
25440       { return _M_streambuf; }
25441 # 332 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25442       basic_streambuf<_CharT, _Traits>*
25443       rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
25444 # 346 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25445       basic_ios&
25446       copyfmt(const basic_ios& __rhs);
25447
25448
25449
25450
25451
25452
25453
25454       char_type
25455       fill() const
25456       {
25457  if (!_M_fill_init)
25458    {
25459      _M_fill = this->widen(' ');
25460      _M_fill_init = true;
25461    }
25462  return _M_fill;
25463       }
25464 # 375 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25465       char_type
25466       fill(char_type __ch)
25467       {
25468  char_type __old = this->fill();
25469  _M_fill = __ch;
25470  return __old;
25471       }
25472 # 395 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25473       locale
25474       imbue(const locale& __loc);
25475 # 415 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25476       char
25477       narrow(char_type __c, char __dfault) const;
25478 # 433 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 3
25479       char_type
25480       widen(char __c) const;
25481
25482     protected:
25483
25484
25485
25486
25487
25488
25489
25490       basic_ios()
25491       : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
25492       _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
25493       { }
25494
25495
25496
25497
25498
25499
25500
25501       void
25502       init(basic_streambuf<_CharT, _Traits>* __sb);
25503
25504       void
25505       _M_cache_locale(const locale& __loc);
25506     };
25507 }
25508
25509
25510 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.tcc" 1 3
25511 # 38 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.tcc" 3
25512        
25513 # 39 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.tcc" 3
25514
25515 namespace std
25516 {
25517   template<typename _CharT, typename _Traits>
25518     void
25519     basic_ios<_CharT, _Traits>::clear(iostate __state)
25520     {
25521       if (this->rdbuf())
25522  _M_streambuf_state = __state;
25523       else
25524    _M_streambuf_state = __state | badbit;
25525       if (this->exceptions() & this->rdstate())
25526  __throw_ios_failure(("basic_ios::clear"));
25527     }
25528
25529   template<typename _CharT, typename _Traits>
25530     basic_streambuf<_CharT, _Traits>*
25531     basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb)
25532     {
25533       basic_streambuf<_CharT, _Traits>* __old = _M_streambuf;
25534       _M_streambuf = __sb;
25535       this->clear();
25536       return __old;
25537     }
25538
25539   template<typename _CharT, typename _Traits>
25540     basic_ios<_CharT, _Traits>&
25541     basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
25542     {
25543
25544
25545       if (this != &__rhs)
25546  {
25547
25548
25549
25550
25551    _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
25552                       _M_local_word : new _Words[__rhs._M_word_size];
25553
25554
25555    _Callback_list* __cb = __rhs._M_callbacks;
25556    if (__cb)
25557      __cb->_M_add_reference();
25558    _M_call_callbacks(erase_event);
25559    if (_M_word != _M_local_word)
25560      {
25561        delete [] _M_word;
25562        _M_word = 0;
25563      }
25564    _M_dispose_callbacks();
25565
25566
25567    _M_callbacks = __cb;
25568    for (int __i = 0; __i < __rhs._M_word_size; ++__i)
25569      __words[__i] = __rhs._M_word[__i];
25570    _M_word = __words;
25571    _M_word_size = __rhs._M_word_size;
25572
25573    this->flags(__rhs.flags());
25574    this->width(__rhs.width());
25575    this->precision(__rhs.precision());
25576    this->tie(__rhs.tie());
25577    this->fill(__rhs.fill());
25578    _M_ios_locale = __rhs.getloc();
25579    _M_cache_locale(_M_ios_locale);
25580
25581    _M_call_callbacks(copyfmt_event);
25582
25583
25584    this->exceptions(__rhs.exceptions());
25585  }
25586       return *this;
25587     }
25588
25589   template<typename _CharT, typename _Traits>
25590     char
25591     basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const
25592     { return __check_facet(_M_ctype).narrow(__c, __dfault); }
25593
25594   template<typename _CharT, typename _Traits>
25595     _CharT
25596     basic_ios<_CharT, _Traits>::widen(char __c) const
25597     { return __check_facet(_M_ctype).widen(__c); }
25598
25599
25600   template<typename _CharT, typename _Traits>
25601     locale
25602     basic_ios<_CharT, _Traits>::imbue(const locale& __loc)
25603     {
25604       locale __old(this->getloc());
25605       ios_base::imbue(__loc);
25606       _M_cache_locale(__loc);
25607       if (this->rdbuf() != 0)
25608  this->rdbuf()->pubimbue(__loc);
25609       return __old;
25610     }
25611
25612   template<typename _CharT, typename _Traits>
25613     void
25614     basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb)
25615     {
25616
25617       ios_base::_M_init();
25618
25619
25620       _M_cache_locale(_M_ios_locale);
25621 # 159 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.tcc" 3
25622       _M_fill = _CharT();
25623       _M_fill_init = false;
25624
25625       _M_tie = 0;
25626       _M_exception = goodbit;
25627       _M_streambuf = __sb;
25628       _M_streambuf_state = __sb ? goodbit : badbit;
25629     }
25630
25631   template<typename _CharT, typename _Traits>
25632     void
25633     basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc)
25634     {
25635       if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
25636  _M_ctype = &use_facet<__ctype_type>(__loc);
25637       else
25638  _M_ctype = 0;
25639
25640       if (__builtin_expect(has_facet<__num_put_type>(__loc), true))
25641  _M_num_put = &use_facet<__num_put_type>(__loc);
25642       else
25643  _M_num_put = 0;
25644
25645       if (__builtin_expect(has_facet<__num_get_type>(__loc), true))
25646  _M_num_get = &use_facet<__num_get_type>(__loc);
25647       else
25648  _M_num_get = 0;
25649     }
25650
25651
25652
25653
25654
25655   extern template class basic_ios<char>;
25656
25657
25658
25659
25660
25661 }
25662 # 465 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/basic_ios.h" 2 3
25663 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ios" 2 3
25664 # 45 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 2 3
25665
25666 namespace std
25667 {
25668 # 56 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25669   template<typename _CharT, typename _Traits>
25670     class basic_ostream : virtual public basic_ios<_CharT, _Traits>
25671     {
25672     public:
25673
25674       typedef _CharT char_type;
25675       typedef typename _Traits::int_type int_type;
25676       typedef typename _Traits::pos_type pos_type;
25677       typedef typename _Traits::off_type off_type;
25678       typedef _Traits traits_type;
25679
25680
25681       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
25682       typedef basic_ios<_CharT, _Traits> __ios_type;
25683       typedef basic_ostream<_CharT, _Traits> __ostream_type;
25684       typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
25685              __num_put_type;
25686       typedef ctype<_CharT> __ctype_type;
25687
25688       template<typename _CharT2, typename _Traits2>
25689         friend basic_ostream<_CharT2, _Traits2>&
25690         operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2);
25691
25692       template<typename _Traits2>
25693         friend basic_ostream<char, _Traits2>&
25694         operator<<(basic_ostream<char, _Traits2>&, char);
25695
25696       template<typename _CharT2, typename _Traits2>
25697         friend basic_ostream<_CharT2, _Traits2>&
25698         operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*);
25699
25700       template<typename _Traits2>
25701         friend basic_ostream<char, _Traits2>&
25702         operator<<(basic_ostream<char, _Traits2>&, const char*);
25703
25704       template<typename _CharT2, typename _Traits2>
25705         friend basic_ostream<_CharT2, _Traits2>&
25706         operator<<(basic_ostream<_CharT2, _Traits2>&, const char*);
25707 # 103 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25708       explicit
25709       basic_ostream(__streambuf_type* __sb)
25710       { this->init(__sb); }
25711
25712
25713
25714
25715
25716
25717       virtual
25718       ~basic_ostream() { }
25719
25720
25721       class sentry;
25722       friend class sentry;
25723 # 129 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25724       inline __ostream_type&
25725       operator<<(__ostream_type& (*__pf)(__ostream_type&));
25726
25727       inline __ostream_type&
25728       operator<<(__ios_type& (*__pf)(__ios_type&));
25729
25730       inline __ostream_type&
25731       operator<<(ios_base& (*__pf) (ios_base&));
25732 # 166 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25733       __ostream_type&
25734       operator<<(long __n);
25735
25736       __ostream_type&
25737       operator<<(unsigned long __n);
25738
25739       __ostream_type&
25740       operator<<(bool __n);
25741
25742       __ostream_type&
25743       operator<<(short __n);
25744
25745       __ostream_type&
25746       operator<<(unsigned short __n);
25747
25748       __ostream_type&
25749       operator<<(int __n);
25750
25751       __ostream_type&
25752       operator<<(unsigned int __n);
25753
25754
25755       __ostream_type&
25756       operator<<(long long __n);
25757
25758       __ostream_type&
25759       operator<<(unsigned long long __n);
25760
25761
25762       __ostream_type&
25763       operator<<(double __f);
25764
25765       __ostream_type&
25766       operator<<(float __f);
25767
25768       __ostream_type&
25769       operator<<(long double __f);
25770
25771       __ostream_type&
25772       operator<<(const void* __p);
25773 # 228 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25774       __ostream_type&
25775       operator<<(__streambuf_type* __sb);
25776 # 261 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25777       __ostream_type&
25778       put(char_type __c);
25779
25780
25781       void
25782       _M_write(const char_type* __s, streamsize __n)
25783       {
25784  streamsize __put = this->rdbuf()->sputn(__s, __n);
25785  if (__put != __n)
25786    this->setstate(ios_base::badbit);
25787       }
25788 # 289 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25789       __ostream_type&
25790       write(const char_type* __s, streamsize __n);
25791 # 302 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25792       __ostream_type&
25793       flush();
25794 # 313 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25795       pos_type
25796       tellp();
25797 # 324 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25798       __ostream_type&
25799       seekp(pos_type);
25800 # 336 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25801        __ostream_type&
25802       seekp(off_type, ios_base::seekdir);
25803
25804     protected:
25805       explicit
25806       basic_ostream() { }
25807     };
25808 # 354 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25809   template <typename _CharT, typename _Traits>
25810     class basic_ostream<_CharT, _Traits>::sentry
25811     {
25812
25813       bool _M_ok;
25814       basic_ostream<_CharT,_Traits>& _M_os;
25815
25816     public:
25817 # 373 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25818       explicit
25819       sentry(basic_ostream<_CharT,_Traits>& __os);
25820 # 383 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25821       ~sentry()
25822       {
25823
25824  if (_M_os.flags() & ios_base::unitbuf && !uncaught_exception())
25825    {
25826
25827      if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)
25828        _M_os.setstate(ios_base::badbit);
25829    }
25830       }
25831 # 401 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25832       operator bool() const
25833       { return _M_ok; }
25834     };
25835 # 422 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25836   template<typename _CharT, typename _Traits>
25837     basic_ostream<_CharT, _Traits>&
25838     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c);
25839
25840   template<typename _CharT, typename _Traits>
25841     basic_ostream<_CharT, _Traits>&
25842     operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
25843     { return (__out << __out.widen(__c)); }
25844
25845
25846   template <class _Traits>
25847     basic_ostream<char, _Traits>&
25848     operator<<(basic_ostream<char, _Traits>& __out, char __c);
25849
25850
25851   template<class _Traits>
25852     basic_ostream<char, _Traits>&
25853     operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
25854     { return (__out << static_cast<char>(__c)); }
25855
25856   template<class _Traits>
25857     basic_ostream<char, _Traits>&
25858     operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
25859     { return (__out << static_cast<char>(__c)); }
25860 # 462 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25861   template<typename _CharT, typename _Traits>
25862     basic_ostream<_CharT, _Traits>&
25863     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s);
25864
25865   template<typename _CharT, typename _Traits>
25866     basic_ostream<_CharT, _Traits> &
25867     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);
25868
25869
25870   template<class _Traits>
25871     basic_ostream<char, _Traits>&
25872     operator<<(basic_ostream<char, _Traits>& __out, const char* __s);
25873
25874
25875   template<class _Traits>
25876     basic_ostream<char, _Traits>&
25877     operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
25878     { return (__out << reinterpret_cast<const char*>(__s)); }
25879
25880   template<class _Traits>
25881     basic_ostream<char, _Traits> &
25882     operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
25883     { return (__out << reinterpret_cast<const char*>(__s)); }
25884 # 496 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 3
25885   template<typename _CharT, typename _Traits>
25886     basic_ostream<_CharT, _Traits>&
25887     endl(basic_ostream<_CharT, _Traits>& __os)
25888     { return flush(__os.put(__os.widen('\n'))); }
25889
25890
25891
25892
25893
25894
25895
25896   template<typename _CharT, typename _Traits>
25897     basic_ostream<_CharT, _Traits>&
25898     ends(basic_ostream<_CharT, _Traits>& __os)
25899     { return __os.put(_CharT()); }
25900
25901
25902
25903
25904
25905
25906   template<typename _CharT, typename _Traits>
25907     basic_ostream<_CharT, _Traits>&
25908     flush(basic_ostream<_CharT, _Traits>& __os)
25909     { return __os.flush(); }
25910
25911 }
25912
25913
25914 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ostream.tcc" 1 3
25915 # 43 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ostream.tcc" 3
25916        
25917 # 44 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ostream.tcc" 3
25918
25919
25920
25921 namespace std
25922 {
25923   template<typename _CharT, typename _Traits>
25924     basic_ostream<_CharT, _Traits>::sentry::
25925     sentry(basic_ostream<_CharT, _Traits>& __os)
25926     : _M_ok(false), _M_os(__os)
25927     {
25928
25929       if (__os.tie() && __os.good())
25930  __os.tie()->flush();
25931
25932       if (__os.good())
25933  _M_ok = true;
25934       else
25935  __os.setstate(ios_base::failbit);
25936     }
25937
25938   template<typename _CharT, typename _Traits>
25939     basic_ostream<_CharT, _Traits>&
25940     basic_ostream<_CharT, _Traits>::
25941     operator<<(__ostream_type& (*__pf)(__ostream_type&))
25942     {
25943
25944
25945
25946       return __pf(*this);
25947     }
25948
25949   template<typename _CharT, typename _Traits>
25950     basic_ostream<_CharT, _Traits>&
25951     basic_ostream<_CharT, _Traits>::
25952     operator<<(__ios_type& (*__pf)(__ios_type&))
25953     {
25954
25955
25956
25957       __pf(*this);
25958       return *this;
25959     }
25960
25961   template<typename _CharT, typename _Traits>
25962     basic_ostream<_CharT, _Traits>&
25963     basic_ostream<_CharT, _Traits>::
25964     operator<<(ios_base& (*__pf)(ios_base&))
25965     {
25966
25967
25968
25969       __pf(*this);
25970       return *this;
25971     }
25972
25973   template<typename _CharT, typename _Traits>
25974     basic_ostream<_CharT, _Traits>&
25975     basic_ostream<_CharT, _Traits>::
25976     operator<<(bool __n)
25977     {
25978       sentry __cerb(*this);
25979       if (__cerb)
25980  {
25981    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
25982    try
25983      {
25984        const __num_put_type& __np = __check_facet(this->_M_num_put);
25985        if (__np.put(*this, *this, this->fill(), __n).failed())
25986   __err |= ios_base::badbit;
25987      }
25988    catch(...)
25989      { this->_M_setstate(ios_base::badbit); }
25990    if (__err)
25991      this->setstate(__err);
25992  }
25993       return *this;
25994     }
25995
25996   template<typename _CharT, typename _Traits>
25997     basic_ostream<_CharT, _Traits>&
25998     basic_ostream<_CharT, _Traits>::
25999     operator<<(short __n)
26000     {
26001       sentry __cerb(*this);
26002       if (__cerb)
26003  {
26004    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26005    try
26006      {
26007
26008
26009        long __l;
26010        const ios_base::fmtflags __fmt = (this->flags()
26011       & ios_base::basefield);
26012        if (__fmt == ios_base::oct || __fmt == ios_base::hex)
26013   __l = static_cast<long>(static_cast<unsigned short>(__n));
26014        else
26015   __l = static_cast<long>(__n);
26016        const __num_put_type& __np = __check_facet(this->_M_num_put);
26017        if (__np.put(*this, *this, this->fill(), __l).failed())
26018   __err |= ios_base::badbit;
26019      }
26020    catch(...)
26021      { this->_M_setstate(ios_base::badbit); }
26022    if (__err)
26023      this->setstate(__err);
26024  }
26025       return *this;
26026     }
26027
26028   template<typename _CharT, typename _Traits>
26029     basic_ostream<_CharT, _Traits>&
26030     basic_ostream<_CharT, _Traits>::
26031     operator<<(unsigned short __n)
26032     {
26033       sentry __cerb(*this);
26034       if (__cerb)
26035  {
26036    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26037    try
26038      {
26039
26040
26041        const __num_put_type& __np = __check_facet(this->_M_num_put);
26042        if (__np.put(*this, *this, this->fill(),
26043       static_cast<unsigned long>(__n)).failed())
26044   __err |= ios_base::badbit;
26045      }
26046    catch(...)
26047      { this->_M_setstate(ios_base::badbit); }
26048    if (__err)
26049      this->setstate(__err);
26050  }
26051       return *this;
26052     }
26053
26054   template<typename _CharT, typename _Traits>
26055     basic_ostream<_CharT, _Traits>&
26056     basic_ostream<_CharT, _Traits>::
26057     operator<<(int __n)
26058     {
26059       sentry __cerb(*this);
26060       if (__cerb)
26061  {
26062    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26063    try
26064      {
26065
26066
26067        long __l;
26068        const ios_base::fmtflags __fmt = (this->flags()
26069       & ios_base::basefield);
26070        if (__fmt == ios_base::oct || __fmt == ios_base::hex)
26071   __l = static_cast<long>(static_cast<unsigned int>(__n));
26072        else
26073   __l = static_cast<long>(__n);
26074        const __num_put_type& __np = __check_facet(this->_M_num_put);
26075        if (__np.put(*this, *this, this->fill(), __l).failed())
26076   __err |= ios_base::badbit;
26077      }
26078    catch(...)
26079      { this->_M_setstate(ios_base::badbit); }
26080    if (__err)
26081      this->setstate(__err);
26082  }
26083       return *this;
26084     }
26085
26086   template<typename _CharT, typename _Traits>
26087     basic_ostream<_CharT, _Traits>&
26088     basic_ostream<_CharT, _Traits>::
26089     operator<<(unsigned int __n)
26090     {
26091       sentry __cerb(*this);
26092       if (__cerb)
26093  {
26094    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26095    try
26096      {
26097
26098
26099        const __num_put_type& __np = __check_facet(this->_M_num_put);
26100        if (__np.put(*this, *this, this->fill(),
26101       static_cast<unsigned long>(__n)).failed())
26102   __err |= ios_base::badbit;
26103      }
26104    catch(...)
26105      { this->_M_setstate(ios_base::badbit); }
26106    if (__err)
26107      this->setstate(__err);
26108  }
26109       return *this;
26110     }
26111
26112   template<typename _CharT, typename _Traits>
26113     basic_ostream<_CharT, _Traits>&
26114     basic_ostream<_CharT, _Traits>::
26115     operator<<(long __n)
26116     {
26117       sentry __cerb(*this);
26118       if (__cerb)
26119  {
26120    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26121    try
26122      {
26123        const __num_put_type& __np = __check_facet(this->_M_num_put);
26124        if (__np.put(*this, *this, this->fill(), __n).failed())
26125   __err |= ios_base::badbit;
26126      }
26127    catch(...)
26128      { this->_M_setstate(ios_base::badbit); }
26129    if (__err)
26130      this->setstate(__err);
26131  }
26132       return *this;
26133     }
26134
26135   template<typename _CharT, typename _Traits>
26136     basic_ostream<_CharT, _Traits>&
26137     basic_ostream<_CharT, _Traits>::
26138     operator<<(unsigned long __n)
26139     {
26140       sentry __cerb(*this);
26141       if (__cerb)
26142  {
26143    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26144    try
26145      {
26146        const __num_put_type& __np = __check_facet(this->_M_num_put);
26147        if (__np.put(*this, *this, this->fill(), __n).failed())
26148   __err |= ios_base::badbit;
26149      }
26150    catch(...)
26151      { this->_M_setstate(ios_base::badbit); }
26152    if (__err)
26153      this->setstate(__err);
26154  }
26155       return *this;
26156     }
26157
26158
26159   template<typename _CharT, typename _Traits>
26160     basic_ostream<_CharT, _Traits>&
26161     basic_ostream<_CharT, _Traits>::
26162     operator<<(long long __n)
26163     {
26164       sentry __cerb(*this);
26165       if (__cerb)
26166  {
26167    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26168    try
26169      {
26170        const __num_put_type& __np = __check_facet(this->_M_num_put);
26171        if (__np.put(*this, *this, this->fill(), __n).failed())
26172   __err |= ios_base::badbit;
26173      }
26174    catch(...)
26175      { this->_M_setstate(ios_base::badbit); }
26176    if (__err)
26177      this->setstate(__err);
26178  }
26179       return *this;
26180     }
26181
26182   template<typename _CharT, typename _Traits>
26183     basic_ostream<_CharT, _Traits>&
26184     basic_ostream<_CharT, _Traits>::
26185     operator<<(unsigned long long __n)
26186     {
26187       sentry __cerb(*this);
26188       if (__cerb)
26189  {
26190    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26191    try
26192      {
26193        const __num_put_type& __np = __check_facet(this->_M_num_put);
26194        if (__np.put(*this, *this, this->fill(), __n).failed())
26195   __err |= ios_base::badbit;
26196      }
26197    catch(...)
26198      { this->_M_setstate(ios_base::badbit); }
26199    if (__err)
26200      this->setstate(__err);
26201  }
26202       return *this;
26203     }
26204
26205
26206   template<typename _CharT, typename _Traits>
26207     basic_ostream<_CharT, _Traits>&
26208     basic_ostream<_CharT, _Traits>::
26209     operator<<(float __n)
26210     {
26211       sentry __cerb(*this);
26212       if (__cerb)
26213  {
26214    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26215    try
26216      {
26217
26218
26219        const __num_put_type& __np = __check_facet(this->_M_num_put);
26220        if (__np.put(*this, *this, this->fill(),
26221       static_cast<double>(__n)).failed())
26222   __err |= ios_base::badbit;
26223      }
26224    catch(...)
26225      { this->_M_setstate(ios_base::badbit); }
26226    if (__err)
26227      this->setstate(__err);
26228  }
26229       return *this;
26230     }
26231
26232   template<typename _CharT, typename _Traits>
26233     basic_ostream<_CharT, _Traits>&
26234     basic_ostream<_CharT, _Traits>::
26235     operator<<(double __n)
26236     {
26237       sentry __cerb(*this);
26238       if (__cerb)
26239  {
26240    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26241    try
26242      {
26243        const __num_put_type& __np = __check_facet(this->_M_num_put);
26244        if (__np.put(*this, *this, this->fill(), __n).failed())
26245   __err |= ios_base::badbit;
26246      }
26247    catch(...)
26248      { this->_M_setstate(ios_base::badbit); }
26249    if (__err)
26250      this->setstate(__err);
26251  }
26252       return *this;
26253     }
26254
26255   template<typename _CharT, typename _Traits>
26256     basic_ostream<_CharT, _Traits>&
26257     basic_ostream<_CharT, _Traits>::
26258     operator<<(long double __n)
26259     {
26260       sentry __cerb(*this);
26261       if (__cerb)
26262  {
26263    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26264    try
26265      {
26266        const __num_put_type& __np = __check_facet(this->_M_num_put);
26267        if (__np.put(*this, *this, this->fill(), __n).failed())
26268   __err |= ios_base::badbit;
26269      }
26270    catch(...)
26271      { this->_M_setstate(ios_base::badbit); }
26272    if (__err)
26273      this->setstate(__err);
26274  }
26275       return *this;
26276     }
26277
26278   template<typename _CharT, typename _Traits>
26279     basic_ostream<_CharT, _Traits>&
26280     basic_ostream<_CharT, _Traits>::
26281     operator<<(const void* __n)
26282     {
26283       sentry __cerb(*this);
26284       if (__cerb)
26285  {
26286    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26287    try
26288      {
26289        const __num_put_type& __np = __check_facet(this->_M_num_put);
26290        if (__np.put(*this, *this, this->fill(), __n).failed())
26291   __err |= ios_base::badbit;
26292      }
26293    catch(...)
26294      { this->_M_setstate(ios_base::badbit); }
26295    if (__err)
26296      this->setstate(__err);
26297  }
26298       return *this;
26299     }
26300
26301   template<typename _CharT, typename _Traits>
26302     basic_ostream<_CharT, _Traits>&
26303     basic_ostream<_CharT, _Traits>::
26304     operator<<(__streambuf_type* __sbin)
26305     {
26306       ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26307       sentry __cerb(*this);
26308       if (__cerb && __sbin)
26309  {
26310    try
26311      {
26312        if (!__copy_streambufs(__sbin, this->rdbuf()))
26313   __err |= ios_base::failbit;
26314      }
26315    catch(...)
26316      { this->_M_setstate(ios_base::failbit); }
26317  }
26318       else if (!__sbin)
26319  __err |= ios_base::badbit;
26320       if (__err)
26321  this->setstate(__err);
26322       return *this;
26323     }
26324
26325   template<typename _CharT, typename _Traits>
26326     basic_ostream<_CharT, _Traits>&
26327     basic_ostream<_CharT, _Traits>::
26328     put(char_type __c)
26329     {
26330
26331
26332
26333
26334
26335
26336       sentry __cerb(*this);
26337       if (__cerb)
26338  {
26339    ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26340    try
26341      {
26342        const int_type __put = this->rdbuf()->sputc(__c);
26343        if (traits_type::eq_int_type(__put, traits_type::eof()))
26344   __err |= ios_base::badbit;
26345      }
26346    catch (...)
26347      { this->_M_setstate(ios_base::badbit); }
26348    if (__err)
26349      this->setstate(__err);
26350  }
26351       return *this;
26352     }
26353
26354   template<typename _CharT, typename _Traits>
26355     basic_ostream<_CharT, _Traits>&
26356     basic_ostream<_CharT, _Traits>::
26357     write(const _CharT* __s, streamsize __n)
26358     {
26359
26360
26361
26362
26363
26364
26365
26366       sentry __cerb(*this);
26367       if (__cerb)
26368  {
26369    try
26370      { _M_write(__s, __n); }
26371    catch (...)
26372      { this->_M_setstate(ios_base::badbit); }
26373  }
26374       return *this;
26375     }
26376
26377   template<typename _CharT, typename _Traits>
26378     basic_ostream<_CharT, _Traits>&
26379     basic_ostream<_CharT, _Traits>::
26380     flush()
26381     {
26382
26383
26384
26385       ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26386       try
26387  {
26388    if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
26389      __err |= ios_base::badbit;
26390  }
26391       catch(...)
26392  { this->_M_setstate(ios_base::badbit); }
26393       if (__err)
26394  this->setstate(__err);
26395       return *this;
26396     }
26397
26398   template<typename _CharT, typename _Traits>
26399     typename basic_ostream<_CharT, _Traits>::pos_type
26400     basic_ostream<_CharT, _Traits>::
26401     tellp()
26402     {
26403       pos_type __ret = pos_type(-1);
26404       try
26405  {
26406    if (!this->fail())
26407      __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
26408  }
26409       catch(...)
26410  { this->_M_setstate(ios_base::badbit); }
26411       return __ret;
26412     }
26413
26414   template<typename _CharT, typename _Traits>
26415     basic_ostream<_CharT, _Traits>&
26416     basic_ostream<_CharT, _Traits>::
26417     seekp(pos_type __pos)
26418     {
26419       ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26420       try
26421  {
26422    if (!this->fail())
26423      {
26424
26425
26426        const pos_type __p = this->rdbuf()->pubseekpos(__pos,
26427             ios_base::out);
26428
26429
26430        if (__p == pos_type(off_type(-1)))
26431   __err |= ios_base::failbit;
26432      }
26433  }
26434       catch(...)
26435  { this->_M_setstate(ios_base::badbit); }
26436       if (__err)
26437  this->setstate(__err);
26438       return *this;
26439     }
26440
26441   template<typename _CharT, typename _Traits>
26442     basic_ostream<_CharT, _Traits>&
26443     basic_ostream<_CharT, _Traits>::
26444     seekp(off_type __off, ios_base::seekdir __dir)
26445     {
26446       ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
26447       try
26448  {
26449    if (!this->fail())
26450      {
26451
26452
26453        const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
26454             ios_base::out);
26455
26456
26457        if (__p == pos_type(off_type(-1)))
26458   __err |= ios_base::failbit;
26459      }
26460  }
26461       catch(...)
26462  { this->_M_setstate(ios_base::badbit); }
26463       if (__err)
26464  this->setstate(__err);
26465       return *this;
26466     }
26467
26468
26469   template<typename _CharT, typename _Traits>
26470     basic_ostream<_CharT, _Traits>&
26471     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
26472     {
26473       typedef basic_ostream<_CharT, _Traits> __ostream_type;
26474       typename __ostream_type::sentry __cerb(__out);
26475       if (__cerb)
26476  {
26477    try
26478      {
26479        const streamsize __w = __out.width();
26480        streamsize __len = 1;
26481        _CharT* __cs = &__c;
26482        if (__w > __len)
26483   {
26484     __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
26485               * __w));
26486     __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __cs,
26487        &__c, __w, __len, false);
26488     __len = __w;
26489   }
26490        __out._M_write(__cs, __len);
26491        __out.width(0);
26492      }
26493    catch(...)
26494      { __out._M_setstate(ios_base::badbit); }
26495  }
26496       return __out;
26497     }
26498
26499
26500   template <class _Traits>
26501     basic_ostream<char, _Traits>&
26502     operator<<(basic_ostream<char, _Traits>& __out, char __c)
26503     {
26504       typedef basic_ostream<char, _Traits> __ostream_type;
26505       typename __ostream_type::sentry __cerb(__out);
26506       if (__cerb)
26507  {
26508    try
26509      {
26510        const streamsize __w = __out.width();
26511        streamsize __len = 1;
26512        char* __cs = &__c;
26513        if (__w > __len)
26514   {
26515     __cs = static_cast<char*>(__builtin_alloca(__w));
26516     __pad<char, _Traits>::_S_pad(__out, __out.fill(), __cs,
26517             &__c, __w, __len, false);
26518     __len = __w;
26519   }
26520        __out._M_write(__cs, __len);
26521        __out.width(0);
26522      }
26523    catch(...)
26524      { __out._M_setstate(ios_base::badbit); }
26525  }
26526       return __out;
26527      }
26528
26529   template<typename _CharT, typename _Traits>
26530     basic_ostream<_CharT, _Traits>&
26531     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
26532     {
26533       typedef basic_ostream<_CharT, _Traits> __ostream_type;
26534       typename __ostream_type::sentry __cerb(__out);
26535       if (__cerb && __s)
26536  {
26537    try
26538      {
26539        const streamsize __w = __out.width();
26540        streamsize __len = static_cast<streamsize>(_Traits::length(__s));
26541        if (__w > __len)
26542   {
26543     _CharT* __cs = (static_cast<
26544       _CharT*>(__builtin_alloca(sizeof(_CharT)
26545            * __w)));
26546     __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __cs,
26547        __s, __w, __len, false);
26548     __s = __cs;
26549     __len = __w;
26550   }
26551        __out._M_write(__s, __len);
26552        __out.width(0);
26553      }
26554    catch(...)
26555      { __out._M_setstate(ios_base::badbit); }
26556  }
26557       else if (!__s)
26558  __out.setstate(ios_base::badbit);
26559       return __out;
26560     }
26561
26562   template<typename _CharT, typename _Traits>
26563     basic_ostream<_CharT, _Traits>&
26564     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
26565     {
26566       typedef basic_ostream<_CharT, _Traits> __ostream_type;
26567
26568
26569
26570       typedef char_traits<char> __traits_type;
26571       typename __ostream_type::sentry __cerb(__out);
26572       if (__cerb && __s)
26573  {
26574    size_t __clen = __traits_type::length(__s);
26575    _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
26576               * __clen));
26577    for (size_t __i = 0; __i < __clen; ++__i)
26578      __ws[__i] = __out.widen(__s[__i]);
26579    _CharT* __str = __ws;
26580
26581    try
26582      {
26583        const streamsize __w = __out.width();
26584        streamsize __len = static_cast<streamsize>(__clen);
26585        if (__w > __len)
26586   {
26587     _CharT* __cs = (static_cast<
26588       _CharT*>(__builtin_alloca(sizeof(_CharT)
26589            * __w)));
26590     __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __cs,
26591        __ws, __w, __len, false);
26592     __str = __cs;
26593     __len = __w;
26594   }
26595        __out._M_write(__str, __len);
26596        __out.width(0);
26597      }
26598    catch(...)
26599      { __out._M_setstate(ios_base::badbit); }
26600  }
26601       else if (!__s)
26602  __out.setstate(ios_base::badbit);
26603       return __out;
26604     }
26605
26606
26607   template<class _Traits>
26608     basic_ostream<char, _Traits>&
26609     operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
26610     {
26611       typedef basic_ostream<char, _Traits> __ostream_type;
26612       typename __ostream_type::sentry __cerb(__out);
26613       if (__cerb && __s)
26614  {
26615    try
26616      {
26617        const streamsize __w = __out.width();
26618        streamsize __len = static_cast<streamsize>(_Traits::length(__s));
26619        if (__w > __len)
26620   {
26621     char* __cs = static_cast<char*>(__builtin_alloca(__w));
26622     __pad<char, _Traits>::_S_pad(__out, __out.fill(), __cs,
26623        __s, __w, __len, false);
26624     __s = __cs;
26625     __len = __w;
26626   }
26627        __out._M_write(__s, __len);
26628        __out.width(0);
26629      }
26630    catch(...)
26631      { __out._M_setstate(ios_base::badbit); }
26632  }
26633       else if (!__s)
26634  __out.setstate(ios_base::badbit);
26635       return __out;
26636     }
26637
26638
26639   template<typename _CharT, typename _Traits, typename _Alloc>
26640     basic_ostream<_CharT, _Traits>&
26641     operator<<(basic_ostream<_CharT, _Traits>& __out,
26642         const basic_string<_CharT, _Traits, _Alloc>& __str)
26643     {
26644       typedef basic_ostream<_CharT, _Traits> __ostream_type;
26645       typename __ostream_type::sentry __cerb(__out);
26646       if (__cerb)
26647  {
26648    const streamsize __w = __out.width();
26649    streamsize __len = static_cast<streamsize>(__str.size());
26650    const _CharT* __s = __str.data();
26651
26652
26653
26654    if (__w > __len)
26655      {
26656        _CharT* __cs = (static_cast<
26657          _CharT*>(__builtin_alloca(sizeof(_CharT) * __w)));
26658        __pad<_CharT, _Traits>::_S_pad(__out, __out.fill(), __cs, __s,
26659           __w, __len, false);
26660        __s = __cs;
26661        __len = __w;
26662      }
26663    __out._M_write(__s, __len);
26664    __out.width(0);
26665  }
26666       return __out;
26667     }
26668
26669
26670
26671
26672
26673   extern template class basic_ostream<char>;
26674   extern template ostream& endl(ostream&);
26675   extern template ostream& ends(ostream&);
26676   extern template ostream& flush(ostream&);
26677   extern template ostream& operator<<(ostream&, char);
26678   extern template ostream& operator<<(ostream&, unsigned char);
26679   extern template ostream& operator<<(ostream&, signed char);
26680   extern template ostream& operator<<(ostream&, const char*);
26681   extern template ostream& operator<<(ostream&, const unsigned char*);
26682   extern template ostream& operator<<(ostream&, const signed char*);
26683 # 821 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/bits/ostream.tcc" 3
26684 }
26685 # 526 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/ostream" 2 3
26686 # 61 "./boost/format/detail/compat_workarounds.hpp" 2
26687
26688
26689
26690
26691 namespace boost {
26692     namespace io {
26693
26694
26695         template<class Tr>
26696         class CompatTraits
26697         {
26698         public:
26699             typedef Tr compatible_type;
26700         };
26701
26702
26703         template<class Alloc>
26704         class CompatAlloc
26705         {
26706         public:
26707             typedef Alloc compatible_type;
26708         };
26709
26710     }
26711 }
26712 # 28 "./boost/format.hpp" 2
26713
26714
26715
26716
26717
26718
26719 # 1 "./boost/format/format_fwd.hpp" 1
26720 # 21 "./boost/format/format_fwd.hpp"
26721 namespace boost {
26722
26723     template <class Ch,
26724
26725
26726         class Tr = ::std:: char_traits<Ch>, class Alloc = std::allocator<Ch> >
26727
26728
26729
26730     class basic_format;
26731
26732     typedef basic_format<char > format;
26733
26734
26735
26736
26737
26738
26739     namespace io {
26740         enum format_error_bits { bad_format_string_bit = 1,
26741                                  too_few_args_bit = 2, too_many_args_bit = 4,
26742                                  out_of_range_bit = 8,
26743                                  all_error_bits = 255, no_error_bits=0 };
26744
26745     }
26746
26747 }
26748 # 35 "./boost/format.hpp" 2
26749 # 1 "./boost/format/internals_fwd.hpp" 1
26750 # 20 "./boost/format/internals_fwd.hpp"
26751 namespace boost {
26752 namespace io {
26753
26754 namespace detail {
26755   template<class Ch, class Tr> struct stream_format_state;
26756     template<class Ch, class Tr, class Alloc> struct format_item;
26757
26758
26759
26760
26761
26762     template<class Ch, class Tr, class Alloc, class T>
26763     basic_format<Ch, Tr, Alloc>&
26764     modify_item_body (basic_format<Ch, Tr, Alloc>& self,
26765                       int itemN, T manipulator);
26766
26767     template<class Ch, class Tr, class Alloc, class T>
26768     basic_format<Ch, Tr, Alloc>&
26769     bind_arg_body (basic_format<Ch, Tr, Alloc>& self,
26770                    int argN, const T& val);
26771
26772
26773     template<class Ch, class Tr, class T>
26774     void apply_manip_body (stream_format_state<Ch, Tr>& self,
26775                            T manipulator);
26776
26777
26778     template<class Ch, class Tr, class Alloc, class T>
26779     void distribute (basic_format<Ch,Tr, Alloc>& self, T x);
26780
26781     template<class Ch, class Tr, class Alloc, class T>
26782     basic_format<Ch, Tr, Alloc>&
26783     feed (basic_format<Ch,Tr, Alloc>& self, T x);
26784
26785 }
26786
26787 }
26788 }
26789 # 36 "./boost/format.hpp" 2
26790
26791
26792 # 1 "./boost/format/internals.hpp" 1
26793 # 19 "./boost/format/internals.hpp"
26794 # 1 "./boost/assert.hpp" 1
26795 # 36 "./boost/assert.hpp"
26796 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
26797 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
26798 extern "C" {
26799
26800
26801 extern void __assert (const char *, const char *, int, const char *);
26802
26803 }
26804 # 37 "./boost/assert.hpp" 2
26805 # 20 "./boost/format/internals.hpp" 2
26806 # 1 "./boost/optional.hpp" 1
26807 # 15 "./boost/optional.hpp"
26808 # 1 "./boost/optional/optional.hpp" 1
26809 # 19 "./boost/optional/optional.hpp"
26810 # 1 "./boost/assert.hpp" 1
26811 # 36 "./boost/assert.hpp"
26812 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
26813 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
26814 extern "C" {
26815
26816
26817 extern void __assert (const char *, const char *, int, const char *);
26818
26819 }
26820 # 37 "./boost/assert.hpp" 2
26821 # 20 "./boost/optional/optional.hpp" 2
26822 # 1 "./boost/type.hpp" 1
26823 # 9 "./boost/type.hpp"
26824 namespace boost {
26825
26826
26827
26828   template <class T>
26829   struct type {};
26830
26831 }
26832 # 21 "./boost/optional/optional.hpp" 2
26833 # 1 "./boost/type_traits/alignment_of.hpp" 1
26834 # 16 "./boost/type_traits/alignment_of.hpp"
26835 # 1 "./boost/type_traits/detail/size_t_trait_def.hpp" 1
26836 # 14 "./boost/type_traits/detail/size_t_trait_def.hpp"
26837 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
26838 # 10 "./boost/type_traits/detail/template_arity_spec.hpp"
26839 # 1 "./boost/mpl/int.hpp" 1
26840 # 17 "./boost/mpl/int.hpp"
26841 # 1 "./boost/mpl/int_fwd.hpp" 1
26842 # 17 "./boost/mpl/int_fwd.hpp"
26843 # 1 "./boost/mpl/aux_/adl_barrier.hpp" 1
26844 # 17 "./boost/mpl/aux_/adl_barrier.hpp"
26845 # 1 "./boost/mpl/aux_/config/adl.hpp" 1
26846 # 17 "./boost/mpl/aux_/config/adl.hpp"
26847 # 1 "./boost/mpl/aux_/config/msvc.hpp" 1
26848 # 18 "./boost/mpl/aux_/config/adl.hpp" 2
26849 # 1 "./boost/mpl/aux_/config/intel.hpp" 1
26850 # 19 "./boost/mpl/aux_/config/adl.hpp" 2
26851 # 1 "./boost/mpl/aux_/config/gcc.hpp" 1
26852 # 20 "./boost/mpl/aux_/config/adl.hpp" 2
26853 # 1 "./boost/mpl/aux_/config/workaround.hpp" 1
26854 # 21 "./boost/mpl/aux_/config/adl.hpp" 2
26855 # 18 "./boost/mpl/aux_/adl_barrier.hpp" 2
26856 # 33 "./boost/mpl/aux_/adl_barrier.hpp"
26857 namespace mpl_ { namespace aux {} }
26858 namespace boost { namespace mpl { using namespace mpl_;
26859 namespace aux { using namespace mpl_::aux; }
26860 }}
26861 # 18 "./boost/mpl/int_fwd.hpp" 2
26862 # 1 "./boost/mpl/aux_/nttp_decl.hpp" 1
26863 # 17 "./boost/mpl/aux_/nttp_decl.hpp"
26864 # 1 "./boost/mpl/aux_/config/nttp.hpp" 1
26865 # 18 "./boost/mpl/aux_/nttp_decl.hpp" 2
26866 # 19 "./boost/mpl/int_fwd.hpp" 2
26867
26868 namespace mpl_ {
26869
26870 template< int N > struct int_;
26871
26872 }
26873 namespace boost { namespace mpl { using ::mpl_::int_; } }
26874 # 18 "./boost/mpl/int.hpp" 2
26875
26876
26877 # 1 "./boost/mpl/aux_/integral_wrapper.hpp" 1
26878 # 16 "./boost/mpl/aux_/integral_wrapper.hpp"
26879 # 1 "./boost/mpl/integral_c_tag.hpp" 1
26880 # 19 "./boost/mpl/integral_c_tag.hpp"
26881 # 1 "./boost/mpl/aux_/config/static_constant.hpp" 1
26882 # 20 "./boost/mpl/integral_c_tag.hpp" 2
26883
26884 namespace mpl_ {
26885 struct integral_c_tag { static const int value = 0; };
26886 }
26887 namespace boost { namespace mpl { using ::mpl_::integral_c_tag; } }
26888 # 17 "./boost/mpl/aux_/integral_wrapper.hpp" 2
26889 # 1 "./boost/mpl/aux_/static_cast.hpp" 1
26890 # 18 "./boost/mpl/aux_/integral_wrapper.hpp" 2
26891
26892
26893
26894
26895 # 1 "./boost/preprocessor/cat.hpp" 1
26896 # 17 "./boost/preprocessor/cat.hpp"
26897 # 1 "./boost/preprocessor/config/config.hpp" 1
26898 # 18 "./boost/preprocessor/cat.hpp" 2
26899 # 23 "./boost/mpl/aux_/integral_wrapper.hpp" 2
26900 # 40 "./boost/mpl/aux_/integral_wrapper.hpp"
26901 namespace mpl_ {
26902
26903 template< int N >
26904 struct int_
26905 {
26906     static const int value = N;
26907
26908
26909
26910
26911
26912     typedef int_ type;
26913
26914     typedef int value_type;
26915     typedef integral_c_tag tag;
26916 # 72 "./boost/mpl/aux_/integral_wrapper.hpp"
26917     typedef mpl_::int_< static_cast<int>((value + 1)) > next;
26918     typedef mpl_::int_< static_cast<int>((value - 1)) > prior;
26919
26920
26921
26922
26923
26924
26925     operator int() const { return static_cast<int>(this->value); }
26926 };
26927
26928
26929 template< int N >
26930 int const mpl_::int_< N >::value;
26931
26932
26933 }
26934 # 21 "./boost/mpl/int.hpp" 2
26935 # 11 "./boost/type_traits/detail/template_arity_spec.hpp" 2
26936 # 1 "./boost/mpl/aux_/template_arity_fwd.hpp" 1
26937 # 17 "./boost/mpl/aux_/template_arity_fwd.hpp"
26938 namespace boost { namespace mpl { namespace aux {
26939
26940 template< typename F > struct template_arity;
26941
26942 }}}
26943 # 12 "./boost/type_traits/detail/template_arity_spec.hpp" 2
26944 # 1 "./boost/mpl/aux_/preprocessor/params.hpp" 1
26945 # 17 "./boost/mpl/aux_/preprocessor/params.hpp"
26946 # 1 "./boost/mpl/aux_/config/preprocessor.hpp" 1
26947 # 18 "./boost/mpl/aux_/preprocessor/params.hpp" 2
26948 # 45 "./boost/mpl/aux_/preprocessor/params.hpp"
26949 # 1 "./boost/preprocessor/comma_if.hpp" 1
26950 # 15 "./boost/preprocessor/comma_if.hpp"
26951 # 1 "./boost/preprocessor/punctuation/comma_if.hpp" 1
26952 # 18 "./boost/preprocessor/punctuation/comma_if.hpp"
26953 # 1 "./boost/preprocessor/control/if.hpp" 1
26954 # 18 "./boost/preprocessor/control/if.hpp"
26955 # 1 "./boost/preprocessor/control/iif.hpp" 1
26956 # 19 "./boost/preprocessor/control/if.hpp" 2
26957 # 1 "./boost/preprocessor/logical/bool.hpp" 1
26958 # 20 "./boost/preprocessor/control/if.hpp" 2
26959 # 19 "./boost/preprocessor/punctuation/comma_if.hpp" 2
26960 # 1 "./boost/preprocessor/facilities/empty.hpp" 1
26961 # 20 "./boost/preprocessor/punctuation/comma_if.hpp" 2
26962 # 1 "./boost/preprocessor/punctuation/comma.hpp" 1
26963 # 21 "./boost/preprocessor/punctuation/comma_if.hpp" 2
26964 # 16 "./boost/preprocessor/comma_if.hpp" 2
26965 # 46 "./boost/mpl/aux_/preprocessor/params.hpp" 2
26966 # 1 "./boost/preprocessor/repeat.hpp" 1
26967 # 15 "./boost/preprocessor/repeat.hpp"
26968 # 1 "./boost/preprocessor/repetition/repeat.hpp" 1
26969 # 19 "./boost/preprocessor/repetition/repeat.hpp"
26970 # 1 "./boost/preprocessor/debug/error.hpp" 1
26971 # 20 "./boost/preprocessor/repetition/repeat.hpp" 2
26972 # 1 "./boost/preprocessor/detail/auto_rec.hpp" 1
26973 # 21 "./boost/preprocessor/repetition/repeat.hpp" 2
26974 # 1 "./boost/preprocessor/tuple/eat.hpp" 1
26975 # 22 "./boost/preprocessor/repetition/repeat.hpp" 2
26976 # 16 "./boost/preprocessor/repeat.hpp" 2
26977 # 47 "./boost/mpl/aux_/preprocessor/params.hpp" 2
26978 # 1 "./boost/preprocessor/inc.hpp" 1
26979 # 15 "./boost/preprocessor/inc.hpp"
26980 # 1 "./boost/preprocessor/arithmetic/inc.hpp" 1
26981 # 16 "./boost/preprocessor/inc.hpp" 2
26982 # 48 "./boost/mpl/aux_/preprocessor/params.hpp" 2
26983 # 13 "./boost/type_traits/detail/template_arity_spec.hpp" 2
26984 # 1 "./boost/mpl/aux_/config/lambda.hpp" 1
26985 # 17 "./boost/mpl/aux_/config/lambda.hpp"
26986 # 1 "./boost/mpl/aux_/config/ttp.hpp" 1
26987 # 18 "./boost/mpl/aux_/config/lambda.hpp" 2
26988 # 1 "./boost/mpl/aux_/config/ctps.hpp" 1
26989 # 19 "./boost/mpl/aux_/config/lambda.hpp" 2
26990 # 14 "./boost/type_traits/detail/template_arity_spec.hpp" 2
26991 # 1 "./boost/mpl/aux_/config/overload_resolution.hpp" 1
26992 # 15 "./boost/type_traits/detail/template_arity_spec.hpp" 2
26993 # 15 "./boost/type_traits/detail/size_t_trait_def.hpp" 2
26994 # 1 "./boost/type_traits/integral_constant.hpp" 1
26995 # 10 "./boost/type_traits/integral_constant.hpp"
26996 # 1 "./boost/mpl/bool.hpp" 1
26997 # 17 "./boost/mpl/bool.hpp"
26998 # 1 "./boost/mpl/bool_fwd.hpp" 1
26999 # 19 "./boost/mpl/bool_fwd.hpp"
27000 namespace mpl_ {
27001
27002 template< bool C_ > struct bool_;
27003
27004
27005 typedef bool_<true> true_;
27006 typedef bool_<false> false_;
27007
27008 }
27009
27010 namespace boost { namespace mpl { using ::mpl_::bool_; } }
27011 namespace boost { namespace mpl { using ::mpl_::true_; } }
27012 namespace boost { namespace mpl { using ::mpl_::false_; } }
27013 # 18 "./boost/mpl/bool.hpp" 2
27014
27015
27016
27017 namespace mpl_ {
27018
27019 template< bool C_ > struct bool_
27020 {
27021     static const bool value = C_;
27022     typedef integral_c_tag tag;
27023     typedef bool_ type;
27024     typedef bool value_type;
27025     operator bool() const { return this->value; }
27026 };
27027
27028
27029 template< bool C_ >
27030 bool const bool_<C_>::value;
27031
27032
27033 }
27034 # 11 "./boost/type_traits/integral_constant.hpp" 2
27035 # 1 "./boost/mpl/integral_c.hpp" 1
27036 # 17 "./boost/mpl/integral_c.hpp"
27037 # 1 "./boost/mpl/integral_c_fwd.hpp" 1
27038 # 20 "./boost/mpl/integral_c_fwd.hpp"
27039 namespace mpl_ {
27040
27041
27042
27043
27044
27045 template< typename T, T N > struct integral_c;
27046
27047
27048 }
27049 namespace boost { namespace mpl { using ::mpl_::integral_c; } }
27050 # 18 "./boost/mpl/integral_c.hpp" 2
27051 # 32 "./boost/mpl/integral_c.hpp"
27052 # 1 "./boost/mpl/aux_/integral_wrapper.hpp" 1
27053 # 40 "./boost/mpl/aux_/integral_wrapper.hpp"
27054 namespace mpl_ {
27055
27056 template< typename T, T N >
27057 struct integral_c
27058 {
27059     static const T value = N;
27060
27061
27062
27063
27064
27065     typedef integral_c type;
27066
27067     typedef T value_type;
27068     typedef integral_c_tag tag;
27069 # 72 "./boost/mpl/aux_/integral_wrapper.hpp"
27070     typedef integral_c< T, static_cast<T>((value + 1)) > next;
27071     typedef integral_c< T, static_cast<T>((value - 1)) > prior;
27072
27073
27074
27075
27076
27077
27078     operator T() const { return static_cast<T>(this->value); }
27079 };
27080
27081
27082 template< typename T, T N >
27083 T const integral_c< T, N >::value;
27084
27085
27086 }
27087 # 33 "./boost/mpl/integral_c.hpp" 2
27088
27089
27090
27091
27092 namespace mpl_ {
27093
27094 template< bool C >
27095 struct integral_c<bool, C>
27096 {
27097     static const bool value = C;
27098     typedef integral_c_tag tag;
27099     typedef integral_c type;
27100     typedef bool value_type;
27101     operator bool() const { return this->value; }
27102 };
27103 }
27104 # 12 "./boost/type_traits/integral_constant.hpp" 2
27105
27106 namespace boost{
27107
27108
27109
27110
27111 template <class T, T val>
27112
27113 struct integral_constant : public mpl::integral_c<T, val>
27114 {
27115    typedef integral_constant<T,val> type;
27116 };
27117
27118 template<> struct integral_constant<bool,true> : public mpl::true_
27119 {
27120
27121
27122
27123
27124
27125
27126
27127    typedef integral_constant<bool,true> type;
27128 };
27129 template<> struct integral_constant<bool,false> : public mpl::false_
27130 {
27131
27132
27133
27134
27135
27136
27137
27138    typedef integral_constant<bool,false> type;
27139 };
27140
27141 typedef integral_constant<bool,true> true_type;
27142 typedef integral_constant<bool,false> false_type;
27143
27144 }
27145 # 16 "./boost/type_traits/detail/size_t_trait_def.hpp" 2
27146 # 1 "./boost/mpl/aux_/lambda_support.hpp" 1
27147 # 17 "./boost/type_traits/detail/size_t_trait_def.hpp" 2
27148 # 1 "./boost/mpl/size_t.hpp" 1
27149 # 17 "./boost/mpl/size_t.hpp"
27150 # 1 "./boost/mpl/size_t_fwd.hpp" 1
27151 # 21 "./boost/mpl/size_t_fwd.hpp"
27152 namespace mpl_ {
27153
27154 template< std::size_t N > struct size_t;
27155
27156 }
27157 namespace boost { namespace mpl { using ::mpl_::size_t; } }
27158 # 18 "./boost/mpl/size_t.hpp" 2
27159
27160
27161
27162
27163
27164 # 1 "./boost/mpl/aux_/integral_wrapper.hpp" 1
27165 # 40 "./boost/mpl/aux_/integral_wrapper.hpp"
27166 namespace mpl_ {
27167
27168 template< std::size_t N >
27169 struct size_t
27170 {
27171     static const std::size_t value = N;
27172
27173
27174
27175
27176
27177     typedef size_t type;
27178
27179     typedef std::size_t value_type;
27180     typedef integral_c_tag tag;
27181 # 72 "./boost/mpl/aux_/integral_wrapper.hpp"
27182     typedef mpl_::size_t< static_cast<std::size_t>((value + 1)) > next;
27183     typedef mpl_::size_t< static_cast<std::size_t>((value - 1)) > prior;
27184
27185
27186
27187
27188
27189
27190     operator std::size_t() const { return static_cast<std::size_t>(this->value); }
27191 };
27192
27193
27194 template< std::size_t N >
27195 std::size_t const mpl_::size_t< N >::value;
27196
27197
27198 }
27199 # 24 "./boost/mpl/size_t.hpp" 2
27200 # 18 "./boost/type_traits/detail/size_t_trait_def.hpp" 2
27201 # 17 "./boost/type_traits/alignment_of.hpp" 2
27202 # 26 "./boost/type_traits/alignment_of.hpp"
27203 namespace boost {
27204
27205 template <typename T> struct alignment_of;
27206
27207
27208 namespace detail {
27209
27210 template <typename T>
27211 struct alignment_of_hack
27212 {
27213     char c;
27214     T t;
27215     alignment_of_hack();
27216 };
27217
27218
27219 template <unsigned A, unsigned S>
27220 struct alignment_logic
27221 {
27222     static const std::size_t value = A < S ? A : S;
27223 };
27224
27225
27226 template< typename T >
27227 struct alignment_of_impl
27228 {
27229     static const std::size_t value = (::boost::detail::alignment_logic< sizeof(::boost::detail::alignment_of_hack<T>) - sizeof(T), sizeof(T) >::value);
27230
27231
27232
27233
27234 };
27235
27236 }
27237
27238 template< typename T > struct alignment_of : ::boost::integral_constant<std::size_t,::boost::detail::alignment_of_impl<T>::value> { };
27239
27240
27241
27242
27243 template <typename T>
27244 struct alignment_of<T&>
27245     : alignment_of<T*>
27246 {
27247 };
27248 # 81 "./boost/type_traits/alignment_of.hpp"
27249 template<> struct alignment_of<void> : ::boost::integral_constant<std::size_t,0> { };
27250
27251 template<> struct alignment_of<void const> : ::boost::integral_constant<std::size_t,0> { };
27252 template<> struct alignment_of<void volatile> : ::boost::integral_constant<std::size_t,0> { };
27253 template<> struct alignment_of<void const volatile> : ::boost::integral_constant<std::size_t,0> { };
27254
27255
27256 }
27257 # 97 "./boost/type_traits/alignment_of.hpp"
27258 # 1 "./boost/type_traits/detail/size_t_trait_undef.hpp" 1
27259 # 98 "./boost/type_traits/alignment_of.hpp" 2
27260 # 22 "./boost/optional/optional.hpp" 2
27261 # 1 "./boost/type_traits/type_with_alignment.hpp" 1
27262 # 11 "./boost/type_traits/type_with_alignment.hpp"
27263 # 1 "./boost/mpl/if.hpp" 1
27264 # 17 "./boost/mpl/if.hpp"
27265 # 1 "./boost/mpl/aux_/value_wknd.hpp" 1
27266 # 18 "./boost/mpl/aux_/value_wknd.hpp"
27267 # 1 "./boost/mpl/aux_/config/integral.hpp" 1
27268 # 19 "./boost/mpl/aux_/value_wknd.hpp" 2
27269 # 1 "./boost/mpl/aux_/config/eti.hpp" 1
27270 # 20 "./boost/mpl/aux_/value_wknd.hpp" 2
27271 # 73 "./boost/mpl/aux_/value_wknd.hpp"
27272 namespace boost { namespace mpl { namespace aux {
27273
27274 template< typename T > struct value_type_wknd
27275 {
27276     typedef typename T::value_type type;
27277 };
27278 # 87 "./boost/mpl/aux_/value_wknd.hpp"
27279 }}}
27280 # 18 "./boost/mpl/if.hpp" 2
27281
27282 # 1 "./boost/mpl/aux_/na_spec.hpp" 1
27283 # 18 "./boost/mpl/aux_/na_spec.hpp"
27284 # 1 "./boost/mpl/lambda_fwd.hpp" 1
27285 # 17 "./boost/mpl/lambda_fwd.hpp"
27286 # 1 "./boost/mpl/void_fwd.hpp" 1
27287 # 19 "./boost/mpl/void_fwd.hpp"
27288 namespace mpl_ {
27289
27290 struct void_;
27291
27292 }
27293 namespace boost { namespace mpl { using ::mpl_::void_; } }
27294 # 18 "./boost/mpl/lambda_fwd.hpp" 2
27295 # 1 "./boost/mpl/aux_/na.hpp" 1
27296 # 18 "./boost/mpl/aux_/na.hpp"
27297 # 1 "./boost/mpl/aux_/na_fwd.hpp" 1
27298 # 19 "./boost/mpl/aux_/na_fwd.hpp"
27299 namespace mpl_ {
27300
27301
27302 struct na
27303 {
27304     typedef na type;
27305     enum { value = 0 };
27306 };
27307
27308 }
27309 namespace boost { namespace mpl { using ::mpl_::na; } }
27310 # 19 "./boost/mpl/aux_/na.hpp" 2
27311
27312
27313
27314 namespace boost { namespace mpl {
27315
27316 template< typename T >
27317 struct is_na
27318     : false_
27319 {
27320
27321
27322
27323 };
27324
27325 template<>
27326 struct is_na<na>
27327     : true_
27328 {
27329
27330
27331
27332 };
27333
27334 template< typename T >
27335 struct is_not_na
27336     : true_
27337 {
27338
27339
27340
27341 };
27342
27343 template<>
27344 struct is_not_na<na>
27345     : false_
27346 {
27347
27348
27349
27350 };
27351
27352
27353 template< typename T, typename U > struct if_na
27354 {
27355     typedef T type;
27356 };
27357
27358 template< typename U > struct if_na<na,U>
27359 {
27360     typedef U type;
27361 };
27362 # 93 "./boost/mpl/aux_/na.hpp"
27363 }}
27364 # 19 "./boost/mpl/lambda_fwd.hpp" 2
27365
27366
27367
27368
27369
27370 # 1 "./boost/mpl/aux_/lambda_arity_param.hpp" 1
27371 # 25 "./boost/mpl/lambda_fwd.hpp" 2
27372
27373
27374 namespace boost { namespace mpl {
27375
27376 template<
27377       typename T = na
27378     , typename Tag = void_
27379     , typename Arity = int_< aux::template_arity<T>::value >
27380
27381
27382     >
27383 struct lambda;
27384
27385 }}
27386 # 19 "./boost/mpl/aux_/na_spec.hpp" 2
27387
27388
27389
27390 # 1 "./boost/mpl/aux_/arity.hpp" 1
27391 # 17 "./boost/mpl/aux_/arity.hpp"
27392 # 1 "./boost/mpl/aux_/config/dtp.hpp" 1
27393 # 18 "./boost/mpl/aux_/arity.hpp" 2
27394 # 23 "./boost/mpl/aux_/na_spec.hpp" 2
27395
27396
27397
27398
27399 # 1 "./boost/mpl/aux_/preprocessor/enum.hpp" 1
27400 # 28 "./boost/mpl/aux_/na_spec.hpp" 2
27401 # 1 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 1
27402 # 17 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp"
27403 # 1 "./boost/mpl/limits/arity.hpp" 1
27404 # 18 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2
27405
27406
27407
27408
27409 # 1 "./boost/preprocessor/logical/and.hpp" 1
27410 # 19 "./boost/preprocessor/logical/and.hpp"
27411 # 1 "./boost/preprocessor/logical/bitand.hpp" 1
27412 # 20 "./boost/preprocessor/logical/and.hpp" 2
27413 # 23 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2
27414 # 1 "./boost/preprocessor/identity.hpp" 1
27415 # 15 "./boost/preprocessor/identity.hpp"
27416 # 1 "./boost/preprocessor/facilities/identity.hpp" 1
27417 # 16 "./boost/preprocessor/identity.hpp" 2
27418 # 24 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2
27419 # 1 "./boost/preprocessor/empty.hpp" 1
27420 # 25 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2
27421 # 66 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp"
27422 # 1 "./boost/preprocessor/arithmetic/add.hpp" 1
27423 # 17 "./boost/preprocessor/arithmetic/add.hpp"
27424 # 1 "./boost/preprocessor/arithmetic/dec.hpp" 1
27425 # 18 "./boost/preprocessor/arithmetic/add.hpp" 2
27426
27427
27428 # 1 "./boost/preprocessor/control/while.hpp" 1
27429 # 20 "./boost/preprocessor/control/while.hpp"
27430 # 1 "./boost/preprocessor/detail/auto_rec.hpp" 1
27431 # 21 "./boost/preprocessor/control/while.hpp" 2
27432 # 1 "./boost/preprocessor/list/fold_left.hpp" 1
27433 # 18 "./boost/preprocessor/list/fold_left.hpp"
27434 # 1 "./boost/preprocessor/control/while.hpp" 1
27435 # 19 "./boost/preprocessor/list/fold_left.hpp" 2
27436
27437 # 1 "./boost/preprocessor/detail/auto_rec.hpp" 1
27438 # 21 "./boost/preprocessor/list/fold_left.hpp" 2
27439 # 41 "./boost/preprocessor/list/fold_left.hpp"
27440 # 1 "./boost/preprocessor/list/detail/fold_left.hpp" 1
27441 # 17 "./boost/preprocessor/list/detail/fold_left.hpp"
27442 # 1 "./boost/preprocessor/control/expr_iif.hpp" 1
27443 # 18 "./boost/preprocessor/list/detail/fold_left.hpp" 2
27444
27445 # 1 "./boost/preprocessor/list/adt.hpp" 1
27446 # 18 "./boost/preprocessor/list/adt.hpp"
27447 # 1 "./boost/preprocessor/detail/is_binary.hpp" 1
27448 # 16 "./boost/preprocessor/detail/is_binary.hpp"
27449 # 1 "./boost/preprocessor/detail/check.hpp" 1
27450 # 17 "./boost/preprocessor/detail/is_binary.hpp" 2
27451 # 19 "./boost/preprocessor/list/adt.hpp" 2
27452 # 1 "./boost/preprocessor/logical/compl.hpp" 1
27453 # 20 "./boost/preprocessor/list/adt.hpp" 2
27454 # 20 "./boost/preprocessor/list/detail/fold_left.hpp" 2
27455 # 42 "./boost/preprocessor/list/fold_left.hpp" 2
27456 # 22 "./boost/preprocessor/control/while.hpp" 2
27457 # 1 "./boost/preprocessor/list/fold_right.hpp" 1
27458 # 20 "./boost/preprocessor/list/fold_right.hpp"
27459 # 1 "./boost/preprocessor/detail/auto_rec.hpp" 1
27460 # 21 "./boost/preprocessor/list/fold_right.hpp" 2
27461 # 37 "./boost/preprocessor/list/fold_right.hpp"
27462 # 1 "./boost/preprocessor/list/detail/fold_right.hpp" 1
27463 # 18 "./boost/preprocessor/list/detail/fold_right.hpp"
27464 # 1 "./boost/preprocessor/list/reverse.hpp" 1
27465 # 19 "./boost/preprocessor/list/detail/fold_right.hpp" 2
27466 # 38 "./boost/preprocessor/list/fold_right.hpp" 2
27467 # 23 "./boost/preprocessor/control/while.hpp" 2
27468 # 48 "./boost/preprocessor/control/while.hpp"
27469 # 1 "./boost/preprocessor/control/detail/while.hpp" 1
27470 # 49 "./boost/preprocessor/control/while.hpp" 2
27471 # 21 "./boost/preprocessor/arithmetic/add.hpp" 2
27472 # 1 "./boost/preprocessor/tuple/elem.hpp" 1
27473 # 22 "./boost/preprocessor/arithmetic/add.hpp" 2
27474 # 67 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2
27475 # 1 "./boost/preprocessor/arithmetic/sub.hpp" 1
27476 # 68 "./boost/mpl/aux_/preprocessor/def_params_tail.hpp" 2
27477 # 29 "./boost/mpl/aux_/na_spec.hpp" 2
27478 # 20 "./boost/mpl/if.hpp" 2
27479
27480
27481
27482
27483
27484 namespace boost { namespace mpl {
27485
27486
27487
27488 template<
27489       bool C
27490     , typename T1
27491     , typename T2
27492     >
27493 struct if_c
27494 {
27495     typedef T1 type;
27496 };
27497
27498 template<
27499       typename T1
27500     , typename T2
27501     >
27502 struct if_c<false,T1,T2>
27503 {
27504     typedef T2 type;
27505 };
27506
27507
27508
27509 template<
27510       typename T1 = na
27511     , typename T2 = na
27512     , typename T3 = na
27513     >
27514 struct if_
27515 {
27516  private:
27517
27518     typedef if_c<
27519
27520
27521
27522           static_cast<bool>(T1::value)
27523
27524         , T2
27525         , T3
27526         > almost_type_;
27527
27528  public:
27529     typedef typename almost_type_::type type;
27530
27531    
27532 };
27533 # 131 "./boost/mpl/if.hpp"
27534 template<> struct if_< na , na , na > { template< typename T1 , typename T2 , typename T3 , typename T4 =na , typename T5 =na > struct apply : if_< T1 , T2 , T3 > { }; }; template< typename Tag > struct lambda< if_< na , na , na > , Tag , int_<-1> > { typedef false_ is_le; typedef if_< na , na , na > result_; typedef if_< na , na , na > type; }; namespace aux { template< typename T1 , typename T2 , typename T3 > struct template_arity< if_< T1 , T2 , T3 > > : int_<3> { }; template<> struct template_arity< if_< na , na , na > > : int_<-1> { }; }
27535
27536 }}
27537 # 12 "./boost/type_traits/type_with_alignment.hpp" 2
27538 # 1 "./boost/preprocessor/list/for_each_i.hpp" 1
27539 # 20 "./boost/preprocessor/list/for_each_i.hpp"
27540 # 1 "./boost/preprocessor/repetition/for.hpp" 1
27541 # 19 "./boost/preprocessor/repetition/for.hpp"
27542 # 1 "./boost/preprocessor/detail/auto_rec.hpp" 1
27543 # 20 "./boost/preprocessor/repetition/for.hpp" 2
27544 # 42 "./boost/preprocessor/repetition/for.hpp"
27545 # 1 "./boost/preprocessor/repetition/detail/for.hpp" 1
27546 # 43 "./boost/preprocessor/repetition/for.hpp" 2
27547 # 21 "./boost/preprocessor/list/for_each_i.hpp" 2
27548
27549 # 1 "./boost/preprocessor/tuple/rem.hpp" 1
27550 # 23 "./boost/preprocessor/list/for_each_i.hpp" 2
27551 # 13 "./boost/type_traits/type_with_alignment.hpp" 2
27552 # 1 "./boost/preprocessor/tuple/to_list.hpp" 1
27553 # 14 "./boost/type_traits/type_with_alignment.hpp" 2
27554
27555 # 1 "./boost/preprocessor/list/transform.hpp" 1
27556 # 16 "./boost/type_traits/type_with_alignment.hpp" 2
27557 # 1 "./boost/preprocessor/list/append.hpp" 1
27558 # 17 "./boost/type_traits/type_with_alignment.hpp" 2
27559 # 1 "./boost/type_traits/alignment_of.hpp" 1
27560 # 18 "./boost/type_traits/type_with_alignment.hpp" 2
27561 # 1 "./boost/type_traits/is_pod.hpp" 1
27562 # 12 "./boost/type_traits/is_pod.hpp"
27563 # 1 "./boost/type_traits/config.hpp" 1
27564 # 13 "./boost/type_traits/is_pod.hpp" 2
27565 # 1 "./boost/type_traits/is_void.hpp" 1
27566 # 15 "./boost/type_traits/is_void.hpp"
27567 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
27568 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
27569 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27570 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
27571 # 16 "./boost/type_traits/is_void.hpp" 2
27572
27573 namespace boost {
27574
27575
27576 template< typename T > struct is_void : ::boost::integral_constant<bool,false> { };
27577 template<> struct is_void< void > : ::boost::integral_constant<bool,true> { };
27578
27579
27580 template<> struct is_void< void const > : ::boost::integral_constant<bool,true> { };
27581 template<> struct is_void< void volatile > : ::boost::integral_constant<bool,true> { };
27582 template<> struct is_void< void const volatile > : ::boost::integral_constant<bool,true> { };
27583
27584
27585 }
27586
27587 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
27588 # 32 "./boost/type_traits/is_void.hpp" 2
27589 # 14 "./boost/type_traits/is_pod.hpp" 2
27590 # 1 "./boost/type_traits/is_scalar.hpp" 1
27591 # 12 "./boost/type_traits/is_scalar.hpp"
27592 # 1 "./boost/type_traits/is_arithmetic.hpp" 1
27593 # 12 "./boost/type_traits/is_arithmetic.hpp"
27594 # 1 "./boost/type_traits/is_integral.hpp" 1
27595 # 15 "./boost/type_traits/is_integral.hpp"
27596 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
27597 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
27598 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27599 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
27600 # 16 "./boost/type_traits/is_integral.hpp" 2
27601
27602 namespace boost {
27603
27604
27605
27606
27607 template< typename T > struct is_integral : ::boost::integral_constant<bool,false> { };
27608
27609 template<> struct is_integral< unsigned char > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned char const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned char volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned char const volatile > : ::boost::integral_constant<bool,true> { };
27610 template<> struct is_integral< unsigned short > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned short const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned short volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned short const volatile > : ::boost::integral_constant<bool,true> { };
27611 template<> struct is_integral< unsigned int > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned int const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned int volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned int const volatile > : ::boost::integral_constant<bool,true> { };
27612 template<> struct is_integral< unsigned long > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned long const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned long volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< unsigned long const volatile > : ::boost::integral_constant<bool,true> { };
27613
27614 template<> struct is_integral< signed char > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed char const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed char volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed char const volatile > : ::boost::integral_constant<bool,true> { };
27615 template<> struct is_integral< signed short > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed short const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed short volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed short const volatile > : ::boost::integral_constant<bool,true> { };
27616 template<> struct is_integral< signed int > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed int const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed int volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed int const volatile > : ::boost::integral_constant<bool,true> { };
27617 template<> struct is_integral< signed long > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed long const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed long volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< signed long const volatile > : ::boost::integral_constant<bool,true> { };
27618
27619 template<> struct is_integral< bool > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< bool const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< bool volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< bool const volatile > : ::boost::integral_constant<bool,true> { };
27620 template<> struct is_integral< char > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< char const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< char volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< char const volatile > : ::boost::integral_constant<bool,true> { };
27621
27622
27623
27624
27625
27626 template<> struct is_integral< wchar_t > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< wchar_t const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< wchar_t volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< wchar_t const volatile > : ::boost::integral_constant<bool,true> { };
27627 # 62 "./boost/type_traits/is_integral.hpp"
27628 template<> struct is_integral< ::boost::ulong_long_type > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::ulong_long_type const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::ulong_long_type volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::ulong_long_type const volatile > : ::boost::integral_constant<bool,true> { };
27629 template<> struct is_integral< ::boost::long_long_type > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::long_long_type const > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::long_long_type volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_integral< ::boost::long_long_type const volatile > : ::boost::integral_constant<bool,true> { };
27630
27631
27632
27633
27634
27635 }
27636
27637 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
27638 # 72 "./boost/type_traits/is_integral.hpp" 2
27639 # 13 "./boost/type_traits/is_arithmetic.hpp" 2
27640 # 1 "./boost/type_traits/is_float.hpp" 1
27641 # 13 "./boost/type_traits/is_float.hpp"
27642 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
27643 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
27644 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27645 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
27646 # 14 "./boost/type_traits/is_float.hpp" 2
27647
27648 namespace boost {
27649
27650
27651 template< typename T > struct is_float : ::boost::integral_constant<bool,false> { };
27652 template<> struct is_float< float > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< float const > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< float volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< float const volatile > : ::boost::integral_constant<bool,true> { };
27653 template<> struct is_float< double > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< double const > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< double volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< double const volatile > : ::boost::integral_constant<bool,true> { };
27654 template<> struct is_float< long double > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< long double const > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< long double volatile > : ::boost::integral_constant<bool,true> { }; template<> struct is_float< long double const volatile > : ::boost::integral_constant<bool,true> { };
27655
27656 }
27657
27658 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
27659 # 26 "./boost/type_traits/is_float.hpp" 2
27660 # 14 "./boost/type_traits/is_arithmetic.hpp" 2
27661 # 1 "./boost/type_traits/detail/ice_or.hpp" 1
27662 # 13 "./boost/type_traits/detail/ice_or.hpp"
27663 namespace boost {
27664 namespace type_traits {
27665
27666 template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
27667 struct ice_or;
27668
27669 template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
27670 struct ice_or
27671 {
27672     static const bool value = true;
27673 };
27674
27675 template <>
27676 struct ice_or<false, false, false, false, false, false, false>
27677 {
27678     static const bool value = false;
27679 };
27680
27681 }
27682 }
27683 # 15 "./boost/type_traits/is_arithmetic.hpp" 2
27684
27685
27686
27687 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
27688 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
27689 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27690 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
27691 # 19 "./boost/type_traits/is_arithmetic.hpp" 2
27692
27693 namespace boost {
27694
27695 namespace detail {
27696
27697 template< typename T >
27698 struct is_arithmetic_impl
27699 {
27700     static const bool value = (::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_float<T>::value >::value);
27701
27702
27703
27704
27705 };
27706
27707 }
27708
27709
27710 template< typename T > struct is_arithmetic : ::boost::integral_constant<bool,::boost::detail::is_arithmetic_impl<T>::value> { };
27711
27712 }
27713
27714 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
27715 # 42 "./boost/type_traits/is_arithmetic.hpp" 2
27716 # 13 "./boost/type_traits/is_scalar.hpp" 2
27717 # 1 "./boost/type_traits/is_enum.hpp" 1
27718 # 14 "./boost/type_traits/is_enum.hpp"
27719 # 1 "./boost/type_traits/add_reference.hpp" 1
27720 # 12 "./boost/type_traits/add_reference.hpp"
27721 # 1 "./boost/type_traits/is_reference.hpp" 1
27722 # 32 "./boost/type_traits/is_reference.hpp"
27723 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
27724 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
27725 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27726 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
27727 # 33 "./boost/type_traits/is_reference.hpp" 2
27728
27729 namespace boost {
27730
27731
27732
27733 template< typename T > struct is_reference : ::boost::integral_constant<bool,false> { };
27734 template< typename T > struct is_reference< T& > : ::boost::integral_constant<bool,true> { };
27735 # 111 "./boost/type_traits/is_reference.hpp"
27736 }
27737
27738 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
27739 # 114 "./boost/type_traits/is_reference.hpp" 2
27740 # 13 "./boost/type_traits/add_reference.hpp" 2
27741
27742
27743
27744
27745 # 1 "./boost/type_traits/detail/type_trait_def.hpp" 1
27746 # 14 "./boost/type_traits/detail/type_trait_def.hpp"
27747 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27748 # 15 "./boost/type_traits/detail/type_trait_def.hpp" 2
27749 # 18 "./boost/type_traits/add_reference.hpp" 2
27750
27751 namespace boost {
27752
27753 namespace detail {
27754 # 55 "./boost/type_traits/add_reference.hpp"
27755 template <typename T>
27756 struct add_reference_impl
27757 {
27758     typedef T& type;
27759 };
27760
27761
27762 template< typename T > struct add_reference_impl<T&> { typedef T& type; };
27763
27764
27765
27766
27767
27768 template<> struct add_reference_impl<void> { typedef void type; };
27769
27770 template<> struct add_reference_impl<void const> { typedef void const type; };
27771 template<> struct add_reference_impl<void volatile> { typedef void volatile type; };
27772 template<> struct add_reference_impl<void const volatile> { typedef void const volatile type; };
27773
27774
27775 }
27776
27777 template< typename T > struct add_reference { typedef typename boost::detail::add_reference_impl<T>::type type; };
27778
27779
27780
27781
27782
27783
27784
27785 }
27786
27787 # 1 "./boost/type_traits/detail/type_trait_undef.hpp" 1
27788 # 88 "./boost/type_traits/add_reference.hpp" 2
27789 # 15 "./boost/type_traits/is_enum.hpp" 2
27790
27791
27792 # 1 "./boost/type_traits/is_convertible.hpp" 1
27793 # 15 "./boost/type_traits/is_convertible.hpp"
27794 # 1 "./boost/type_traits/detail/yes_no_type.hpp" 1
27795 # 14 "./boost/type_traits/detail/yes_no_type.hpp"
27796 namespace boost {
27797 namespace type_traits {
27798
27799 typedef char yes_type;
27800 struct no_type
27801 {
27802    char padding[8];
27803 };
27804
27805 }
27806 }
27807 # 16 "./boost/type_traits/is_convertible.hpp" 2
27808
27809 # 1 "./boost/type_traits/is_array.hpp" 1
27810 # 27 "./boost/type_traits/is_array.hpp"
27811 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
27812 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
27813 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
27814 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
27815 # 28 "./boost/type_traits/is_array.hpp" 2
27816
27817 namespace boost {
27818
27819
27820
27821 template< typename T > struct is_array : ::boost::integral_constant<bool,false> { };
27822
27823 template< typename T, std::size_t N > struct is_array< T[N] > : ::boost::integral_constant<bool,true> { };
27824 template< typename T, std::size_t N > struct is_array< T const[N] > : ::boost::integral_constant<bool,true> { };
27825 template< typename T, std::size_t N > struct is_array< T volatile[N] > : ::boost::integral_constant<bool,true> { };
27826 template< typename T, std::size_t N > struct is_array< T const volatile[N] > : ::boost::integral_constant<bool,true> { };
27827
27828 template< typename T > struct is_array< T[] > : ::boost::integral_constant<bool,true> { };
27829 template< typename T > struct is_array< T const[] > : ::boost::integral_constant<bool,true> { };
27830 template< typename T > struct is_array< T volatile[] > : ::boost::integral_constant<bool,true> { };
27831 template< typename T > struct is_array< T const volatile[] > : ::boost::integral_constant<bool,true> { };
27832 # 86 "./boost/type_traits/is_array.hpp"
27833 }
27834
27835 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
27836 # 89 "./boost/type_traits/is_array.hpp" 2
27837 # 18 "./boost/type_traits/is_convertible.hpp" 2
27838
27839 # 1 "./boost/type_traits/ice.hpp" 1
27840 # 16 "./boost/type_traits/ice.hpp"
27841 # 1 "./boost/type_traits/detail/ice_and.hpp" 1
27842 # 14 "./boost/type_traits/detail/ice_and.hpp"
27843 namespace boost {
27844 namespace type_traits {
27845
27846 template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
27847 struct ice_and;
27848
27849 template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
27850 struct ice_and
27851 {
27852     static const bool value = false;
27853 };
27854
27855 template <>
27856 struct ice_and<true, true, true, true, true, true, true>
27857 {
27858     static const bool value = true;
27859 };
27860
27861 }
27862 }
27863 # 17 "./boost/type_traits/ice.hpp" 2
27864 # 1 "./boost/type_traits/detail/ice_not.hpp" 1
27865 # 13 "./boost/type_traits/detail/ice_not.hpp"
27866 namespace boost {
27867 namespace type_traits {
27868
27869 template <bool b>
27870 struct ice_not
27871 {
27872     static const bool value = true;
27873 };
27874
27875 template <>
27876 struct ice_not<true>
27877 {
27878     static const bool value = false;
27879 };
27880
27881 }
27882 }
27883 # 18 "./boost/type_traits/ice.hpp" 2
27884 # 1 "./boost/type_traits/detail/ice_eq.hpp" 1
27885 # 13 "./boost/type_traits/detail/ice_eq.hpp"
27886 namespace boost {
27887 namespace type_traits {
27888
27889 template <int b1, int b2>
27890 struct ice_eq
27891 {
27892     static const bool value = (b1 == b2);
27893 };
27894
27895 template <int b1, int b2>
27896 struct ice_ne
27897 {
27898     static const bool value = (b1 != b2);
27899 };
27900
27901
27902 template <int b1, int b2> bool const ice_eq<b1,b2>::value;
27903 template <int b1, int b2> bool const ice_ne<b1,b2>::value;
27904
27905
27906 }
27907 }
27908 # 19 "./boost/type_traits/ice.hpp" 2
27909 # 20 "./boost/type_traits/is_convertible.hpp" 2
27910
27911
27912
27913 # 1 "./boost/type_traits/is_abstract.hpp" 1
27914 # 51 "./boost/type_traits/is_abstract.hpp"
27915 # 1 "./boost/static_assert.hpp" 1
27916 # 35 "./boost/static_assert.hpp"
27917 namespace boost{
27918
27919
27920 template <bool x> struct STATIC_ASSERTION_FAILURE;
27921
27922 template <> struct STATIC_ASSERTION_FAILURE<true> { enum { value = 1 }; };
27923
27924
27925 template<int x> struct static_assert_test{};
27926
27927 }
27928 # 52 "./boost/type_traits/is_abstract.hpp" 2
27929
27930 # 1 "./boost/type_traits/is_class.hpp" 1
27931 # 14 "./boost/type_traits/is_class.hpp"
27932 # 1 "./boost/type_traits/is_union.hpp" 1
27933 # 14 "./boost/type_traits/is_union.hpp"
27934 # 1 "./boost/type_traits/remove_cv.hpp" 1
27935 # 14 "./boost/type_traits/remove_cv.hpp"
27936 # 1 "./boost/type_traits/broken_compiler_spec.hpp" 1
27937 # 95 "./boost/type_traits/broken_compiler_spec.hpp"
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953 # 15 "./boost/type_traits/remove_cv.hpp" 2
27954 # 1 "./boost/type_traits/detail/cv_traits_impl.hpp" 1
27955 # 23 "./boost/type_traits/detail/cv_traits_impl.hpp"
27956 namespace boost {
27957 namespace detail {
27958
27959
27960
27961
27962
27963
27964
27965 template <typename T> struct cv_traits_imp {};
27966
27967 template <typename T>
27968 struct cv_traits_imp<T*>
27969 {
27970     static const bool is_const = false;
27971     static const bool is_volatile = false;
27972     typedef T unqualified_type;
27973 };
27974
27975 template <typename T>
27976 struct cv_traits_imp<const T*>
27977 {
27978     static const bool is_const = true;
27979     static const bool is_volatile = false;
27980     typedef T unqualified_type;
27981 };
27982
27983 template <typename T>
27984 struct cv_traits_imp<volatile T*>
27985 {
27986     static const bool is_const = false;
27987     static const bool is_volatile = true;
27988     typedef T unqualified_type;
27989 };
27990
27991 template <typename T>
27992 struct cv_traits_imp<const volatile T*>
27993 {
27994     static const bool is_const = true;
27995     static const bool is_volatile = true;
27996     typedef T unqualified_type;
27997 };
27998 # 92 "./boost/type_traits/detail/cv_traits_impl.hpp"
27999 }
28000 }
28001 # 16 "./boost/type_traits/remove_cv.hpp" 2
28002 # 26 "./boost/type_traits/remove_cv.hpp"
28003 # 1 "./boost/type_traits/detail/type_trait_def.hpp" 1
28004 # 14 "./boost/type_traits/detail/type_trait_def.hpp"
28005 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28006 # 15 "./boost/type_traits/detail/type_trait_def.hpp" 2
28007 # 27 "./boost/type_traits/remove_cv.hpp" 2
28008
28009 namespace boost {
28010
28011
28012
28013
28014 template< typename T > struct remove_cv { typedef typename boost::detail::cv_traits_imp<T*>::unqualified_type type; };
28015 template< typename T > struct remove_cv<T&> { typedef T& type; };
28016
28017 template< typename T, std::size_t N > struct remove_cv<T const[N]> { typedef T type[N]; };
28018 template< typename T, std::size_t N > struct remove_cv<T volatile[N]> { typedef T type[N]; };
28019 template< typename T, std::size_t N > struct remove_cv<T const volatile[N]> { typedef T type[N]; };
28020 # 57 "./boost/type_traits/remove_cv.hpp"
28021 }
28022
28023 # 1 "./boost/type_traits/detail/type_trait_undef.hpp" 1
28024 # 60 "./boost/type_traits/remove_cv.hpp" 2
28025 # 15 "./boost/type_traits/is_union.hpp" 2
28026
28027 # 1 "./boost/type_traits/intrinsics.hpp" 1
28028 # 17 "./boost/type_traits/is_union.hpp" 2
28029
28030
28031 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
28032 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
28033 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28034 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
28035 # 20 "./boost/type_traits/is_union.hpp" 2
28036
28037 namespace boost {
28038
28039 namespace detail {
28040 # 36 "./boost/type_traits/is_union.hpp"
28041 template <typename T> struct is_union_impl
28042 {
28043    static const bool value = false;
28044 };
28045
28046 }
28047
28048 template< typename T > struct is_union : ::boost::integral_constant<bool,::boost::detail::is_union_impl<T>::value> { };
28049
28050 }
28051
28052 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
28053 # 48 "./boost/type_traits/is_union.hpp" 2
28054 # 15 "./boost/type_traits/is_class.hpp" 2
28055 # 33 "./boost/type_traits/is_class.hpp"
28056 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
28057 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
28058 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28059 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
28060 # 34 "./boost/type_traits/is_class.hpp" 2
28061
28062 namespace boost {
28063
28064 namespace detail {
28065 # 53 "./boost/type_traits/is_class.hpp"
28066 template <class U> ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
28067 template <class U> ::boost::type_traits::no_type is_class_tester(...);
28068
28069 template <typename T>
28070 struct is_class_impl
28071 {
28072
28073     static const bool value = (::boost::type_traits::ice_and< sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type), ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value >::value);
28074
28075
28076
28077
28078
28079 };
28080 # 115 "./boost/type_traits/is_class.hpp"
28081 }
28082
28083
28084
28085
28086
28087 template< typename T > struct is_class : ::boost::integral_constant<bool,::boost::detail::is_class_impl<T>::value> { };
28088
28089
28090 }
28091
28092 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
28093 # 127 "./boost/type_traits/is_class.hpp" 2
28094 # 54 "./boost/type_traits/is_abstract.hpp" 2
28095
28096
28097
28098
28099
28100 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
28101 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
28102 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28103 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
28104 # 60 "./boost/type_traits/is_abstract.hpp" 2
28105
28106
28107 namespace boost {
28108 namespace detail{
28109
28110
28111 template<class T>
28112 struct is_abstract_imp2
28113 {
28114
28115
28116
28117
28118    template<class U>
28119    static type_traits::no_type check_sig(U (*)[1]);
28120    template<class U>
28121    static type_traits::yes_type check_sig(...);
28122
28123
28124
28125
28126    typedef ::boost::static_assert_test< sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( sizeof(T) != 0 ) >)> boost_static_assert_typedef_81;
28127
28128
28129
28130
28131    static const unsigned s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0));
28132 # 98 "./boost/type_traits/is_abstract.hpp"
28133    static const bool value = (s1 == sizeof(type_traits::yes_type));
28134
28135 };
28136
28137 template <bool v>
28138 struct is_abstract_select
28139 {
28140    template <class T>
28141    struct rebind
28142    {
28143       typedef is_abstract_imp2<T> type;
28144    };
28145 };
28146 template <>
28147 struct is_abstract_select<false>
28148 {
28149    template <class T>
28150    struct rebind
28151    {
28152       typedef false_type type;
28153    };
28154 };
28155
28156 template <class T>
28157 struct is_abstract_imp
28158 {
28159    typedef is_abstract_select< ::boost::is_class<T>::value> selector;
28160    typedef typename selector::template rebind<T> binder;
28161    typedef typename binder::type type;
28162
28163    static const bool value = type::value;
28164 };
28165
28166
28167 }
28168
28169
28170 template< typename T > struct is_abstract : ::boost::integral_constant<bool,::boost::detail::is_abstract_imp<T>::value> { };
28171
28172
28173
28174
28175 }
28176
28177 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
28178 # 143 "./boost/type_traits/is_abstract.hpp" 2
28179 # 24 "./boost/type_traits/is_convertible.hpp" 2
28180 # 32 "./boost/type_traits/is_convertible.hpp"
28181 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
28182 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
28183 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28184 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
28185 # 33 "./boost/type_traits/is_convertible.hpp" 2
28186
28187 namespace boost {
28188 # 46 "./boost/type_traits/is_convertible.hpp"
28189 namespace detail {
28190 # 113 "./boost/type_traits/is_convertible.hpp"
28191 struct any_conversion
28192 {
28193     template <typename T> any_conversion(const volatile T&);
28194     template <typename T> any_conversion(T&);
28195 };
28196
28197 template <typename T> struct checker
28198 {
28199     static boost::type_traits::no_type _m_check(any_conversion ...);
28200     static boost::type_traits::yes_type _m_check(T, int);
28201 };
28202
28203 template <typename From, typename To>
28204 struct is_convertible_basic_impl
28205 {
28206     static From _m_from;
28207     static bool const value = sizeof( detail::checker<To>::_m_check(_m_from, 0) )
28208         == sizeof(::boost::type_traits::yes_type);
28209 };
28210 # 285 "./boost/type_traits/is_convertible.hpp"
28211 template <typename From, typename To>
28212 struct is_convertible_impl
28213 {
28214     typedef typename add_reference<From>::type ref_type;
28215     static const bool value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< ::boost::detail::is_convertible_basic_impl<ref_type,To>::value, ::boost::is_void<To>::value >::value, ::boost::type_traits::ice_not< ::boost::is_array<To>::value >::value >::value);
28216 # 300 "./boost/type_traits/is_convertible.hpp"
28217 };
28218
28219
28220 template <bool trivial1, bool trivial2, bool abstract_target>
28221 struct is_convertible_impl_select
28222 {
28223    template <class From, class To>
28224    struct rebind
28225    {
28226       typedef is_convertible_impl<From, To> type;
28227    };
28228 };
28229
28230 template <>
28231 struct is_convertible_impl_select<true, true, false>
28232 {
28233    template <class From, class To>
28234    struct rebind
28235    {
28236       typedef true_type type;
28237    };
28238 };
28239
28240 template <>
28241 struct is_convertible_impl_select<false, false, true>
28242 {
28243    template <class From, class To>
28244    struct rebind
28245    {
28246       typedef false_type type;
28247    };
28248 };
28249
28250 template <>
28251 struct is_convertible_impl_select<true, false, true>
28252 {
28253    template <class From, class To>
28254    struct rebind
28255    {
28256       typedef false_type type;
28257    };
28258 };
28259
28260 template <typename From, typename To>
28261 struct is_convertible_impl_dispatch_base
28262 {
28263
28264    typedef is_convertible_impl_select<
28265       ::boost::is_arithmetic<From>::value,
28266       ::boost::is_arithmetic<To>::value,
28267
28268       ::boost::is_abstract<To>::value
28269
28270
28271
28272    > selector;
28273
28274
28275
28276    typedef typename selector::template rebind<From, To> isc_binder;
28277    typedef typename isc_binder::type type;
28278 };
28279
28280 template <typename From, typename To>
28281 struct is_convertible_impl_dispatch
28282    : public is_convertible_impl_dispatch_base<From, To>::type
28283 {};
28284 # 388 "./boost/type_traits/is_convertible.hpp"
28285     template<> struct is_convertible_impl< void,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void volatile,void const volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void const > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void volatile > { static const bool value = (true); }; template<> struct is_convertible_impl< void const volatile,void const volatile > { static const bool value = (true); };
28286 # 398 "./boost/type_traits/is_convertible.hpp"
28287 template< typename To > struct is_convertible_impl< void,To > { static const bool value = (false); };
28288 template< typename From > struct is_convertible_impl< From,void > { static const bool value = (true); };
28289
28290 template< typename To > struct is_convertible_impl< void const,To > { static const bool value = (false); };
28291 template< typename To > struct is_convertible_impl< void volatile,To > { static const bool value = (false); };
28292 template< typename To > struct is_convertible_impl< void const volatile,To > { static const bool value = (false); };
28293 template< typename From > struct is_convertible_impl< From,void const > { static const bool value = (true); };
28294 template< typename From > struct is_convertible_impl< From,void volatile > { static const bool value = (true); };
28295 template< typename From > struct is_convertible_impl< From,void const volatile > { static const bool value = (true); };
28296
28297
28298
28299 }
28300
28301 template< typename From, typename To > struct is_convertible : ::boost::integral_constant<bool,(::boost::detail::is_convertible_impl_dispatch<From,To>::value)> { };
28302
28303 }
28304
28305 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
28306 # 417 "./boost/type_traits/is_convertible.hpp" 2
28307 # 18 "./boost/type_traits/is_enum.hpp" 2
28308
28309
28310 # 1 "./boost/type_traits/is_function.hpp" 1
28311 # 15 "./boost/type_traits/is_function.hpp"
28312 # 1 "./boost/type_traits/detail/false_result.hpp" 1
28313 # 14 "./boost/type_traits/detail/false_result.hpp"
28314 namespace boost {
28315 namespace type_traits {
28316
28317
28318 struct false_result
28319 {
28320     template <typename T> struct result_
28321     {
28322         static const bool value = false;
28323     };
28324 };
28325
28326 }}
28327 # 16 "./boost/type_traits/is_function.hpp" 2
28328
28329
28330
28331 # 1 "./boost/type_traits/detail/is_function_ptr_helper.hpp" 1
28332 # 26 "./boost/type_traits/detail/is_function_ptr_helper.hpp"
28333 namespace boost {
28334 namespace type_traits {
28335
28336 template <class R>
28337 struct is_function_ptr_helper
28338 {
28339     static const bool value = false;
28340 };
28341
28342
28343
28344
28345 template <class R >
28346 struct is_function_ptr_helper<R (*)()> { static const bool value = true; };
28347
28348 template <class R >
28349 struct is_function_ptr_helper<R (*)( ...)> { static const bool value = true; };
28350
28351 template <class R , class T0>
28352 struct is_function_ptr_helper<R (*)( T0)> { static const bool value = true; };
28353
28354 template <class R , class T0>
28355 struct is_function_ptr_helper<R (*)( T0 ...)> { static const bool value = true; };
28356
28357 template <class R , class T0 , class T1>
28358 struct is_function_ptr_helper<R (*)( T0 , T1)> { static const bool value = true; };
28359
28360 template <class R , class T0 , class T1>
28361 struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { static const bool value = true; };
28362
28363 template <class R , class T0 , class T1 , class T2>
28364 struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { static const bool value = true; };
28365
28366 template <class R , class T0 , class T1 , class T2>
28367 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { static const bool value = true; };
28368
28369 template <class R , class T0 , class T1 , class T2 , class T3>
28370 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { static const bool value = true; };
28371
28372 template <class R , class T0 , class T1 , class T2 , class T3>
28373 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { static const bool value = true; };
28374
28375 template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
28376 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { static const bool value = true; };
28377
28378 template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
28379 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { static const bool value = true; };
28380
28381 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28382 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { static const bool value = true; };
28383
28384 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28385 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { static const bool value = true; };
28386
28387 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28388 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { static const bool value = true; };
28389
28390 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28391 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { static const bool value = true; };
28392
28393 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28394 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { static const bool value = true; };
28395
28396 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28397 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { static const bool value = true; };
28398
28399 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28400 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { static const bool value = true; };
28401
28402 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28403 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { static const bool value = true; };
28404
28405 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28406 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { static const bool value = true; };
28407
28408 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28409 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { static const bool value = true; };
28410
28411 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28412 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { static const bool value = true; };
28413
28414 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28415 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { static const bool value = true; };
28416
28417 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
28418 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { static const bool value = true; };
28419
28420 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
28421 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { static const bool value = true; };
28422
28423 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
28424 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { static const bool value = true; };
28425
28426 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
28427 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { static const bool value = true; };
28428
28429 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
28430 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { static const bool value = true; };
28431
28432 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
28433 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { static const bool value = true; };
28434
28435 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
28436 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { static const bool value = true; };
28437
28438 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
28439 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { static const bool value = true; };
28440
28441 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
28442 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { static const bool value = true; };
28443
28444 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
28445 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { static const bool value = true; };
28446
28447 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
28448 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { static const bool value = true; };
28449
28450 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
28451 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { static const bool value = true; };
28452
28453 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
28454 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { static const bool value = true; };
28455
28456 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
28457 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { static const bool value = true; };
28458
28459 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
28460 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { static const bool value = true; };
28461
28462 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
28463 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { static const bool value = true; };
28464
28465 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
28466 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { static const bool value = true; };
28467
28468 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
28469 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { static const bool value = true; };
28470
28471 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
28472 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { static const bool value = true; };
28473
28474 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
28475 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { static const bool value = true; };
28476
28477 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
28478 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { static const bool value = true; };
28479
28480 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
28481 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { static const bool value = true; };
28482
28483 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
28484 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { static const bool value = true; };
28485
28486 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
28487 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { static const bool value = true; };
28488
28489 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
28490 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { static const bool value = true; };
28491
28492 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
28493 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { static const bool value = true; };
28494
28495 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
28496 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { static const bool value = true; };
28497
28498 template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
28499 struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { static const bool value = true; };
28500 # 203 "./boost/type_traits/detail/is_function_ptr_helper.hpp"
28501 }
28502 }
28503 # 20 "./boost/type_traits/is_function.hpp" 2
28504
28505
28506
28507
28508
28509
28510 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
28511 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
28512 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28513 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
28514 # 27 "./boost/type_traits/is_function.hpp" 2
28515
28516
28517
28518
28519
28520
28521
28522 namespace boost {
28523 namespace detail {
28524
28525
28526 template<bool is_ref = true>
28527 struct is_function_chooser
28528     : ::boost::type_traits::false_result
28529 {
28530 };
28531
28532 template <>
28533 struct is_function_chooser<false>
28534 {
28535     template< typename T > struct result_
28536         : ::boost::type_traits::is_function_ptr_helper<T*>
28537     {
28538     };
28539 };
28540
28541 template <typename T>
28542 struct is_function_impl
28543     : is_function_chooser< ::boost::is_reference<T>::value >
28544         ::template result_<T>
28545 {
28546 };
28547 # 87 "./boost/type_traits/is_function.hpp"
28548 }
28549
28550 template< typename T > struct is_function : ::boost::integral_constant<bool,::boost::detail::is_function_impl<T>::value> { };
28551
28552 }
28553
28554 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
28555 # 94 "./boost/type_traits/is_function.hpp" 2
28556 # 21 "./boost/type_traits/is_enum.hpp" 2
28557 # 30 "./boost/type_traits/is_enum.hpp"
28558 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
28559 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
28560 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
28561 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
28562 # 31 "./boost/type_traits/is_enum.hpp" 2
28563
28564 namespace boost {
28565
28566
28567
28568 namespace detail {
28569
28570
28571
28572 template <typename T>
28573 struct is_class_or_union
28574 {
28575    static const bool value = (::boost::type_traits::ice_or< ::boost::is_class<T>::value , ::boost::is_union<T>::value >::value);
28576
28577
28578
28579
28580 };
28581 # 75 "./boost/type_traits/is_enum.hpp"
28582 struct int_convertible
28583 {
28584     int_convertible(int);
28585 };
28586
28587
28588
28589 template <bool is_typename_arithmetic_or_reference = true>
28590 struct is_enum_helper
28591 {
28592     template <typename T> struct type
28593     {
28594         static const bool value = false;
28595     };
28596 };
28597
28598 template <>
28599 struct is_enum_helper<false>
28600 {
28601     template <typename T> struct type
28602        : ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
28603     {
28604     };
28605 };
28606
28607 template <typename T> struct is_enum_impl
28608 {
28609 # 112 "./boost/type_traits/is_enum.hpp"
28610    static const bool selector = (::boost::type_traits::ice_or< ::boost::is_arithmetic<T>::value , ::boost::is_reference<T>::value , ::boost::is_function<T>::value , is_class_or_union<T>::value , is_array<T>::value >::value);
28611 # 149 "./boost/type_traits/is_enum.hpp"
28612     typedef ::boost::detail::is_enum_helper<selector> se_t;
28613
28614
28615     typedef typename se_t::template type<T> helper;
28616     static const bool value = helper::value;
28617 };
28618
28619
28620 template<> struct is_enum_impl< void > { static const bool value = (false); };
28621
28622 template<> struct is_enum_impl< void const > { static const bool value = (false); };
28623 template<> struct is_enum_impl< void volatile > { static const bool value = (false); };
28624 template<> struct is_enum_impl< void const volatile > { static const bool value = (false); };
28625
28626
28627 }
28628
28629 template< typename T > struct is_enum : ::boost::integral_constant<bool,::boost::detail::is_enum_impl<T>::value> { };
28630 # 176 "./boost/type_traits/is_enum.hpp"
28631 }
28632
28633 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
28634 # 179 "./boost/type_traits/is_enum.hpp" 2
28635 # 14 "./boost/type_traits/is_scalar.hpp" 2
28636 # 1 "./boost/type_traits/is_pointer.hpp" 1
28637 # 24 "./boost/type_traits/is_pointer.hpp"
28638 # 1 "./boost/type_traits/is_member_pointer.hpp" 1
28639 # 28 "./boost/type_traits/is_member_pointer.hpp"
28640 # 1 "./boost/type_traits/is_member_function_pointer.hpp" 1
28641 # 24 "./boost/type_traits/is_member_function_pointer.hpp"
28642 # 1 "./boost/type_traits/detail/is_mem_fun_pointer_impl.hpp" 1
28643 # 25 "./boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"
28644 namespace boost {
28645 namespace type_traits {
28646
28647 template <typename T>
28648 struct is_mem_fun_pointer_impl
28649 {
28650     static const bool value = false;
28651 };
28652
28653
28654
28655
28656
28657 template <class R, class T >
28658 struct is_mem_fun_pointer_impl<R (T::*)() > { static const bool value = true; };
28659
28660 template <class R, class T >
28661 struct is_mem_fun_pointer_impl<R (T::*)( ...) > { static const bool value = true; };
28662
28663
28664
28665 template <class R, class T >
28666 struct is_mem_fun_pointer_impl<R (T::*)() const > { static const bool value = true; };
28667
28668 template <class R, class T >
28669 struct is_mem_fun_pointer_impl<R (T::*)() volatile > { static const bool value = true; };
28670
28671 template <class R, class T >
28672 struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { static const bool value = true; };
28673
28674
28675 template <class R, class T >
28676 struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { static const bool value = true; };
28677
28678 template <class R, class T >
28679 struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { static const bool value = true; };
28680
28681 template <class R, class T >
28682 struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { static const bool value = true; };
28683
28684
28685 template <class R, class T , class T0>
28686 struct is_mem_fun_pointer_impl<R (T::*)( T0) > { static const bool value = true; };
28687
28688 template <class R, class T , class T0>
28689 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { static const bool value = true; };
28690
28691
28692
28693 template <class R, class T , class T0>
28694 struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { static const bool value = true; };
28695
28696 template <class R, class T , class T0>
28697 struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { static const bool value = true; };
28698
28699 template <class R, class T , class T0>
28700 struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { static const bool value = true; };
28701
28702
28703 template <class R, class T , class T0>
28704 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { static const bool value = true; };
28705
28706 template <class R, class T , class T0>
28707 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { static const bool value = true; };
28708
28709 template <class R, class T , class T0>
28710 struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { static const bool value = true; };
28711
28712
28713 template <class R, class T , class T0 , class T1>
28714 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { static const bool value = true; };
28715
28716 template <class R, class T , class T0 , class T1>
28717 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { static const bool value = true; };
28718
28719
28720
28721 template <class R, class T , class T0 , class T1>
28722 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { static const bool value = true; };
28723
28724 template <class R, class T , class T0 , class T1>
28725 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { static const bool value = true; };
28726
28727 template <class R, class T , class T0 , class T1>
28728 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { static const bool value = true; };
28729
28730
28731 template <class R, class T , class T0 , class T1>
28732 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { static const bool value = true; };
28733
28734 template <class R, class T , class T0 , class T1>
28735 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { static const bool value = true; };
28736
28737 template <class R, class T , class T0 , class T1>
28738 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { static const bool value = true; };
28739
28740
28741 template <class R, class T , class T0 , class T1 , class T2>
28742 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { static const bool value = true; };
28743
28744 template <class R, class T , class T0 , class T1 , class T2>
28745 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { static const bool value = true; };
28746
28747
28748
28749 template <class R, class T , class T0 , class T1 , class T2>
28750 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { static const bool value = true; };
28751
28752 template <class R, class T , class T0 , class T1 , class T2>
28753 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { static const bool value = true; };
28754
28755 template <class R, class T , class T0 , class T1 , class T2>
28756 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { static const bool value = true; };
28757
28758
28759 template <class R, class T , class T0 , class T1 , class T2>
28760 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { static const bool value = true; };
28761
28762 template <class R, class T , class T0 , class T1 , class T2>
28763 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { static const bool value = true; };
28764
28765 template <class R, class T , class T0 , class T1 , class T2>
28766 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { static const bool value = true; };
28767
28768
28769 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28770 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { static const bool value = true; };
28771
28772 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28773 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { static const bool value = true; };
28774
28775
28776
28777 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28778 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { static const bool value = true; };
28779
28780 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28781 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { static const bool value = true; };
28782
28783 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28784 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { static const bool value = true; };
28785
28786
28787 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28788 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { static const bool value = true; };
28789
28790 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28791 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { static const bool value = true; };
28792
28793 template <class R, class T , class T0 , class T1 , class T2 , class T3>
28794 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { static const bool value = true; };
28795
28796
28797 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28798 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { static const bool value = true; };
28799
28800 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28801 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { static const bool value = true; };
28802
28803
28804
28805 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28806 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { static const bool value = true; };
28807
28808 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28809 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { static const bool value = true; };
28810
28811 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28812 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { static const bool value = true; };
28813
28814
28815 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28816 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { static const bool value = true; };
28817
28818 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28819 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { static const bool value = true; };
28820
28821 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
28822 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { static const bool value = true; };
28823
28824
28825 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28826 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { static const bool value = true; };
28827
28828 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28829 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { static const bool value = true; };
28830
28831
28832
28833 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28834 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { static const bool value = true; };
28835
28836 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28837 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { static const bool value = true; };
28838
28839 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28840 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { static const bool value = true; };
28841
28842
28843 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28844 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { static const bool value = true; };
28845
28846 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28847 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { static const bool value = true; };
28848
28849 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
28850 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { static const bool value = true; };
28851
28852
28853 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28854 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { static const bool value = true; };
28855
28856 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28857 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { static const bool value = true; };
28858
28859
28860
28861 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28862 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { static const bool value = true; };
28863
28864 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28865 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { static const bool value = true; };
28866
28867 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28868 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { static const bool value = true; };
28869
28870
28871 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28872 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { static const bool value = true; };
28873
28874 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28875 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { static const bool value = true; };
28876
28877 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
28878 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { static const bool value = true; };
28879
28880
28881 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28882 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { static const bool value = true; };
28883
28884 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28885 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { static const bool value = true; };
28886
28887
28888
28889 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28890 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { static const bool value = true; };
28891
28892 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28893 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { static const bool value = true; };
28894
28895 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28896 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { static const bool value = true; };
28897
28898
28899 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28900 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { static const bool value = true; };
28901
28902 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28903 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { static const bool value = true; };
28904
28905 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
28906 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { static const bool value = true; };
28907
28908
28909 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28910 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { static const bool value = true; };
28911
28912 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28913 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { static const bool value = true; };
28914
28915
28916
28917 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28918 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { static const bool value = true; };
28919
28920 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28921 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { static const bool value = true; };
28922
28923 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28924 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { static const bool value = true; };
28925
28926
28927 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28928 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { static const bool value = true; };
28929
28930 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28931 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { static const bool value = true; };
28932
28933 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
28934 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { static const bool value = true; };
28935
28936
28937 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28938 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { static const bool value = true; };
28939
28940 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28941 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { static const bool value = true; };
28942
28943
28944
28945 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28946 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { static const bool value = true; };
28947
28948 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28949 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { static const bool value = true; };
28950
28951 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28952 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { static const bool value = true; };
28953
28954
28955 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28956 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { static const bool value = true; };
28957
28958 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28959 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { static const bool value = true; };
28960
28961 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
28962 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { static const bool value = true; };
28963
28964
28965 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28966 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { static const bool value = true; };
28967
28968 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28969 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { static const bool value = true; };
28970
28971
28972
28973 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28974 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { static const bool value = true; };
28975
28976 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28977 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { static const bool value = true; };
28978
28979 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28980 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { static const bool value = true; };
28981
28982
28983 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28984 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { static const bool value = true; };
28985
28986 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28987 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { static const bool value = true; };
28988
28989 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
28990 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { static const bool value = true; };
28991
28992
28993 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
28994 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { static const bool value = true; };
28995
28996 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
28997 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { static const bool value = true; };
28998
28999
29000
29001 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
29002 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { static const bool value = true; };
29003
29004 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
29005 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { static const bool value = true; };
29006
29007 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
29008 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { static const bool value = true; };
29009
29010
29011 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
29012 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { static const bool value = true; };
29013
29014 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
29015 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { static const bool value = true; };
29016
29017 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
29018 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { static const bool value = true; };
29019
29020
29021 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29022 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { static const bool value = true; };
29023
29024 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29025 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { static const bool value = true; };
29026
29027
29028
29029 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29030 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { static const bool value = true; };
29031
29032 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29033 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { static const bool value = true; };
29034
29035 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29036 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { static const bool value = true; };
29037
29038
29039 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29040 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { static const bool value = true; };
29041
29042 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29043 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { static const bool value = true; };
29044
29045 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
29046 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { static const bool value = true; };
29047
29048
29049 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29050 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { static const bool value = true; };
29051
29052 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29053 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { static const bool value = true; };
29054
29055
29056
29057 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29058 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { static const bool value = true; };
29059
29060 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29061 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { static const bool value = true; };
29062
29063 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29064 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { static const bool value = true; };
29065
29066
29067 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29068 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { static const bool value = true; };
29069
29070 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29071 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { static const bool value = true; };
29072
29073 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
29074 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { static const bool value = true; };
29075
29076
29077 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29078 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { static const bool value = true; };
29079
29080 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29081 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { static const bool value = true; };
29082
29083
29084
29085 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29086 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { static const bool value = true; };
29087
29088 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29089 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { static const bool value = true; };
29090
29091 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29092 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { static const bool value = true; };
29093
29094
29095 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29096 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { static const bool value = true; };
29097
29098 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29099 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { static const bool value = true; };
29100
29101 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
29102 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { static const bool value = true; };
29103
29104
29105 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29106 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { static const bool value = true; };
29107
29108 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29109 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { static const bool value = true; };
29110
29111
29112
29113 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29114 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { static const bool value = true; };
29115
29116 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29117 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { static const bool value = true; };
29118
29119 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29120 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { static const bool value = true; };
29121
29122
29123 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29124 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { static const bool value = true; };
29125
29126 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29127 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { static const bool value = true; };
29128
29129 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
29130 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { static const bool value = true; };
29131
29132
29133 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29134 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { static const bool value = true; };
29135
29136 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29137 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { static const bool value = true; };
29138
29139
29140
29141 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29142 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { static const bool value = true; };
29143
29144 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29145 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { static const bool value = true; };
29146
29147 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29148 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { static const bool value = true; };
29149
29150
29151 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29152 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { static const bool value = true; };
29153
29154 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29155 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { static const bool value = true; };
29156
29157 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
29158 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { static const bool value = true; };
29159
29160
29161 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29162 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { static const bool value = true; };
29163
29164 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29165 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { static const bool value = true; };
29166
29167
29168
29169 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29170 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { static const bool value = true; };
29171
29172 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29173 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { static const bool value = true; };
29174
29175 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29176 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { static const bool value = true; };
29177
29178
29179 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29180 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { static const bool value = true; };
29181
29182 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29183 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { static const bool value = true; };
29184
29185 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
29186 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { static const bool value = true; };
29187
29188
29189 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29190 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { static const bool value = true; };
29191
29192 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29193 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { static const bool value = true; };
29194
29195
29196
29197 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29198 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { static const bool value = true; };
29199
29200 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29201 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { static const bool value = true; };
29202
29203 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29204 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { static const bool value = true; };
29205
29206
29207 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29208 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { static const bool value = true; };
29209
29210 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29211 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { static const bool value = true; };
29212
29213 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
29214 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { static const bool value = true; };
29215
29216
29217 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29218 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { static const bool value = true; };
29219
29220 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29221 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { static const bool value = true; };
29222
29223
29224
29225 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29226 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { static const bool value = true; };
29227
29228 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29229 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { static const bool value = true; };
29230
29231 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29232 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { static const bool value = true; };
29233
29234
29235 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29236 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { static const bool value = true; };
29237
29238 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29239 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { static const bool value = true; };
29240
29241 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
29242 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { static const bool value = true; };
29243
29244
29245 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29246 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { static const bool value = true; };
29247
29248 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29249 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { static const bool value = true; };
29250
29251
29252
29253 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29254 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { static const bool value = true; };
29255
29256 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29257 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { static const bool value = true; };
29258
29259 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29260 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { static const bool value = true; };
29261
29262
29263 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29264 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { static const bool value = true; };
29265
29266 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29267 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { static const bool value = true; };
29268
29269 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
29270 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { static const bool value = true; };
29271
29272
29273 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29274 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { static const bool value = true; };
29275
29276 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29277 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { static const bool value = true; };
29278
29279
29280
29281 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29282 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { static const bool value = true; };
29283
29284 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29285 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { static const bool value = true; };
29286
29287 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29288 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { static const bool value = true; };
29289
29290
29291 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29292 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { static const bool value = true; };
29293
29294 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29295 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { static const bool value = true; };
29296
29297 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
29298 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { static const bool value = true; };
29299
29300
29301 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29302 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { static const bool value = true; };
29303
29304 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29305 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { static const bool value = true; };
29306
29307
29308
29309 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29310 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { static const bool value = true; };
29311
29312 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29313 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { static const bool value = true; };
29314
29315 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29316 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { static const bool value = true; };
29317
29318
29319 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29320 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { static const bool value = true; };
29321
29322 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29323 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { static const bool value = true; };
29324
29325 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
29326 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { static const bool value = true; };
29327
29328
29329 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29330 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { static const bool value = true; };
29331
29332 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29333 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { static const bool value = true; };
29334
29335
29336
29337 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29338 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { static const bool value = true; };
29339
29340 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29341 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { static const bool value = true; };
29342
29343 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29344 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { static const bool value = true; };
29345
29346
29347 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29348 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { static const bool value = true; };
29349
29350 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29351 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { static const bool value = true; };
29352
29353 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
29354 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { static const bool value = true; };
29355
29356
29357 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29358 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { static const bool value = true; };
29359
29360 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29361 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { static const bool value = true; };
29362
29363
29364
29365 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29366 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { static const bool value = true; };
29367
29368 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29369 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { static const bool value = true; };
29370
29371 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29372 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { static const bool value = true; };
29373
29374
29375 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29376 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { static const bool value = true; };
29377
29378 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29379 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { static const bool value = true; };
29380
29381 template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
29382 struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { static const bool value = true; };
29383 # 776 "./boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"
29384 }
29385 }
29386 # 25 "./boost/type_traits/is_member_function_pointer.hpp" 2
29387 # 36 "./boost/type_traits/is_member_function_pointer.hpp"
29388 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29389 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29390 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29391 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29392 # 37 "./boost/type_traits/is_member_function_pointer.hpp" 2
29393
29394 namespace boost {
29395
29396
29397
29398 template< typename T > struct is_member_function_pointer : ::boost::integral_constant<bool,::boost::type_traits::is_mem_fun_pointer_impl<typename remove_cv<T>::type>::value> { };
29399 # 130 "./boost/type_traits/is_member_function_pointer.hpp"
29400 }
29401
29402 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29403 # 133 "./boost/type_traits/is_member_function_pointer.hpp" 2
29404 # 29 "./boost/type_traits/is_member_pointer.hpp" 2
29405 # 39 "./boost/type_traits/is_member_pointer.hpp"
29406 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29407 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29408 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29409 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29410 # 40 "./boost/type_traits/is_member_pointer.hpp" 2
29411
29412 namespace boost {
29413
29414
29415
29416
29417
29418
29419 template< typename T > struct is_member_pointer : ::boost::integral_constant<bool,::boost::is_member_function_pointer<T>::value> { };
29420 template< typename T, typename U > struct is_member_pointer< U T::* > : ::boost::integral_constant<bool,true> { };
29421
29422
29423 template< typename T, typename U > struct is_member_pointer< U T::*const > : ::boost::integral_constant<bool,true> { };
29424 template< typename T, typename U > struct is_member_pointer< U T::*volatile > : ::boost::integral_constant<bool,true> { };
29425 template< typename T, typename U > struct is_member_pointer< U T::*const volatile > : ::boost::integral_constant<bool,true> { };
29426 # 110 "./boost/type_traits/is_member_pointer.hpp"
29427 }
29428
29429 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29430 # 113 "./boost/type_traits/is_member_pointer.hpp" 2
29431 # 25 "./boost/type_traits/is_pointer.hpp" 2
29432 # 41 "./boost/type_traits/is_pointer.hpp"
29433 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29434 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29435 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29436 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29437 # 42 "./boost/type_traits/is_pointer.hpp" 2
29438
29439 namespace boost {
29440
29441
29442
29443 namespace detail {
29444
29445 template< typename T > struct is_pointer_helper
29446 {
29447     static const bool value = false;
29448 };
29449 # 61 "./boost/type_traits/is_pointer.hpp"
29450 template< typename T > struct is_pointer_helper<T*> { static const bool value = true; };
29451
29452
29453
29454 template< typename T >
29455 struct is_pointer_impl
29456 {
29457 # 78 "./boost/type_traits/is_pointer.hpp"
29458     static const bool value = (::boost::type_traits::ice_and< ::boost::detail::is_pointer_helper<typename remove_cv<T>::type>::value , ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value >::value);
29459 # 87 "./boost/type_traits/is_pointer.hpp"
29460 };
29461
29462 }
29463
29464 template< typename T > struct is_pointer : ::boost::integral_constant<bool,::boost::detail::is_pointer_impl<T>::value> { };
29465 # 156 "./boost/type_traits/is_pointer.hpp"
29466 }
29467
29468 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29469 # 159 "./boost/type_traits/is_pointer.hpp" 2
29470 # 15 "./boost/type_traits/is_scalar.hpp" 2
29471
29472
29473
29474
29475
29476 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29477 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29478 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29479 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29480 # 21 "./boost/type_traits/is_scalar.hpp" 2
29481
29482 namespace boost {
29483
29484 namespace detail {
29485
29486 template <typename T>
29487 struct is_scalar_impl
29488 {
29489    static const bool value = (::boost::type_traits::ice_or< ::boost::is_arithmetic<T>::value, ::boost::is_enum<T>::value, ::boost::is_pointer<T>::value, ::boost::is_member_pointer<T>::value >::value);
29490
29491
29492
29493
29494
29495
29496 };
29497
29498
29499
29500 template <> struct is_scalar_impl<void>{ static const bool value = false; };
29501
29502 template <> struct is_scalar_impl<void const>{ static const bool value = false; };
29503 template <> struct is_scalar_impl<void volatile>{ static const bool value = false; };
29504 template <> struct is_scalar_impl<void const volatile>{ static const bool value = false; };
29505
29506
29507 }
29508
29509 template< typename T > struct is_scalar : ::boost::integral_constant<bool,::boost::detail::is_scalar_impl<T>::value> { };
29510
29511 }
29512
29513 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29514 # 54 "./boost/type_traits/is_scalar.hpp" 2
29515 # 15 "./boost/type_traits/is_pod.hpp" 2
29516
29517
29518
29519
29520
29521
29522 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29523 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29524 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29525 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29526 # 22 "./boost/type_traits/is_pod.hpp" 2
29527
29528 namespace boost {
29529
29530
29531 template< typename T > struct is_POD;
29532
29533 namespace detail {
29534
29535
29536
29537 template <typename T> struct is_pod_impl
29538 {
29539     static const bool value = (::boost::type_traits::ice_or< ::boost::is_scalar<T>::value, ::boost::is_void<T>::value, false >::value);
29540
29541
29542
29543
29544
29545
29546 };
29547
29548
29549 template <typename T, std::size_t sz>
29550 struct is_pod_impl<T[sz]>
29551     : is_pod_impl<T>
29552 {
29553 };
29554 # 118 "./boost/type_traits/is_pod.hpp"
29555 template<> struct is_pod_impl< void > { static const bool value = (true); };
29556
29557
29558 template<> struct is_pod_impl< void const > { static const bool value = (true); };
29559 template<> struct is_pod_impl< void volatile > { static const bool value = (true); };
29560 template<> struct is_pod_impl< void const volatile > { static const bool value = (true); };
29561
29562
29563 }
29564
29565 template< typename T > struct is_POD : ::boost::integral_constant<bool,::boost::detail::is_pod_impl<T>::value> { };
29566 template< typename T > struct is_pod : ::boost::integral_constant<bool,::boost::detail::is_pod_impl<T>::value> { };
29567
29568 }
29569
29570 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29571 # 134 "./boost/type_traits/is_pod.hpp" 2
29572 # 19 "./boost/type_traits/type_with_alignment.hpp" 2
29573
29574
29575
29576
29577 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29578 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29579 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29580 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29581 # 24 "./boost/type_traits/type_with_alignment.hpp" 2
29582 # 32 "./boost/type_traits/type_with_alignment.hpp"
29583 namespace boost {
29584
29585
29586
29587 namespace detail {
29588
29589 class alignment_dummy;
29590 typedef void (*function_ptr)();
29591 typedef int (alignment_dummy::*member_ptr);
29592 typedef int (alignment_dummy::*member_function_ptr)();
29593 # 101 "./boost/type_traits/type_with_alignment.hpp"
29594 template <bool found, std::size_t target, class TestType>
29595 struct lower_alignment_helper
29596 {
29597     typedef char type;
29598     enum { value = true };
29599 };
29600
29601 template <std::size_t target, class TestType>
29602 struct lower_alignment_helper<false,target,TestType>
29603 {
29604     enum { value = (alignment_of<TestType>::value == target) };
29605     typedef typename mpl::if_c<value, TestType, char>::type type;
29606 };
29607 # 127 "./boost/type_traits/type_with_alignment.hpp"
29608 template <typename T>
29609 struct has_one_T
29610 {
29611   T data;
29612 };
29613
29614 template <std::size_t target>
29615 union lower_alignment
29616 {
29617     enum { found0 = false };
29618
29619     typename lower_alignment_helper< found0,target,char >::type t0; enum { found1 = lower_alignment_helper<found0,target,char >::value }; typename lower_alignment_helper< found1,target,short >::type t1; enum { found2 = lower_alignment_helper<found1,target,short >::value }; typename lower_alignment_helper< found2,target,int >::type t2; enum { found3 = lower_alignment_helper<found2,target,int >::value }; typename lower_alignment_helper< found3,target,long >::type t3; enum { found4 = lower_alignment_helper<found3,target,long >::value }; typename lower_alignment_helper< found4,target,::boost::long_long_type >::type t4; enum { found5 = lower_alignment_helper<found4,target,::boost::long_long_type >::value }; typename lower_alignment_helper< found5,target,float >::type t5; enum { found6 = lower_alignment_helper<found5,target,float >::value }; typename lower_alignment_helper< found6,target,double >::type t6; enum { found7 = lower_alignment_helper<found6,target,double >::value }; typename lower_alignment_helper< found7,target,long double >::type t7; enum { found8 = lower_alignment_helper<found7,target,long double >::value }; typename lower_alignment_helper< found8,target,void* >::type t8; enum { found9 = lower_alignment_helper<found8,target,void* >::value }; typename lower_alignment_helper< found9,target,function_ptr >::type t9; enum { found10 = lower_alignment_helper<found9,target,function_ptr >::value }; typename lower_alignment_helper< found10,target,member_ptr >::type t10; enum { found11 = lower_alignment_helper<found10,target,member_ptr >::value }; typename lower_alignment_helper< found11,target,member_function_ptr >::type t11; enum { found12 = lower_alignment_helper<found11,target,member_function_ptr >::value }; typename lower_alignment_helper< found12,target,boost::detail::has_one_T< char > >::type t12; enum { found13 = lower_alignment_helper<found12,target,boost::detail::has_one_T< char > >::value }; typename lower_alignment_helper< found13,target,boost::detail::has_one_T< short > >::type t13; enum { found14 = lower_alignment_helper<found13,target,boost::detail::has_one_T< short > >::value }; typename lower_alignment_helper< found14,target,boost::detail::has_one_T< int > >::type t14; enum { found15 = lower_alignment_helper<found14,target,boost::detail::has_one_T< int > >::value }; typename lower_alignment_helper< found15,target,boost::detail::has_one_T< long > >::type t15; enum { found16 = lower_alignment_helper<found15,target,boost::detail::has_one_T< long > >::value }; typename lower_alignment_helper< found16,target,boost::detail::has_one_T< ::boost::long_long_type > >::type t16; enum { found17 = lower_alignment_helper<found16,target,boost::detail::has_one_T< ::boost::long_long_type > >::value }; typename lower_alignment_helper< found17,target,boost::detail::has_one_T< float > >::type t17; enum { found18 = lower_alignment_helper<found17,target,boost::detail::has_one_T< float > >::value }; typename lower_alignment_helper< found18,target,boost::detail::has_one_T< double > >::type t18; enum { found19 = lower_alignment_helper<found18,target,boost::detail::has_one_T< double > >::value }; typename lower_alignment_helper< found19,target,boost::detail::has_one_T< long double > >::type t19; enum { found20 = lower_alignment_helper<found19,target,boost::detail::has_one_T< long double > >::value }; typename lower_alignment_helper< found20,target,boost::detail::has_one_T< void* > >::type t20; enum { found21 = lower_alignment_helper<found20,target,boost::detail::has_one_T< void* > >::value }; typename lower_alignment_helper< found21,target,boost::detail::has_one_T< function_ptr > >::type t21; enum { found22 = lower_alignment_helper<found21,target,boost::detail::has_one_T< function_ptr > >::value }; typename lower_alignment_helper< found22,target,boost::detail::has_one_T< member_ptr > >::type t22; enum { found23 = lower_alignment_helper<found22,target,boost::detail::has_one_T< member_ptr > >::value }; typename lower_alignment_helper< found23,target,boost::detail::has_one_T< member_function_ptr > >::type t23; enum { found24 = lower_alignment_helper<found23,target,boost::detail::has_one_T< member_function_ptr > >::value };
29620
29621
29622
29623
29624 };
29625
29626 union max_align
29627 {
29628     char t0; short t1; int t2; long t3; ::boost::long_long_type t4; float t5; double t6; long double t7; void* t8; function_ptr t9; member_ptr t10; member_function_ptr t11; boost::detail::has_one_T< char > t12; boost::detail::has_one_T< short > t13; boost::detail::has_one_T< int > t14; boost::detail::has_one_T< long > t15; boost::detail::has_one_T< ::boost::long_long_type > t16; boost::detail::has_one_T< float > t17; boost::detail::has_one_T< double > t18; boost::detail::has_one_T< long double > t19; boost::detail::has_one_T< void* > t20; boost::detail::has_one_T< function_ptr > t21; boost::detail::has_one_T< member_ptr > t22; boost::detail::has_one_T< member_function_ptr > t23;
29629
29630
29631
29632
29633 };
29634 # 161 "./boost/type_traits/type_with_alignment.hpp"
29635 template<std::size_t TAlign, std::size_t Align>
29636 struct is_aligned
29637 {
29638     static const bool value = (TAlign >= Align) & (TAlign % Align == 0);
29639
29640
29641 };
29642 # 180 "./boost/type_traits/type_with_alignment.hpp"
29643 }
29644
29645
29646 template<std::size_t Align>
29647 struct is_pod< ::boost::detail::lower_alignment<Align> >
29648 {
29649         static const std::size_t value = true;
29650 };
29651
29652
29653
29654
29655 template <std::size_t Align>
29656 class type_with_alignment
29657 {
29658     typedef ::boost::detail::lower_alignment<Align> t1;
29659     typedef typename mpl::if_c<
29660           ::boost::detail::is_aligned< ::boost::alignment_of<t1>::value,Align >::value
29661         , t1
29662         , ::boost::detail::max_align
29663         >::type align_t;
29664
29665     static const std::size_t found = alignment_of<align_t>::value;
29666
29667     typedef ::boost::static_assert_test< sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( found >= Align ) >)> boost_static_assert_typedef_204;
29668     typedef ::boost::static_assert_test< sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( found % Align == 0 ) >)> boost_static_assert_typedef_205;
29669
29670  public:
29671     typedef align_t type;
29672 };
29673
29674
29675 namespace align {
29676 struct __attribute__((__aligned__(2))) a2 {};
29677 struct __attribute__((__aligned__(4))) a4 {};
29678 struct __attribute__((__aligned__(8))) a8 {};
29679 struct __attribute__((__aligned__(16))) a16 {};
29680 struct __attribute__((__aligned__(32))) a32 {};
29681 }
29682
29683 template<> class type_with_alignment<1> { public: typedef char type; };
29684 template<> class type_with_alignment<2> { public: typedef align::a2 type; };
29685 template<> class type_with_alignment<4> { public: typedef align::a4 type; };
29686 template<> class type_with_alignment<8> { public: typedef align::a8 type; };
29687 template<> class type_with_alignment<16> { public: typedef align::a16 type; };
29688 template<> class type_with_alignment<32> { public: typedef align::a32 type; };
29689
29690 namespace detail {
29691 template<> struct is_pod_impl< ::boost::align::a2 > { static const bool value = (true); };
29692 template<> struct is_pod_impl< ::boost::align::a4 > { static const bool value = (true); };
29693 template<> struct is_pod_impl< ::boost::align::a8 > { static const bool value = (true); };
29694 template<> struct is_pod_impl< ::boost::align::a16 > { static const bool value = (true); };
29695 template<> struct is_pod_impl< ::boost::align::a32 > { static const bool value = (true); };
29696 }
29697 # 278 "./boost/type_traits/type_with_alignment.hpp"
29698 }
29699
29700
29701
29702
29703
29704 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29705 # 285 "./boost/type_traits/type_with_alignment.hpp" 2
29706 # 23 "./boost/optional/optional.hpp" 2
29707 # 1 "./boost/type_traits/remove_reference.hpp" 1
29708 # 21 "./boost/type_traits/remove_reference.hpp"
29709 # 1 "./boost/type_traits/detail/type_trait_def.hpp" 1
29710 # 14 "./boost/type_traits/detail/type_trait_def.hpp"
29711 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29712 # 15 "./boost/type_traits/detail/type_trait_def.hpp" 2
29713 # 22 "./boost/type_traits/remove_reference.hpp" 2
29714
29715 namespace boost {
29716
29717
29718
29719 template< typename T > struct remove_reference { typedef T type; };
29720 template< typename T > struct remove_reference<T&> { typedef T type; };
29721 # 46 "./boost/type_traits/remove_reference.hpp"
29722 }
29723
29724 # 1 "./boost/type_traits/detail/type_trait_undef.hpp" 1
29725 # 49 "./boost/type_traits/remove_reference.hpp" 2
29726 # 24 "./boost/optional/optional.hpp" 2
29727
29728
29729
29730 # 1 "./boost/mpl/not.hpp" 1
29731 # 19 "./boost/mpl/not.hpp"
29732 # 1 "./boost/mpl/aux_/nested_type_wknd.hpp" 1
29733 # 25 "./boost/mpl/aux_/nested_type_wknd.hpp"
29734 namespace boost { namespace mpl { namespace aux {
29735 template< typename T > struct nested_type_wknd
29736     : T::type
29737 {
29738 };
29739 }}}
29740 # 20 "./boost/mpl/not.hpp" 2
29741
29742
29743
29744 namespace boost { namespace mpl {
29745
29746 namespace aux {
29747
29748 template< long C_ >
29749 struct not_impl
29750     : bool_<!C_>
29751 {
29752 };
29753
29754 }
29755
29756
29757 template<
29758       typename T = na
29759     >
29760 struct not_
29761     : aux::not_impl<
29762           ::boost::mpl::aux::nested_type_wknd<T>::value
29763         >
29764 {
29765    
29766 };
29767
29768 template<> struct not_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : not_< T1 > { }; }; template< typename Tag > struct lambda< not_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef not_< na > result_; typedef not_< na > type; }; namespace aux { template< typename T1 > struct template_arity< not_< T1 > > : int_<1> { }; template<> struct template_arity< not_< na > > : int_<-1> { }; }
29769
29770 }}
29771 # 28 "./boost/optional/optional.hpp" 2
29772 # 1 "./boost/detail/reference_content.hpp" 1
29773 # 20 "./boost/detail/reference_content.hpp"
29774 # 1 "./boost/type_traits/has_nothrow_copy.hpp" 1
29775 # 12 "./boost/type_traits/has_nothrow_copy.hpp"
29776 # 1 "./boost/type_traits/has_trivial_copy.hpp" 1
29777 # 14 "./boost/type_traits/has_trivial_copy.hpp"
29778 # 1 "./boost/type_traits/is_volatile.hpp" 1
29779 # 40 "./boost/type_traits/is_volatile.hpp"
29780 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29781 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29782 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29783 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29784 # 41 "./boost/type_traits/is_volatile.hpp" 2
29785
29786 namespace boost {
29787
29788
29789
29790
29791
29792
29793
29794    template< typename T > struct is_volatile : ::boost::integral_constant<bool,::boost::detail::cv_traits_imp<T*>::is_volatile> { };
29795
29796 template< typename T > struct is_volatile< T& > : ::boost::integral_constant<bool,false> { };
29797 # 127 "./boost/type_traits/is_volatile.hpp"
29798 }
29799
29800 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29801 # 130 "./boost/type_traits/is_volatile.hpp" 2
29802 # 15 "./boost/type_traits/has_trivial_copy.hpp" 2
29803
29804
29805
29806
29807
29808
29809 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29810 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29811 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29812 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29813 # 22 "./boost/type_traits/has_trivial_copy.hpp" 2
29814
29815 namespace boost {
29816
29817 namespace detail {
29818
29819 template <typename T>
29820 struct has_trivial_copy_impl
29821 {
29822    static const bool value = (::boost::type_traits::ice_and< ::boost::type_traits::ice_or< ::boost::is_pod<T>::value, false >::value, ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value >::value);
29823
29824
29825
29826
29827
29828
29829
29830 };
29831
29832 }
29833
29834 template< typename T > struct has_trivial_copy : ::boost::integral_constant<bool,::boost::detail::has_trivial_copy_impl<T>::value> { };
29835 template< typename T > struct has_trivial_copy_constructor : ::boost::integral_constant<bool,::boost::detail::has_trivial_copy_impl<T>::value> { };
29836
29837 }
29838
29839 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29840 # 48 "./boost/type_traits/has_trivial_copy.hpp" 2
29841 # 13 "./boost/type_traits/has_nothrow_copy.hpp" 2
29842
29843
29844 # 1 "./boost/type_traits/detail/bool_trait_def.hpp" 1
29845 # 14 "./boost/type_traits/detail/bool_trait_def.hpp"
29846 # 1 "./boost/type_traits/detail/template_arity_spec.hpp" 1
29847 # 15 "./boost/type_traits/detail/bool_trait_def.hpp" 2
29848 # 16 "./boost/type_traits/has_nothrow_copy.hpp" 2
29849
29850 namespace boost {
29851
29852 namespace detail{
29853
29854 template <class T>
29855 struct has_nothrow_copy_imp{
29856    static const bool value = (::boost::type_traits::ice_or< ::boost::has_trivial_copy<T>::value, false >::value);
29857
29858
29859
29860
29861 };
29862
29863 }
29864
29865 template< typename T > struct has_nothrow_copy : ::boost::integral_constant<bool,::boost::detail::has_nothrow_copy_imp<T>::value> { };
29866 template< typename T > struct has_nothrow_copy_constructor : ::boost::integral_constant<bool,::boost::detail::has_nothrow_copy_imp<T>::value> { };
29867
29868 }
29869
29870 # 1 "./boost/type_traits/detail/bool_trait_undef.hpp" 1
29871 # 38 "./boost/type_traits/has_nothrow_copy.hpp" 2
29872 # 21 "./boost/detail/reference_content.hpp" 2
29873
29874
29875
29876
29877
29878 # 1 "./boost/mpl/void.hpp" 1
29879 # 23 "./boost/mpl/void.hpp"
29880 namespace mpl_ {
29881
29882
29883
29884
29885
29886 struct void_ { typedef void_ type; };
29887
29888 }
29889
29890 namespace boost { namespace mpl {
29891
29892 template< typename T >
29893 struct is_void_
29894     : false_
29895 {
29896
29897
29898
29899 };
29900
29901 template<>
29902 struct is_void_<void_>
29903     : true_
29904 {
29905
29906
29907
29908 };
29909
29910 template< typename T >
29911 struct is_not_void_
29912     : true_
29913 {
29914
29915
29916
29917 };
29918
29919 template<>
29920 struct is_not_void_<void_>
29921     : false_
29922 {
29923
29924
29925
29926 };
29927
29928 template<> struct is_void_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_void_< T1 > { }; }; template< typename Tag > struct lambda< is_void_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_void_< na > result_; typedef is_void_< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_void_< T1 > > : int_<1> { }; template<> struct template_arity< is_void_< na > > : int_<-1> { }; }
29929 template<> struct is_not_void_< na > { template< typename T1 , typename T2 =na , typename T3 =na , typename T4 =na , typename T5 =na > struct apply : is_not_void_< T1 > { }; }; template< typename Tag > struct lambda< is_not_void_< na > , Tag , int_<-1> > { typedef false_ is_le; typedef is_not_void_< na > result_; typedef is_not_void_< na > type; }; namespace aux { template< typename T1 > struct template_arity< is_not_void_< T1 > > : int_<1> { }; template<> struct template_arity< is_not_void_< na > > : int_<-1> { }; }
29930
29931 }}
29932 # 27 "./boost/detail/reference_content.hpp" 2
29933
29934 namespace boost {
29935
29936 namespace detail {
29937
29938
29939
29940
29941
29942
29943 template <typename RefT>
29944 class reference_content
29945 {
29946 private:
29947
29948     RefT content_;
29949
29950 public:
29951
29952     ~reference_content()
29953     {
29954     }
29955
29956     reference_content(RefT r)
29957         : content_( r )
29958     {
29959     }
29960
29961     reference_content(const reference_content& operand)
29962         : content_( operand.content_ )
29963     {
29964     }
29965
29966 private:
29967
29968     reference_content& operator=(const reference_content&);
29969
29970 public:
29971
29972     RefT get() const
29973     {
29974         return content_;
29975     }
29976
29977 };
29978
29979
29980
29981
29982
29983
29984
29985 template <typename T = mpl::void_> struct make_reference_content;
29986
29987
29988
29989 template <typename T>
29990 struct make_reference_content
29991 {
29992     typedef T type;
29993 };
29994
29995 template <typename T>
29996 struct make_reference_content< T& >
29997 {
29998     typedef reference_content<T&> type;
29999 };
30000 # 109 "./boost/detail/reference_content.hpp"
30001 template <>
30002 struct make_reference_content< mpl::void_ >
30003 {
30004     template <typename T>
30005     struct apply
30006         : make_reference_content<T>
30007     {
30008     };
30009
30010     typedef mpl::void_ type;
30011 };
30012
30013 }
30014
30015
30016
30017
30018
30019
30020
30021 template <typename T>
30022 struct has_nothrow_copy<
30023       ::boost::detail::reference_content< T& >
30024     >
30025     : mpl::true_
30026 {
30027 };
30028
30029
30030
30031 }
30032 # 29 "./boost/optional/optional.hpp" 2
30033 # 1 "./boost/none.hpp" 1
30034 # 15 "./boost/none.hpp"
30035 # 1 "./boost/none_t.hpp" 1
30036 # 15 "./boost/none_t.hpp"
30037 namespace boost {
30038
30039 namespace detail { struct none_helper{}; }
30040
30041 typedef int detail::none_helper::*none_t ;
30042
30043 }
30044 # 16 "./boost/none.hpp" 2
30045
30046
30047
30048
30049
30050 namespace boost {
30051
30052 none_t const none = ((none_t)0) ;
30053
30054 }
30055 # 30 "./boost/optional/optional.hpp" 2
30056 # 1 "./boost/utility/compare_pointees.hpp" 1
30057 # 15 "./boost/utility/compare_pointees.hpp"
30058 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/functional" 1 3
30059 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/functional" 3
30060        
30061 # 52 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/functional" 3
30062 # 16 "./boost/utility/compare_pointees.hpp" 2
30063
30064 namespace boost {
30065 # 28 "./boost/utility/compare_pointees.hpp"
30066 template<class OptionalPointee>
30067 inline
30068 bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
30069 {
30070   return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
30071 }
30072
30073 template<class OptionalPointee>
30074 struct equal_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
30075 {
30076   bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
30077     { return equal_pointees(x,y) ; }
30078 } ;
30079 # 51 "./boost/utility/compare_pointees.hpp"
30080 template<class OptionalPointee>
30081 inline
30082 bool less_pointees ( OptionalPointee const& x, OptionalPointee const& y )
30083 {
30084   return !y ? false : ( !x ? true : (*x) < (*y) ) ;
30085 }
30086
30087 template<class OptionalPointee>
30088 struct less_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
30089 {
30090   bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
30091     { return less_pointees(x,y) ; }
30092 } ;
30093
30094 }
30095 # 31 "./boost/optional/optional.hpp" 2
30096
30097 # 1 "./boost/optional/optional_fwd.hpp" 1
30098 # 15 "./boost/optional/optional_fwd.hpp"
30099 namespace boost {
30100
30101 template<class T> class optional ;
30102
30103 }
30104 # 33 "./boost/optional/optional.hpp" 2
30105 # 83 "./boost/optional/optional.hpp"
30106 namespace boost_optional_detail
30107 {
30108   template <class T, class Factory>
30109   void construct(Factory const& factory, void* address)
30110   {
30111     factory.template apply<T>(address);
30112   }
30113 }
30114
30115
30116 namespace boost {
30117
30118 class in_place_factory_base ;
30119 class typed_in_place_factory_base ;
30120
30121 namespace optional_detail {
30122
30123
30124
30125
30126
30127 template <class T>
30128 class aligned_storage
30129 {
30130
30131     union dummy_u
30132     {
30133         char data[ sizeof(T) ];
30134         typename type_with_alignment<
30135           ::boost::alignment_of<T>::value >::type aligner_;
30136     } dummy_ ;
30137
30138   public:
30139
30140     void const* address() const { return &dummy_.data[0]; }
30141     void * address() { return &dummy_.data[0]; }
30142 } ;
30143
30144 template<class T>
30145 struct types_when_isnt_ref
30146 {
30147   typedef T const& reference_const_type ;
30148   typedef T & reference_type ;
30149   typedef T const* pointer_const_type ;
30150   typedef T * pointer_type ;
30151   typedef T const& argument_type ;
30152 } ;
30153 template<class T>
30154 struct types_when_is_ref
30155 {
30156   typedef typename remove_reference<T>::type raw_type ;
30157
30158   typedef raw_type& reference_const_type ;
30159   typedef raw_type& reference_type ;
30160   typedef raw_type* pointer_const_type ;
30161   typedef raw_type* pointer_type ;
30162   typedef raw_type& argument_type ;
30163 } ;
30164
30165 struct optional_tag {} ;
30166
30167 template<class T>
30168 class optional_base : public optional_tag
30169 {
30170   private :
30171
30172     typedef
30173
30174     typename
30175
30176     ::boost::detail::make_reference_content<T>::type internal_type ;
30177
30178     typedef aligned_storage<internal_type> storage_type ;
30179
30180     typedef types_when_isnt_ref<T> types_when_not_ref ;
30181     typedef types_when_is_ref<T> types_when_ref ;
30182
30183     typedef optional_base<T> this_type ;
30184
30185   protected :
30186
30187     typedef T value_type ;
30188
30189     typedef mpl::true_ is_reference_tag ;
30190     typedef mpl::false_ is_not_reference_tag ;
30191
30192     typedef typename is_reference<T>::type is_reference_predicate ;
30193
30194     typedef typename mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
30195
30196     typedef bool (this_type::*unspecified_bool_type)() const;
30197
30198     typedef typename types::reference_type reference_type ;
30199     typedef typename types::reference_const_type reference_const_type ;
30200     typedef typename types::pointer_type pointer_type ;
30201     typedef typename types::pointer_const_type pointer_const_type ;
30202     typedef typename types::argument_type argument_type ;
30203
30204
30205
30206     optional_base()
30207       :
30208       m_initialized(false) {}
30209
30210
30211
30212     optional_base ( none_t )
30213       :
30214       m_initialized(false) {}
30215
30216
30217
30218     optional_base ( argument_type val )
30219       :
30220       m_initialized(false)
30221     {
30222       construct(val);
30223     }
30224
30225
30226
30227     optional_base ( bool cond, argument_type val )
30228       :
30229       m_initialized(false)
30230     {
30231       if ( cond )
30232         construct(val);
30233     }
30234
30235
30236
30237     optional_base ( optional_base const& rhs )
30238       :
30239       m_initialized(false)
30240     {
30241       if ( rhs.is_initialized() )
30242         construct(rhs.get_impl());
30243     }
30244
30245
30246
30247
30248
30249     template<class Expr>
30250     explicit optional_base ( Expr const& expr, Expr const* tag )
30251       :
30252       m_initialized(false)
30253     {
30254       construct(expr,tag);
30255     }
30256
30257
30258
30259
30260     ~optional_base() { destroy() ; }
30261
30262
30263     void assign ( optional_base const& rhs )
30264     {
30265       if (is_initialized())
30266       {
30267         if ( rhs.is_initialized() )
30268              assign_value(rhs.get_impl(), is_reference_predicate() );
30269         else destroy();
30270       }
30271       else
30272       {
30273         if ( rhs.is_initialized() )
30274           construct(rhs.get_impl());
30275       }
30276     }
30277
30278
30279     template<class U>
30280     void assign ( optional<U> const& rhs )
30281     {
30282       if (is_initialized())
30283       {
30284         if ( rhs.is_initialized() )
30285              assign_value(static_cast<value_type>(rhs.get()), is_reference_predicate() );
30286         else destroy();
30287       }
30288       else
30289       {
30290         if ( rhs.is_initialized() )
30291           construct(static_cast<value_type>(rhs.get()));
30292       }
30293     }
30294
30295
30296     void assign ( argument_type val )
30297     {
30298       if (is_initialized())
30299            assign_value(val, is_reference_predicate() );
30300       else construct(val);
30301     }
30302
30303
30304
30305     void assign ( none_t ) { destroy(); }
30306
30307
30308     template<class Expr>
30309     void assign_expr ( Expr const& expr, Expr const* tag )
30310       {
30311         if (is_initialized())
30312              assign_expr_to_initialized(expr,tag);
30313         else construct(expr,tag);
30314       }
30315
30316
30317   public :
30318
30319
30320
30321     void reset() { destroy(); }
30322
30323
30324     void reset ( argument_type val ) { assign(val); }
30325
30326
30327
30328
30329     pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; }
30330     pointer_type get_ptr() { return m_initialized ? get_ptr_impl() : 0 ; }
30331
30332     bool is_initialized() const { return m_initialized ; }
30333
30334   protected :
30335
30336     void construct ( argument_type val )
30337      {
30338        new (m_storage.address()) internal_type(val) ;
30339        m_initialized = true ;
30340      }
30341
30342
30343
30344     template<class Expr>
30345     void construct ( Expr const& factory, in_place_factory_base const* )
30346      {
30347        typedef ::boost::static_assert_test< sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( ::boost::mpl::not_<is_reference_predicate>::value ) >)> boost_static_assert_typedef_324 ;
30348        boost_optional_detail::construct<value_type>(factory, m_storage.address());
30349        m_initialized = true ;
30350      }
30351
30352
30353     template<class Expr>
30354     void construct ( Expr const& factory, typed_in_place_factory_base const* )
30355      {
30356        typedef ::boost::static_assert_test< sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( ::boost::mpl::not_<is_reference_predicate>::value ) >)> boost_static_assert_typedef_333 ;
30357        factory.apply(m_storage.address()) ;
30358        m_initialized = true ;
30359      }
30360
30361     template<class Expr>
30362     void assign_expr_to_initialized ( Expr const& factory, in_place_factory_base const* tag )
30363      {
30364        destroy();
30365        construct(factory,tag);
30366      }
30367
30368
30369     template<class Expr>
30370     void assign_expr_to_initialized ( Expr const& factory, typed_in_place_factory_base const* tag )
30371      {
30372        destroy();
30373        construct(factory,tag);
30374      }
30375
30376
30377
30378
30379
30380
30381     template<class Expr>
30382     void construct ( Expr const& expr, void const* )
30383      {
30384        new (m_storage.address()) internal_type(expr) ;
30385        m_initialized = true ;
30386      }
30387
30388
30389
30390
30391
30392     template<class Expr>
30393     void assign_expr_to_initialized ( Expr const& expr, void const* )
30394      {
30395        assign_value(expr, is_reference_predicate());
30396      }
30397 # 402 "./boost/optional/optional.hpp"
30398     void assign_value ( argument_type val, is_not_reference_tag ) { get_impl() = val; }
30399     void assign_value ( argument_type val, is_reference_tag ) { construct(val); }
30400
30401     void destroy()
30402     {
30403       if ( m_initialized )
30404         destroy_impl(is_reference_predicate()) ;
30405     }
30406
30407     unspecified_bool_type safe_bool() const { return m_initialized ? &this_type::is_initialized : 0 ; }
30408
30409     reference_const_type get_impl() const { return dereference(get_object(), is_reference_predicate() ) ; }
30410     reference_type get_impl() { return dereference(get_object(), is_reference_predicate() ) ; }
30411
30412     pointer_const_type get_ptr_impl() const { return cast_ptr(get_object(), is_reference_predicate() ) ; }
30413     pointer_type get_ptr_impl() { return cast_ptr(get_object(), is_reference_predicate() ) ; }
30414
30415   private :
30416
30417
30418     internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }
30419     internal_type * get_object() { return static_cast<internal_type *> (m_storage.address()); }
30420
30421
30422     reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; }
30423     reference_type dereference( internal_type* p, is_not_reference_tag ) { return *p ; }
30424     reference_const_type dereference( internal_type const* p, is_reference_tag ) const { return p->get() ; }
30425     reference_type dereference( internal_type* p, is_reference_tag ) { return p->get() ; }
30426
30427
30428
30429
30430     void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
30431
30432
30433     void destroy_impl ( is_reference_tag ) { m_initialized = false ; }
30434
30435
30436
30437
30438     pointer_const_type cast_ptr( internal_type const* p, is_not_reference_tag ) const { return p ; }
30439     pointer_type cast_ptr( internal_type * p, is_not_reference_tag ) { return p ; }
30440     pointer_const_type cast_ptr( internal_type const* p, is_reference_tag ) const { return &p->get() ; }
30441     pointer_type cast_ptr( internal_type * p, is_reference_tag ) { return &p->get() ; }
30442
30443     bool m_initialized ;
30444     storage_type m_storage ;
30445 } ;
30446
30447 }
30448
30449 template<class T>
30450 class optional : public optional_detail::optional_base<T>
30451 {
30452     typedef optional_detail::optional_base<T> base ;
30453
30454     typedef typename base::unspecified_bool_type unspecified_bool_type ;
30455
30456   public :
30457
30458     typedef optional<T> this_type ;
30459
30460     typedef typename base::value_type value_type ;
30461     typedef typename base::reference_type reference_type ;
30462     typedef typename base::reference_const_type reference_const_type ;
30463     typedef typename base::pointer_type pointer_type ;
30464     typedef typename base::pointer_const_type pointer_const_type ;
30465     typedef typename base::argument_type argument_type ;
30466
30467
30468
30469     optional() : base() {}
30470
30471
30472
30473     optional( none_t none_ ) : base(none_) {}
30474
30475
30476
30477     optional ( argument_type val ) : base(val) {}
30478
30479
30480
30481     optional ( bool cond, argument_type val ) : base(cond,val) {}
30482
30483
30484
30485
30486
30487
30488
30489     template<class U>
30490     explicit optional ( optional<U> const& rhs )
30491       :
30492       base()
30493     {
30494       if ( rhs.is_initialized() )
30495         this->construct(rhs.get());
30496     }
30497 # 513 "./boost/optional/optional.hpp"
30498     template<class Expr>
30499     explicit optional ( Expr const& expr ) : base(expr,&expr) {}
30500
30501
30502
30503
30504     optional ( optional const& rhs ) : base(rhs) {}
30505
30506
30507     ~optional() {}
30508
30509
30510
30511
30512     template<class Expr>
30513     optional& operator= ( Expr expr )
30514       {
30515         this->assign_expr(expr,&expr);
30516         return *this ;
30517       }
30518
30519
30520
30521
30522
30523
30524
30525     template<class U>
30526     optional& operator= ( optional<U> const& rhs )
30527       {
30528         this->assign(rhs);
30529         return *this ;
30530       }
30531
30532
30533
30534
30535
30536     optional& operator= ( optional const& rhs )
30537       {
30538         this->assign( rhs ) ;
30539         return *this ;
30540       }
30541
30542
30543
30544     optional& operator= ( argument_type val )
30545       {
30546         this->assign( val ) ;
30547         return *this ;
30548       }
30549
30550
30551
30552
30553     optional& operator= ( none_t none_ )
30554       {
30555         this->assign( none_ ) ;
30556         return *this ;
30557       }
30558
30559
30560
30561
30562     reference_const_type get() const { (static_cast<void> ((this->is_initialized()) ? 0 : (__assert ("this->is_initialized()", "./boost/optional/optional.hpp", 577, __PRETTY_FUNCTION__), 0))) ; return this->get_impl(); }
30563     reference_type get() { (static_cast<void> ((this->is_initialized()) ? 0 : (__assert ("this->is_initialized()", "./boost/optional/optional.hpp", 578, __PRETTY_FUNCTION__), 0))) ; return this->get_impl(); }
30564
30565
30566     reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }
30567     reference_type get_value_or ( reference_type v ) { return this->is_initialized() ? get() : v ; }
30568
30569
30570
30571
30572     pointer_const_type operator->() const { (static_cast<void> ((this->is_initialized()) ? 0 : (__assert ("this->is_initialized()", "./boost/optional/optional.hpp", 587, __PRETTY_FUNCTION__), 0))) ; return this->get_ptr_impl() ; }
30573     pointer_type operator->() { (static_cast<void> ((this->is_initialized()) ? 0 : (__assert ("this->is_initialized()", "./boost/optional/optional.hpp", 588, __PRETTY_FUNCTION__), 0))) ; return this->get_ptr_impl() ; }
30574
30575
30576
30577
30578     reference_const_type operator *() const { return this->get() ; }
30579     reference_type operator *() { return this->get() ; }
30580
30581
30582
30583     operator unspecified_bool_type() const { return this->safe_bool() ; }
30584
30585
30586
30587        bool operator!() const { return !this->is_initialized() ; }
30588 } ;
30589
30590
30591 template<class T>
30592 inline
30593 optional<T> make_optional ( T const& v )
30594 {
30595   return optional<T>(v);
30596 }
30597
30598
30599 template<class T>
30600 inline
30601 optional<T> make_optional ( bool cond, T const& v )
30602 {
30603   return optional<T>(cond,v);
30604 }
30605
30606
30607
30608 template<class T>
30609 inline
30610 typename optional<T>::reference_const_type
30611 get ( optional<T> const& opt )
30612 {
30613   return opt.get() ;
30614 }
30615
30616 template<class T>
30617 inline
30618 typename optional<T>::reference_type
30619 get ( optional<T>& opt )
30620 {
30621   return opt.get() ;
30622 }
30623
30624
30625
30626 template<class T>
30627 inline
30628 typename optional<T>::pointer_const_type
30629 get ( optional<T> const* opt )
30630 {
30631   return opt->get_ptr() ;
30632 }
30633
30634 template<class T>
30635 inline
30636 typename optional<T>::pointer_type
30637 get ( optional<T>* opt )
30638 {
30639   return opt->get_ptr() ;
30640 }
30641
30642
30643
30644 template<class T>
30645 inline
30646 typename optional<T>::reference_const_type
30647 get_optional_value_or ( optional<T> const& opt, typename optional<T>::reference_const_type v )
30648 {
30649   return opt.get_value_or(v) ;
30650 }
30651
30652 template<class T>
30653 inline
30654 typename optional<T>::reference_type
30655 get_optional_value_or ( optional<T>& opt, typename optional<T>::reference_type v )
30656 {
30657   return opt.get_value_or(v) ;
30658 }
30659
30660
30661
30662 template<class T>
30663 inline
30664 typename optional<T>::pointer_const_type
30665 get_pointer ( optional<T> const& opt )
30666 {
30667   return opt.get_ptr() ;
30668 }
30669
30670 template<class T>
30671 inline
30672 typename optional<T>::pointer_type
30673 get_pointer ( optional<T>& opt )
30674 {
30675   return opt.get_ptr() ;
30676 }
30677 # 701 "./boost/optional/optional.hpp"
30678 template<class T>
30679 inline
30680 bool operator == ( optional<T> const& x, optional<T> const& y )
30681 { return equal_pointees(x,y); }
30682
30683 template<class T>
30684 inline
30685 bool operator < ( optional<T> const& x, optional<T> const& y )
30686 { return less_pointees(x,y); }
30687
30688 template<class T>
30689 inline
30690 bool operator != ( optional<T> const& x, optional<T> const& y )
30691 { return !( x == y ) ; }
30692
30693 template<class T>
30694 inline
30695 bool operator > ( optional<T> const& x, optional<T> const& y )
30696 { return y < x ; }
30697
30698 template<class T>
30699 inline
30700 bool operator <= ( optional<T> const& x, optional<T> const& y )
30701 { return !( y < x ) ; }
30702
30703 template<class T>
30704 inline
30705 bool operator >= ( optional<T> const& x, optional<T> const& y )
30706 { return !( x < y ) ; }
30707
30708
30709
30710
30711
30712 template<class T>
30713 inline
30714 bool operator == ( optional<T> const& x, T const& y )
30715 { return equal_pointees(x, optional<T>(y)); }
30716
30717 template<class T>
30718 inline
30719 bool operator < ( optional<T> const& x, T const& y )
30720 { return less_pointees(x, optional<T>(y)); }
30721
30722 template<class T>
30723 inline
30724 bool operator != ( optional<T> const& x, T const& y )
30725 { return !( x == y ) ; }
30726
30727 template<class T>
30728 inline
30729 bool operator > ( optional<T> const& x, T const& y )
30730 { return y < x ; }
30731
30732 template<class T>
30733 inline
30734 bool operator <= ( optional<T> const& x, T const& y )
30735 { return !( y < x ) ; }
30736
30737 template<class T>
30738 inline
30739 bool operator >= ( optional<T> const& x, T const& y )
30740 { return !( x < y ) ; }
30741
30742
30743
30744
30745
30746 template<class T>
30747 inline
30748 bool operator == ( T const& x, optional<T> const& y )
30749 { return equal_pointees( optional<T>(x), y ); }
30750
30751 template<class T>
30752 inline
30753 bool operator < ( T const& x, optional<T> const& y )
30754 { return less_pointees( optional<T>(x), y ); }
30755
30756 template<class T>
30757 inline
30758 bool operator != ( T const& x, optional<T> const& y )
30759 { return !( x == y ) ; }
30760
30761 template<class T>
30762 inline
30763 bool operator > ( T const& x, optional<T> const& y )
30764 { return y < x ; }
30765
30766 template<class T>
30767 inline
30768 bool operator <= ( T const& x, optional<T> const& y )
30769 { return !( y < x ) ; }
30770
30771 template<class T>
30772 inline
30773 bool operator >= ( T const& x, optional<T> const& y )
30774 { return !( x < y ) ; }
30775
30776
30777
30778
30779
30780
30781 template<class T>
30782 inline
30783 bool operator == ( optional<T> const& x, none_t )
30784 { return equal_pointees(x, optional<T>() ); }
30785
30786 template<class T>
30787 inline
30788 bool operator < ( optional<T> const& x, none_t )
30789 { return less_pointees(x,optional<T>() ); }
30790
30791 template<class T>
30792 inline
30793 bool operator != ( optional<T> const& x, none_t y )
30794 { return !( x == y ) ; }
30795
30796 template<class T>
30797 inline
30798 bool operator > ( optional<T> const& x, none_t y )
30799 { return y < x ; }
30800
30801 template<class T>
30802 inline
30803 bool operator <= ( optional<T> const& x, none_t y )
30804 { return !( y < x ) ; }
30805
30806 template<class T>
30807 inline
30808 bool operator >= ( optional<T> const& x, none_t y )
30809 { return !( x < y ) ; }
30810
30811
30812
30813
30814
30815 template<class T>
30816 inline
30817 bool operator == ( none_t x, optional<T> const& y )
30818 { return equal_pointees(optional<T>() ,y); }
30819
30820 template<class T>
30821 inline
30822 bool operator < ( none_t x, optional<T> const& y )
30823 { return less_pointees(optional<T>() ,y); }
30824
30825 template<class T>
30826 inline
30827 bool operator != ( none_t x, optional<T> const& y )
30828 { return !( x == y ) ; }
30829
30830 template<class T>
30831 inline
30832 bool operator > ( none_t x, optional<T> const& y )
30833 { return y < x ; }
30834
30835 template<class T>
30836 inline
30837 bool operator <= ( none_t x, optional<T> const& y )
30838 { return !( y < x ) ; }
30839
30840 template<class T>
30841 inline
30842 bool operator >= ( none_t x, optional<T> const& y )
30843 { return !( x < y ) ; }
30844
30845
30846
30847
30848
30849 namespace optional_detail {
30850 # 886 "./boost/optional/optional.hpp"
30851 template<class T>
30852 inline
30853 void optional_swap ( optional<T>& x, optional<T>& y )
30854 {
30855   if ( !x && !!y )
30856   {
30857     x.reset(*y);
30858     y.reset();
30859   }
30860   else if ( !!x && !y )
30861   {
30862     y.reset(*x);
30863     x.reset();
30864   }
30865   else if ( !!x && !!y )
30866   {
30867
30868
30869
30870     using std::swap ;
30871
30872     swap(*x,*y);
30873   }
30874 }
30875
30876 }
30877
30878 template<class T> inline void swap ( optional<T>& x, optional<T>& y )
30879 {
30880   optional_detail::optional_swap(x,y);
30881 }
30882
30883
30884 }
30885 # 16 "./boost/optional.hpp" 2
30886 # 21 "./boost/format/internals.hpp" 2
30887 # 1 "./boost/limits.hpp" 1
30888 # 22 "./boost/format/internals.hpp" 2
30889
30890 # 1 "./boost/format/alt_sstream.hpp" 1
30891 # 20 "./boost/format/alt_sstream.hpp"
30892 # 1 "./boost/utility/base_from_member.hpp" 1
30893 # 14 "./boost/utility/base_from_member.hpp"
30894 # 1 "./boost/preprocessor/repetition/enum_binary_params.hpp" 1
30895 # 15 "./boost/utility/base_from_member.hpp" 2
30896 # 1 "./boost/preprocessor/repetition/enum_params.hpp" 1
30897 # 16 "./boost/utility/base_from_member.hpp" 2
30898 # 1 "./boost/preprocessor/repetition/repeat_from_to.hpp" 1
30899 # 23 "./boost/preprocessor/repetition/repeat_from_to.hpp"
30900 # 1 "./boost/preprocessor/detail/auto_rec.hpp" 1
30901 # 24 "./boost/preprocessor/repetition/repeat_from_to.hpp" 2
30902 # 17 "./boost/utility/base_from_member.hpp" 2
30903 # 53 "./boost/utility/base_from_member.hpp"
30904 namespace boost
30905 {
30906 # 65 "./boost/utility/base_from_member.hpp"
30907 template < typename MemberType, int UniqueID = 0 >
30908 class base_from_member
30909 {
30910 protected:
30911     MemberType member;
30912
30913     base_from_member()
30914         : member()
30915         {}
30916
30917     template < typename T0 > explicit base_from_member( T0 x0 ) : member( x0 ) {} template < typename T0 , typename T1 > explicit base_from_member( T0 x0 , T1 x1 ) : member( x0 , x1 ) {} template < typename T0 , typename T1 , typename T2 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 ) : member( x0 , x1 , x2 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 ) : member( x0 , x1 , x2 , x3 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 ) : member( x0 , x1 , x2 , x3 , x4 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 ) : member( x0 , x1 , x2 , x3 , x4 , x5 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 , T7 x7 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 , T7 x7 , T8 x8 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 ) {} template < typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 > explicit base_from_member( T0 x0 , T1 x1 , T2 x2 , T3 x3 , T4 x4 , T5 x5 , T6 x6 , T7 x7 , T8 x8 , T9 x9 ) : member( x0 , x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 ) {}
30918
30919
30920 };
30921
30922 }
30923 # 21 "./boost/format/alt_sstream.hpp" 2
30924 # 1 "./boost/shared_ptr.hpp" 1
30925 # 25 "./boost/shared_ptr.hpp"
30926 # 1 "./boost/assert.hpp" 1
30927 # 36 "./boost/assert.hpp"
30928 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
30929 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
30930 extern "C" {
30931
30932
30933 extern void __assert (const char *, const char *, int, const char *);
30934
30935 }
30936 # 37 "./boost/assert.hpp" 2
30937 # 26 "./boost/shared_ptr.hpp" 2
30938 # 1 "./boost/checked_delete.hpp" 1
30939 # 24 "./boost/checked_delete.hpp"
30940 namespace boost
30941 {
30942
30943
30944
30945 template<class T> inline void checked_delete(T * x)
30946 {
30947
30948     typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
30949     (void) sizeof(type_must_be_complete);
30950     delete x;
30951 }
30952
30953 template<class T> inline void checked_array_delete(T * x)
30954 {
30955     typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
30956     (void) sizeof(type_must_be_complete);
30957     delete [] x;
30958 }
30959
30960 template<class T> struct checked_deleter
30961 {
30962     typedef void result_type;
30963     typedef T * argument_type;
30964
30965     void operator()(T * x) const
30966     {
30967
30968         boost::checked_delete(x);
30969     }
30970 };
30971
30972 template<class T> struct checked_array_deleter
30973 {
30974     typedef void result_type;
30975     typedef T * argument_type;
30976
30977     void operator()(T * x) const
30978     {
30979         boost::checked_array_delete(x);
30980     }
30981 };
30982
30983 }
30984 # 27 "./boost/shared_ptr.hpp" 2
30985 # 1 "./boost/throw_exception.hpp" 1
30986 # 28 "./boost/throw_exception.hpp"
30987 namespace boost
30988 {
30989
30990
30991
30992
30993
30994
30995
30996 template<class E> inline void throw_exception(E const & e)
30997 {
30998     throw e;
30999 }
31000
31001
31002
31003 }
31004 # 28 "./boost/shared_ptr.hpp" 2
31005 # 1 "./boost/detail/shared_count.hpp" 1
31006 # 28 "./boost/detail/shared_count.hpp"
31007 # 1 "./boost/detail/bad_weak_ptr.hpp" 1
31008 # 26 "./boost/detail/bad_weak_ptr.hpp"
31009 namespace boost
31010 {
31011 # 39 "./boost/detail/bad_weak_ptr.hpp"
31012 class bad_weak_ptr: public std::exception
31013 {
31014 public:
31015
31016     virtual char const * what() const throw()
31017     {
31018         return "tr1::bad_weak_ptr";
31019     }
31020 };
31021
31022
31023
31024
31025
31026 }
31027 # 29 "./boost/detail/shared_count.hpp" 2
31028 # 1 "./boost/detail/sp_counted_base.hpp" 1
31029 # 56 "./boost/detail/sp_counted_base.hpp"
31030 # 1 "./boost/detail/sp_counted_base_sync.hpp" 1
31031 # 18 "./boost/detail/sp_counted_base_sync.hpp"
31032 # 1 "./boost/detail/sp_typeinfo.hpp" 1
31033 # 59 "./boost/detail/sp_typeinfo.hpp"
31034 namespace boost
31035 {
31036
31037 namespace detail
31038 {
31039
31040
31041
31042
31043
31044
31045
31046 typedef std::type_info sp_typeinfo;
31047
31048
31049
31050 }
31051
31052 }
31053 # 19 "./boost/detail/sp_counted_base_sync.hpp" 2
31054 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/limits.h" 1 3 4
31055 # 20 "./boost/detail/sp_counted_base_sync.hpp" 2
31056
31057 namespace boost
31058 {
31059
31060 namespace detail
31061 {
31062
31063
31064
31065 typedef int sp_int32_t;
31066
31067
31068
31069
31070
31071
31072
31073 inline void atomic_increment( sp_int32_t * pw )
31074 {
31075     __sync_fetch_and_add( pw, 1 );
31076 }
31077
31078 inline sp_int32_t atomic_decrement( sp_int32_t * pw )
31079 {
31080     return __sync_fetch_and_add( pw, -1 );
31081 }
31082
31083 inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )
31084 {
31085
31086
31087
31088
31089     sp_int32_t r = *pw;
31090
31091     for( ;; )
31092     {
31093         if( r == 0 )
31094         {
31095             return r;
31096         }
31097
31098         sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );
31099
31100         if( r2 == r )
31101         {
31102             return r;
31103         }
31104         else
31105         {
31106             r = r2;
31107         }
31108     }
31109 }
31110
31111 class sp_counted_base
31112 {
31113 private:
31114
31115     sp_counted_base( sp_counted_base const & );
31116     sp_counted_base & operator= ( sp_counted_base const & );
31117
31118     sp_int32_t use_count_;
31119     sp_int32_t weak_count_;
31120
31121 public:
31122
31123     sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
31124     {
31125     }
31126
31127     virtual ~sp_counted_base()
31128     {
31129     }
31130
31131
31132
31133
31134     virtual void dispose() = 0;
31135
31136
31137
31138     virtual void destroy()
31139     {
31140         delete this;
31141     }
31142
31143     virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
31144
31145     void add_ref_copy()
31146     {
31147         atomic_increment( &use_count_ );
31148     }
31149
31150     bool add_ref_lock()
31151     {
31152         return atomic_conditional_increment( &use_count_ ) != 0;
31153     }
31154
31155     void release()
31156     {
31157         if( atomic_decrement( &use_count_ ) == 1 )
31158         {
31159             dispose();
31160             weak_release();
31161         }
31162     }
31163
31164     void weak_add_ref()
31165     {
31166         atomic_increment( &weak_count_ );
31167     }
31168
31169     void weak_release()
31170     {
31171         if( atomic_decrement( &weak_count_ ) == 1 )
31172         {
31173             destroy();
31174         }
31175     }
31176
31177     long use_count() const
31178     {
31179         return const_cast< sp_int32_t const volatile & >( use_count_ );
31180     }
31181 };
31182
31183 }
31184
31185 }
31186 # 57 "./boost/detail/sp_counted_base.hpp" 2
31187 # 30 "./boost/detail/shared_count.hpp" 2
31188 # 1 "./boost/detail/sp_counted_impl.hpp" 1
31189 # 40 "./boost/detail/sp_counted_impl.hpp"
31190 namespace boost
31191 {
31192 # 50 "./boost/detail/sp_counted_impl.hpp"
31193 namespace detail
31194 {
31195
31196 template<class X> class sp_counted_impl_p: public sp_counted_base
31197 {
31198 private:
31199
31200     X * px_;
31201
31202     sp_counted_impl_p( sp_counted_impl_p const & );
31203     sp_counted_impl_p & operator= ( sp_counted_impl_p const & );
31204
31205     typedef sp_counted_impl_p<X> this_type;
31206
31207 public:
31208
31209     explicit sp_counted_impl_p( X * px ): px_( px )
31210     {
31211
31212
31213
31214     }
31215
31216     virtual void dispose()
31217     {
31218
31219
31220
31221         boost::checked_delete( px_ );
31222     }
31223
31224     virtual void * get_deleter( detail::sp_typeinfo const & )
31225     {
31226         return 0;
31227     }
31228 # 113 "./boost/detail/sp_counted_impl.hpp"
31229 };
31230 # 122 "./boost/detail/sp_counted_impl.hpp"
31231 template<class P, class D> class sp_counted_impl_pd: public sp_counted_base
31232 {
31233 private:
31234
31235     P ptr;
31236     D del;
31237
31238     sp_counted_impl_pd( sp_counted_impl_pd const & );
31239     sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );
31240
31241     typedef sp_counted_impl_pd<P, D> this_type;
31242
31243 public:
31244
31245
31246
31247     sp_counted_impl_pd( P p, D d ): ptr(p), del(d)
31248     {
31249     }
31250
31251     virtual void dispose()
31252     {
31253         del( ptr );
31254     }
31255
31256     virtual void * get_deleter( detail::sp_typeinfo const & ti )
31257     {
31258         return ti == typeid(D)? &reinterpret_cast<char&>( del ): 0;
31259     }
31260 # 179 "./boost/detail/sp_counted_impl.hpp"
31261 };
31262
31263 template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base
31264 {
31265 private:
31266
31267     P p_;
31268     D d_;
31269     A a_;
31270
31271     sp_counted_impl_pda( sp_counted_impl_pda const & );
31272     sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );
31273
31274     typedef sp_counted_impl_pda<P, D, A> this_type;
31275
31276 public:
31277
31278
31279
31280     sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a )
31281     {
31282     }
31283
31284     virtual void dispose()
31285     {
31286         d_( p_ );
31287     }
31288
31289     virtual void destroy()
31290     {
31291         typedef typename A::template rebind< this_type >::other A2;
31292
31293         A2 a2( a_ );
31294
31295         this->~this_type();
31296         a2.deallocate( this, 1 );
31297     }
31298
31299     virtual void * get_deleter( detail::sp_typeinfo const & ti )
31300     {
31301         return ti == typeid(D)? &reinterpret_cast<char&>( d_ ): 0;
31302     }
31303 };
31304
31305
31306
31307
31308
31309 }
31310
31311 }
31312 # 31 "./boost/detail/shared_count.hpp" 2
31313
31314
31315
31316
31317
31318 namespace boost
31319 {
31320
31321 namespace detail
31322 {
31323 # 49 "./boost/detail/shared_count.hpp"
31324 class weak_count;
31325
31326 class shared_count
31327 {
31328 private:
31329
31330     sp_counted_base * pi_;
31331
31332
31333
31334
31335
31336     friend class weak_count;
31337
31338 public:
31339
31340     shared_count(): pi_(0)
31341
31342
31343
31344     {
31345     }
31346
31347     template<class Y> explicit shared_count( Y * p ): pi_( 0 )
31348
31349
31350
31351     {
31352
31353
31354         try
31355         {
31356             pi_ = new sp_counted_impl_p<Y>( p );
31357         }
31358         catch(...)
31359         {
31360             boost::checked_delete( p );
31361             throw;
31362         }
31363 # 100 "./boost/detail/shared_count.hpp"
31364     }
31365
31366     template<class P, class D> shared_count(P p, D d): pi_(0)
31367
31368
31369
31370     {
31371
31372
31373         try
31374         {
31375             pi_ = new sp_counted_impl_pd<P, D>(p, d);
31376         }
31377         catch(...)
31378         {
31379             d(p);
31380             throw;
31381         }
31382 # 130 "./boost/detail/shared_count.hpp"
31383     }
31384
31385     template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )
31386
31387
31388
31389     {
31390         typedef sp_counted_impl_pda<P, D, A> impl_type;
31391         typedef typename A::template rebind< impl_type >::other A2;
31392
31393         A2 a2( a );
31394
31395
31396
31397         try
31398         {
31399             pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
31400             new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
31401         }
31402         catch(...)
31403         {
31404             d( p );
31405
31406             if( pi_ != 0 )
31407             {
31408                 a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
31409             }
31410
31411             throw;
31412         }
31413 # 176 "./boost/detail/shared_count.hpp"
31414     }
31415
31416
31417
31418
31419
31420     template<class Y>
31421     explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
31422
31423
31424
31425     {
31426 # 197 "./boost/detail/shared_count.hpp"
31427         r.release();
31428     }
31429
31430
31431
31432     ~shared_count()
31433     {
31434         if( pi_ != 0 ) pi_->release();
31435
31436
31437
31438     }
31439
31440     shared_count(shared_count const & r): pi_(r.pi_)
31441
31442
31443
31444     {
31445         if( pi_ != 0 ) pi_->add_ref_copy();
31446     }
31447
31448     explicit shared_count(weak_count const & r);
31449
31450     shared_count & operator= (shared_count const & r)
31451     {
31452         sp_counted_base * tmp = r.pi_;
31453
31454         if( tmp != pi_ )
31455         {
31456             if( tmp != 0 ) tmp->add_ref_copy();
31457             if( pi_ != 0 ) pi_->release();
31458             pi_ = tmp;
31459         }
31460
31461         return *this;
31462     }
31463
31464     void swap(shared_count & r)
31465     {
31466         sp_counted_base * tmp = r.pi_;
31467         r.pi_ = pi_;
31468         pi_ = tmp;
31469     }
31470
31471     long use_count() const
31472     {
31473         return pi_ != 0? pi_->use_count(): 0;
31474     }
31475
31476     bool unique() const
31477     {
31478         return use_count() == 1;
31479     }
31480
31481     friend inline bool operator==(shared_count const & a, shared_count const & b)
31482     {
31483         return a.pi_ == b.pi_;
31484     }
31485
31486     friend inline bool operator<(shared_count const & a, shared_count const & b)
31487     {
31488         return std::less<sp_counted_base *>()( a.pi_, b.pi_ );
31489     }
31490
31491     void * get_deleter( sp_typeinfo const & ti ) const
31492     {
31493         return pi_? pi_->get_deleter( ti ): 0;
31494     }
31495 };
31496
31497
31498 class weak_count
31499 {
31500 private:
31501
31502     sp_counted_base * pi_;
31503
31504
31505
31506
31507
31508     friend class shared_count;
31509
31510 public:
31511
31512     weak_count(): pi_(0)
31513
31514
31515
31516     {
31517     }
31518
31519     weak_count(shared_count const & r): pi_(r.pi_)
31520
31521
31522
31523     {
31524         if(pi_ != 0) pi_->weak_add_ref();
31525     }
31526
31527     weak_count(weak_count const & r): pi_(r.pi_)
31528
31529
31530
31531     {
31532         if(pi_ != 0) pi_->weak_add_ref();
31533     }
31534
31535     ~weak_count()
31536     {
31537         if(pi_ != 0) pi_->weak_release();
31538
31539
31540
31541     }
31542
31543     weak_count & operator= (shared_count const & r)
31544     {
31545         sp_counted_base * tmp = r.pi_;
31546         if(tmp != 0) tmp->weak_add_ref();
31547         if(pi_ != 0) pi_->weak_release();
31548         pi_ = tmp;
31549
31550         return *this;
31551     }
31552
31553     weak_count & operator= (weak_count const & r)
31554     {
31555         sp_counted_base * tmp = r.pi_;
31556         if(tmp != 0) tmp->weak_add_ref();
31557         if(pi_ != 0) pi_->weak_release();
31558         pi_ = tmp;
31559
31560         return *this;
31561     }
31562
31563     void swap(weak_count & r)
31564     {
31565         sp_counted_base * tmp = r.pi_;
31566         r.pi_ = pi_;
31567         pi_ = tmp;
31568     }
31569
31570     long use_count() const
31571     {
31572         return pi_ != 0? pi_->use_count(): 0;
31573     }
31574
31575     friend inline bool operator==(weak_count const & a, weak_count const & b)
31576     {
31577         return a.pi_ == b.pi_;
31578     }
31579
31580     friend inline bool operator<(weak_count const & a, weak_count const & b)
31581     {
31582         return std::less<sp_counted_base *>()(a.pi_, b.pi_);
31583     }
31584 };
31585
31586 inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )
31587
31588
31589
31590 {
31591     if( pi_ == 0 || !pi_->add_ref_lock() )
31592     {
31593         boost::throw_exception( boost::bad_weak_ptr() );
31594     }
31595 }
31596
31597 }
31598
31599 }
31600 # 29 "./boost/shared_ptr.hpp" 2
31601 # 41 "./boost/shared_ptr.hpp"
31602 namespace boost
31603 {
31604
31605 template<class T> class weak_ptr;
31606 template<class T> class enable_shared_from_this;
31607
31608 namespace detail
31609 {
31610
31611 struct static_cast_tag {};
31612 struct const_cast_tag {};
31613 struct dynamic_cast_tag {};
31614 struct polymorphic_cast_tag {};
31615
31616 template<class T> struct shared_ptr_traits
31617 {
31618     typedef T & reference;
31619 };
31620
31621 template<> struct shared_ptr_traits<void>
31622 {
31623     typedef void reference;
31624 };
31625
31626
31627
31628 template<> struct shared_ptr_traits<void const>
31629 {
31630     typedef void reference;
31631 };
31632
31633 template<> struct shared_ptr_traits<void volatile>
31634 {
31635     typedef void reference;
31636 };
31637
31638 template<> struct shared_ptr_traits<void const volatile>
31639 {
31640     typedef void reference;
31641 };
31642
31643
31644
31645
31646
31647 template<class T, class Y> void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this<T> const * pe, Y const * px )
31648 {
31649     if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast<Y*>(px), pn);
31650 }
31651 # 111 "./boost/shared_ptr.hpp"
31652 inline void sp_enable_shared_from_this( shared_count const & , ... )
31653 {
31654 }
31655 # 125 "./boost/shared_ptr.hpp"
31656 template< class T, class R > struct sp_enable_if_auto_ptr
31657 {
31658 };
31659
31660 template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
31661 {
31662     typedef R type;
31663 };
31664
31665
31666
31667 }
31668 # 147 "./boost/shared_ptr.hpp"
31669 template<class T> class shared_ptr
31670 {
31671 private:
31672
31673
31674     typedef shared_ptr<T> this_type;
31675
31676 public:
31677
31678     typedef T element_type;
31679     typedef T value_type;
31680     typedef T * pointer;
31681     typedef typename boost::detail::shared_ptr_traits<T>::reference reference;
31682
31683     shared_ptr(): px(0), pn()
31684     {
31685     }
31686
31687     template<class Y>
31688     explicit shared_ptr( Y * p ): px( p ), pn( p )
31689     {
31690         boost::detail::sp_enable_shared_from_this( pn, p, p );
31691     }
31692
31693
31694
31695
31696
31697
31698
31699     template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)
31700     {
31701         boost::detail::sp_enable_shared_from_this( pn, p, p );
31702     }
31703
31704
31705
31706     template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )
31707     {
31708         boost::detail::sp_enable_shared_from_this( pn, p, p );
31709     }
31710
31711
31712
31713
31714
31715
31716     shared_ptr & operator=(shared_ptr const & r)
31717     {
31718         px = r.px;
31719         pn = r.pn;
31720         return *this;
31721     }
31722
31723
31724
31725     template<class Y>
31726     explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn)
31727     {
31728
31729         px = r.px;
31730     }
31731
31732     template<class Y>
31733     shared_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn)
31734     {
31735     }
31736
31737
31738     template< class Y >
31739     shared_ptr( shared_ptr<Y> const & r, T * p ): px( p ), pn( r.pn )
31740     {
31741     }
31742
31743     template<class Y>
31744     shared_ptr(shared_ptr<Y> const & r, boost::detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
31745     {
31746     }
31747
31748     template<class Y>
31749     shared_ptr(shared_ptr<Y> const & r, boost::detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)
31750     {
31751     }
31752
31753     template<class Y>
31754     shared_ptr(shared_ptr<Y> const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
31755     {
31756         if(px == 0)
31757         {
31758             pn = boost::detail::shared_count();
31759         }
31760     }
31761
31762     template<class Y>
31763     shared_ptr(shared_ptr<Y> const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
31764     {
31765         if(px == 0)
31766         {
31767             boost::throw_exception(std::bad_cast());
31768         }
31769     }
31770
31771
31772
31773     template<class Y>
31774     explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()
31775     {
31776         Y * tmp = r.get();
31777         pn = boost::detail::shared_count(r);
31778         boost::detail::sp_enable_shared_from_this( pn, tmp, tmp );
31779     }
31780
31781
31782
31783     template<class Ap>
31784     shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()
31785     {
31786         typename Ap::element_type * tmp = r.get();
31787         pn = boost::detail::shared_count( r );
31788         boost::detail::sp_enable_shared_from_this( pn, tmp, tmp );
31789     }
31790 # 276 "./boost/shared_ptr.hpp"
31791     template<class Y>
31792     shared_ptr & operator=(shared_ptr<Y> const & r)
31793     {
31794         px = r.px;
31795         pn = r.pn;
31796         return *this;
31797     }
31798
31799
31800
31801
31802
31803     template<class Y>
31804     shared_ptr & operator=( std::auto_ptr<Y> & r )
31805     {
31806         this_type(r).swap(*this);
31807         return *this;
31808     }
31809
31810
31811
31812     template<class Ap>
31813     typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )
31814     {
31815         this_type( r ).swap( *this );
31816         return *this;
31817     }
31818 # 341 "./boost/shared_ptr.hpp"
31819     void reset()
31820     {
31821         this_type().swap(*this);
31822     }
31823
31824     template<class Y> void reset(Y * p)
31825     {
31826         (static_cast<void> ((p == 0 || p != px) ? 0 : (__assert ("p == 0 || p != px", "./boost/shared_ptr.hpp", 348, __PRETTY_FUNCTION__), 0)));
31827         this_type(p).swap(*this);
31828     }
31829
31830     template<class Y, class D> void reset( Y * p, D d )
31831     {
31832         this_type( p, d ).swap( *this );
31833     }
31834
31835     template<class Y, class D, class A> void reset( Y * p, D d, A a )
31836     {
31837         this_type( p, d, a ).swap( *this );
31838     }
31839
31840     template<class Y> void reset( shared_ptr<Y> const & r, T * p )
31841     {
31842         this_type( r, p ).swap( *this );
31843     }
31844
31845     reference operator* () const
31846     {
31847         (static_cast<void> ((px != 0) ? 0 : (__assert ("px != 0", "./boost/shared_ptr.hpp", 369, __PRETTY_FUNCTION__), 0)));
31848         return *px;
31849     }
31850
31851     T * operator-> () const
31852     {
31853         (static_cast<void> ((px != 0) ? 0 : (__assert ("px != 0", "./boost/shared_ptr.hpp", 375, __PRETTY_FUNCTION__), 0)));
31854         return px;
31855     }
31856
31857     T * get() const
31858     {
31859         return px;
31860     }
31861 # 420 "./boost/shared_ptr.hpp"
31862     typedef T * this_type::*unspecified_bool_type;
31863
31864     operator unspecified_bool_type() const
31865     {
31866         return px == 0? 0: &this_type::px;
31867     }
31868
31869
31870
31871
31872
31873     bool operator! () const
31874     {
31875         return px == 0;
31876     }
31877
31878     bool unique() const
31879     {
31880         return pn.unique();
31881     }
31882
31883     long use_count() const
31884     {
31885         return pn.use_count();
31886     }
31887
31888     void swap(shared_ptr<T> & other)
31889     {
31890         std::swap(px, other.px);
31891         pn.swap(other.pn);
31892     }
31893
31894     template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const
31895     {
31896         return pn < rhs.pn;
31897     }
31898
31899     void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const
31900     {
31901         return pn.get_deleter( ti );
31902     }
31903
31904
31905
31906
31907
31908
31909 private:
31910
31911     template<class Y> friend class shared_ptr;
31912     template<class Y> friend class weak_ptr;
31913
31914
31915
31916
31917     T * px;
31918     boost::detail::shared_count pn;
31919
31920 };
31921
31922 template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
31923 {
31924     return a.get() == b.get();
31925 }
31926
31927 template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
31928 {
31929     return a.get() != b.get();
31930 }
31931 # 501 "./boost/shared_ptr.hpp"
31932 template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)
31933 {
31934     return a._internal_less(b);
31935 }
31936
31937 template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)
31938 {
31939     a.swap(b);
31940 }
31941
31942 template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)
31943 {
31944     return shared_ptr<T>(r, boost::detail::static_cast_tag());
31945 }
31946
31947 template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)
31948 {
31949     return shared_ptr<T>(r, boost::detail::const_cast_tag());
31950 }
31951
31952 template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)
31953 {
31954     return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());
31955 }
31956
31957
31958
31959 template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)
31960 {
31961     return shared_ptr<T>(r, boost::detail::static_cast_tag());
31962 }
31963
31964 template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)
31965 {
31966     return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());
31967 }
31968
31969 template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)
31970 {
31971     return shared_ptr<T>(r, boost::detail::polymorphic_cast_tag());
31972 }
31973
31974 template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)
31975 {
31976     (static_cast<void> ((dynamic_cast<T *>(r.get()) == r.get()) ? 0 : (__assert ("dynamic_cast<T *>(r.get()) == r.get()", "./boost/shared_ptr.hpp", 545, __PRETTY_FUNCTION__), 0)));
31977     return shared_static_cast<T>(r);
31978 }
31979
31980
31981
31982 template<class T> inline T * get_pointer(shared_ptr<T> const & p)
31983 {
31984     return p.get();
31985 }
31986 # 576 "./boost/shared_ptr.hpp"
31987 template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
31988
31989 {
31990     os << p.get();
31991     return os;
31992 }
31993 # 604 "./boost/shared_ptr.hpp"
31994 template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
31995 {
31996     return static_cast<D *>(p._internal_get_deleter(typeid(D)));
31997 }
31998
31999
32000
32001 }
32002 # 22 "./boost/format/alt_sstream.hpp" 2
32003 # 1 "./boost/assert.hpp" 1
32004 # 36 "./boost/assert.hpp"
32005 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
32006 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
32007 extern "C" {
32008
32009
32010 extern void __assert (const char *, const char *, int, const char *);
32011
32012 }
32013 # 37 "./boost/assert.hpp" 2
32014 # 23 "./boost/format/alt_sstream.hpp" 2
32015
32016 namespace boost {
32017     namespace io {
32018
32019         template<class Ch, class Tr=::std::char_traits<Ch>,
32020                  class Alloc=::std::allocator<Ch> >
32021         class basic_altstringbuf;
32022
32023         template<class Ch, class Tr =::std::char_traits<Ch>,
32024                  class Alloc=::std::allocator<Ch> >
32025         class basic_oaltstringstream;
32026
32027
32028         template<class Ch, class Tr, class Alloc>
32029         class basic_altstringbuf
32030             : public ::std::basic_streambuf<Ch, Tr>
32031         {
32032             typedef ::std::basic_streambuf<Ch, Tr> streambuf_t;
32033             typedef typename CompatAlloc<Alloc>::compatible_type compat_allocator_type;
32034             typedef typename CompatTraits<Tr>::compatible_type compat_traits_type;
32035         public:
32036             typedef Ch char_type;
32037             typedef Tr traits_type;
32038             typedef typename compat_traits_type::int_type int_type;
32039             typedef typename compat_traits_type::pos_type pos_type;
32040             typedef typename compat_traits_type::off_type off_type;
32041             typedef Alloc allocator_type;
32042             typedef ::std::basic_string<Ch, Tr, Alloc> string_type;
32043             typedef typename string_type::size_type size_type;
32044
32045             typedef ::std::streamsize streamsize;
32046
32047
32048             explicit basic_altstringbuf(std::ios_base::openmode mode
32049                                         = std::ios_base::in | std::ios_base::out)
32050                 : putend_(__null), is_allocated_(false), mode_(mode)
32051                 {}
32052             explicit basic_altstringbuf(const string_type& s,
32053                                         ::std::ios_base::openmode mode
32054                                         = ::std::ios_base::in | ::std::ios_base::out)
32055                 : putend_(__null), is_allocated_(false), mode_(mode)
32056                 { dealloc(); str(s); }
32057             virtual ~basic_altstringbuf()
32058                 { dealloc(); }
32059             using streambuf_t::pbase;
32060             using streambuf_t::pptr;
32061             using streambuf_t::epptr;
32062             using streambuf_t::eback;
32063             using streambuf_t::gptr;
32064             using streambuf_t::egptr;
32065
32066             void clear_buffer();
32067             void str(const string_type& s);
32068
32069
32070             Ch * begin() const;
32071             size_type size() const;
32072             size_type cur_size() const;
32073             Ch * pend() const
32074                 { return ((putend_ < pptr()) ? pptr() : putend_); }
32075             size_type pcount() const
32076                 { return static_cast<size_type>( pptr() - pbase()) ;}
32077
32078
32079             string_type str() const
32080                 { return string_type(begin(), size()); }
32081             string_type cur_str() const
32082                 { return string_type(begin(), cur_size()); }
32083         protected:
32084             explicit basic_altstringbuf (basic_altstringbuf * s,
32085                                          ::std::ios_base::openmode mode
32086                                          = ::std::ios_base::in | ::std::ios_base::out)
32087                 : putend_(__null), is_allocated_(false), mode_(mode)
32088                 { dealloc(); str(s); }
32089
32090             virtual pos_type seekoff(off_type off, ::std::ios_base::seekdir way,
32091                                      ::std::ios_base::openmode which
32092                                      = ::std::ios_base::in | ::std::ios_base::out);
32093             virtual pos_type seekpos (pos_type pos,
32094                                       ::std::ios_base::openmode which
32095                                       = ::std::ios_base::in | ::std::ios_base::out);
32096             virtual int_type underflow();
32097             virtual int_type pbackfail(int_type meta = compat_traits_type::eof());
32098             virtual int_type overflow(int_type meta = compat_traits_type::eof());
32099             void dealloc();
32100         private:
32101             enum { alloc_min = 256};
32102
32103             Ch *putend_;
32104             bool is_allocated_;
32105             ::std::ios_base::openmode mode_;
32106             compat_allocator_type alloc_;
32107         };
32108
32109
32110
32111         template <class Ch, class Tr, class Alloc>
32112         class basic_oaltstringstream
32113             : private base_from_member< shared_ptr< basic_altstringbuf< Ch, Tr, Alloc> > >,
32114               public ::std::basic_ostream<Ch, Tr>
32115         {
32116             class No_Op {
32117
32118             public:
32119                 template<class T>
32120                 const T & operator()(const T & arg) { return arg; }
32121             };
32122             typedef ::std::basic_ostream<Ch, Tr> stream_t;
32123             typedef boost::base_from_member<boost::shared_ptr<
32124                 basic_altstringbuf<Ch,Tr, Alloc> > >
32125                 pbase_type;
32126             typedef ::std::basic_string<Ch, Tr, Alloc> string_type;
32127             typedef typename string_type::size_type size_type;
32128             typedef basic_altstringbuf<Ch, Tr, Alloc> stringbuf_t;
32129         public:
32130             typedef Alloc allocator_type;
32131             basic_oaltstringstream()
32132                 : pbase_type(new stringbuf_t), stream_t(rdbuf())
32133                 { }
32134             basic_oaltstringstream(::boost::shared_ptr<stringbuf_t> buf)
32135                 : pbase_type(buf), stream_t(rdbuf())
32136                 { }
32137             basic_oaltstringstream(stringbuf_t * buf)
32138                 : pbase_type(buf, No_Op() ), stream_t(rdbuf())
32139                 { }
32140             stringbuf_t * rdbuf() const
32141                 { return pbase_type::member.get(); }
32142             void clear_buffer()
32143                 { rdbuf()->clear_buffer(); }
32144
32145
32146             Ch * begin() const
32147                 { return rdbuf()->begin(); }
32148             size_type size() const
32149                 { return rdbuf()->size(); }
32150             size_type cur_size() const
32151                 { return rdbuf()->cur_size(); }
32152
32153
32154             string_type str() const
32155                 { return rdbuf()->str(); }
32156             string_type cur_str() const
32157                 { return rdbuf()->cur_str(); }
32158             void str(const string_type& s)
32159                 { rdbuf()->str(s); }
32160         };
32161
32162     }
32163 }
32164
32165 # 1 "./boost/format/alt_sstream_impl.hpp" 1
32166 # 16 "./boost/format/alt_sstream_impl.hpp"
32167 namespace boost {
32168     namespace io {
32169
32170
32171         template<class Ch, class Tr, class Alloc>
32172         void basic_altstringbuf<Ch, Tr, Alloc>::
32173         clear_buffer () {
32174             const Ch * p = pptr();
32175             const Ch * b = pbase();
32176             if(p != __null && p != b) {
32177                 seekpos(0, ::std::ios_base::out);
32178             }
32179             p = gptr();
32180             b = eback();
32181             if(p != __null && p != b) {
32182                 seekpos(0, ::std::ios_base::in);
32183             }
32184         }
32185
32186         template<class Ch, class Tr, class Alloc>
32187         void basic_altstringbuf<Ch, Tr, Alloc>::
32188         str (const string_type& s) {
32189             size_type sz=s.size();
32190             if(sz != 0 && mode_ & (::std::ios_base::in | ::std::ios_base::out) ) {
32191                 Ch *new_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
32192
32193                 dealloc();
32194                 sz = s.copy(new_ptr, sz);
32195                 putend_ = new_ptr + sz;
32196                 if(mode_ & ::std::ios_base::in)
32197                     streambuf_t::setg(new_ptr, new_ptr, new_ptr + sz);
32198                 if(mode_ & ::std::ios_base::out) {
32199                     streambuf_t::setp(new_ptr, new_ptr + sz);
32200                     if(mode_ & (::std::ios_base::app | ::std::ios_base::ate))
32201                         streambuf_t::pbump(static_cast<int>(sz));
32202                     if(gptr() == __null)
32203                         streambuf_t::setg(new_ptr, __null, new_ptr);
32204                 }
32205                 is_allocated_ = true;
32206             }
32207             else
32208                 dealloc();
32209         }
32210         template<class Ch, class Tr, class Alloc>
32211         Ch* basic_altstringbuf<Ch, Tr, Alloc>::
32212         begin () const {
32213             if(mode_ & ::std::ios_base::out && pptr() != __null)
32214                 return pbase();
32215             else if(mode_ & ::std::ios_base::in && gptr() != __null)
32216                 return eback();
32217             return __null;
32218         }
32219
32220         template<class Ch, class Tr, class Alloc>
32221         typename std::basic_string<Ch,Tr,Alloc>::size_type
32222         basic_altstringbuf<Ch, Tr, Alloc>::
32223         size () const {
32224             if(mode_ & ::std::ios_base::out && pptr())
32225                 return static_cast<size_type>(pend() - pbase());
32226             else if(mode_ & ::std::ios_base::in && gptr())
32227                 return static_cast<size_type>(egptr() - eback());
32228             else
32229                 return 0;
32230         }
32231
32232         template<class Ch, class Tr, class Alloc>
32233         typename std::basic_string<Ch,Tr,Alloc>::size_type
32234         basic_altstringbuf<Ch, Tr, Alloc>::
32235         cur_size () const {
32236             if(mode_ & ::std::ios_base::out && pptr())
32237                 return static_cast<streamsize>( pptr() - pbase());
32238             else if(mode_ & ::std::ios_base::in && gptr())
32239                 return static_cast<streamsize>( gptr() - eback());
32240             else
32241                 return 0;
32242         }
32243
32244         template<class Ch, class Tr, class Alloc>
32245         typename basic_altstringbuf<Ch, Tr, Alloc>::pos_type
32246         basic_altstringbuf<Ch, Tr, Alloc>::
32247         seekoff (off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) {
32248             if(pptr() != __null && putend_ < pptr())
32249                 putend_ = pptr();
32250             if(which & ::std::ios_base::in && gptr() != __null) {
32251
32252                 if(way == ::std::ios_base::end)
32253                     off += static_cast<off_type>(putend_ - gptr());
32254                 else if(way == ::std::ios_base::beg)
32255                     off += static_cast<off_type>(eback() - gptr());
32256                 else if(way != ::std::ios_base::cur || (which & ::std::ios_base::out) )
32257
32258                     return pos_type(off_type(-1));
32259                 if(eback() <= off+gptr() && off+gptr() <= putend_ ) {
32260
32261                     streambuf_t::gbump(static_cast<int>(off));
32262                     if(which & ::std::ios_base::out && pptr() != __null)
32263
32264                         streambuf_t::pbump(static_cast<int>(gptr()-pptr()));
32265                 }
32266                 else
32267                     off = off_type(-1);
32268             }
32269             else if(which & ::std::ios_base::out && pptr() != __null) {
32270
32271                 if(way == ::std::ios_base::end)
32272                     off += static_cast<off_type>(putend_ - pptr());
32273                 else if(way == ::std::ios_base::beg)
32274                     off += static_cast<off_type>(pbase() - pptr());
32275                 else if(way != ::std::ios_base::beg)
32276                     return pos_type(off_type(-1));
32277                 if(pbase() <= off+pptr() && off+pptr() <= putend_)
32278
32279                     streambuf_t::pbump(static_cast<int>(off));
32280                 else
32281                     off = off_type(-1);
32282             }
32283             else
32284                 off = off_type(-1);
32285             return (pos_type(off));
32286         }
32287
32288
32289
32290         template<class Ch, class Tr, class Alloc>
32291         typename basic_altstringbuf<Ch, Tr, Alloc>::pos_type
32292         basic_altstringbuf<Ch, Tr, Alloc>::
32293         seekpos (pos_type pos, ::std::ios_base::openmode which) {
32294             off_type off = off_type(pos);
32295             if(pptr() != __null && putend_ < pptr())
32296                 putend_ = pptr();
32297             if(off != off_type(-1)) {
32298                 if(which & ::std::ios_base::in && gptr() != __null) {
32299
32300                     if(0 <= off && off <= putend_ - eback()) {
32301                         streambuf_t::gbump(static_cast<int>(eback() - gptr() + off));
32302                         if(which & ::std::ios_base::out && pptr() != __null) {
32303
32304                             streambuf_t::pbump(static_cast<int>(gptr()-pptr()));
32305                         }
32306                     }
32307                     else
32308                         off = off_type(-1);
32309                 }
32310                 else if(which & ::std::ios_base::out && pptr() != __null) {
32311
32312                     if(0 <= off && off <= putend_ - eback())
32313                         streambuf_t::pbump(static_cast<int>(eback() - pptr() + off));
32314                     else
32315                         off = off_type(-1);
32316                 }
32317                 else
32318                     off = off_type(-1);
32319                 return (pos_type(off));
32320             }
32321             else {
32322                 (static_cast<void> ((0) ? 0 : (__assert ("0", "./boost/format/alt_sstream_impl.hpp", 171, __PRETTY_FUNCTION__), 0)));
32323                 return pos_type(off_type(-1));
32324             }
32325         }
32326
32327
32328
32329         template<class Ch, class Tr, class Alloc>
32330         typename basic_altstringbuf<Ch, Tr, Alloc>::int_type
32331         basic_altstringbuf<Ch, Tr, Alloc>::
32332         underflow () {
32333             if(gptr() == __null)
32334                 return (compat_traits_type::eof());
32335             else if(gptr() < egptr())
32336                 return (compat_traits_type::to_int_type(*gptr()));
32337             else if(mode_ & ::std::ios_base::in && pptr() != __null
32338                     && (gptr() < pptr() || gptr() < putend_) )
32339                 {
32340                     if(putend_ < pptr())
32341                         putend_ = pptr();
32342                     streambuf_t::setg(eback(), gptr(), putend_);
32343                     return (compat_traits_type::to_int_type(*gptr()));
32344                 }
32345             else
32346                 return (compat_traits_type::eof());
32347         }
32348
32349
32350
32351         template<class Ch, class Tr, class Alloc>
32352         typename basic_altstringbuf<Ch, Tr, Alloc>::int_type
32353         basic_altstringbuf<Ch, Tr, Alloc>::
32354         pbackfail (int_type meta) {
32355             if(gptr() != __null && (eback() < gptr())
32356                && (mode_ & (::std::ios_base::out)
32357                    || compat_traits_type::eq_int_type(compat_traits_type::eof(), meta)
32358                    || compat_traits_type::eq(compat_traits_type::to_char_type(meta), gptr()[-1]) ) ) {
32359                 streambuf_t::gbump(-1);
32360                 if(!compat_traits_type::eq_int_type(compat_traits_type::eof(), meta))
32361
32362                     *gptr() = compat_traits_type::to_char_type(meta);
32363                 return (compat_traits_type::not_eof(meta));
32364             }
32365             else
32366                 return (compat_traits_type::eof());
32367         }
32368
32369
32370
32371         template<class Ch, class Tr, class Alloc>
32372         typename basic_altstringbuf<Ch, Tr, Alloc>::int_type
32373         basic_altstringbuf<Ch, Tr, Alloc>::
32374         overflow (int_type meta) {
32375
32376
32377
32378
32379             if(compat_traits_type::eq_int_type(compat_traits_type::eof(), meta))
32380                 return compat_traits_type::not_eof(meta);
32381             else if(pptr() != __null && pptr() < epptr()) {
32382                 streambuf_t::sputc(compat_traits_type::to_char_type(meta));
32383                 return meta;
32384             }
32385             else if(! (mode_ & ::std::ios_base::out))
32386
32387                 return compat_traits_type::eof();
32388             else {
32389                 std::size_t prev_size = pptr() == __null ? 0 : epptr() - eback();
32390                 std::size_t new_size = prev_size;
32391
32392                 std::size_t add_size = new_size / 2;
32393                 if(add_size < alloc_min)
32394                     add_size = alloc_min;
32395                 Ch * newptr = __null, *oldptr = eback();
32396
32397
32398                 while (0 < add_size && ((std::numeric_limits<std::size_t>::max)()
32399                                         - add_size < new_size) )
32400                     add_size /= 2;
32401                 if(0 < add_size) {
32402                     new_size += add_size;
32403                     newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
32404                 }
32405
32406                 if(0 < prev_size)
32407                     compat_traits_type::copy(newptr, oldptr, prev_size);
32408                 if(is_allocated_)
32409                     alloc_.deallocate(oldptr, prev_size);
32410                 is_allocated_=true;
32411
32412                 if(prev_size == 0) {
32413                     putend_ = newptr;
32414                     streambuf_t::setp(newptr, newptr + new_size);
32415                     if(mode_ & ::std::ios_base::in)
32416                         streambuf_t::setg(newptr, newptr, newptr + 1);
32417                     else
32418                         streambuf_t::setg(newptr, 0, newptr);
32419                 }
32420                 else {
32421                     putend_ = putend_ - oldptr + newptr;
32422                     int pptr_count = static_cast<int>(pptr()-pbase());
32423                     int gptr_count = static_cast<int>(gptr()-eback());
32424                     streambuf_t::setp(pbase() - oldptr + newptr, newptr + new_size);
32425                     streambuf_t::pbump(pptr_count);
32426                     if(mode_ & ::std::ios_base::in)
32427                         streambuf_t::setg(newptr, newptr + gptr_count, pptr() + 1);
32428                     else
32429                         streambuf_t::setg(newptr, 0, newptr);
32430                 }
32431                 streambuf_t::sputc(compat_traits_type::to_char_type(meta));
32432                 return meta;
32433             }
32434
32435
32436
32437         }
32438
32439
32440         template<class Ch, class Tr, class Alloc>
32441         void basic_altstringbuf<Ch, Tr, Alloc>:: dealloc() {
32442             if(is_allocated_)
32443                 alloc_.deallocate(eback(), (pptr() != __null ? epptr() : egptr()) - eback());
32444             is_allocated_ = false;
32445             streambuf_t::setg(0, 0, 0);
32446             streambuf_t::setp(0, 0);
32447             putend_ = __null;
32448         }
32449
32450     }
32451 }
32452 # 174 "./boost/format/alt_sstream.hpp" 2
32453 # 24 "./boost/format/internals.hpp" 2
32454
32455 namespace boost {
32456 namespace io {
32457 namespace detail {
32458
32459
32460
32461
32462
32463     template<class Ch, class Tr>
32464     struct stream_format_state
32465     {
32466         typedef ::std:: basic_ios<Ch, Tr> basic_ios;
32467
32468         stream_format_state(Ch fill) { reset(fill); }
32469
32470
32471         void reset(Ch fill);
32472         void set_by_stream(const basic_ios& os);
32473         void apply_on(basic_ios & os,
32474                       boost::io::detail::locale_t * loc_default = 0) const;
32475         template<class T>
32476         void apply_manip(T manipulator)
32477             { apply_manip_body<Ch, Tr, T>( *this, manipulator) ; }
32478
32479
32480         std::streamsize width_;
32481         std::streamsize precision_;
32482         Ch fill_;
32483         std::ios_base::fmtflags flags_;
32484         std::ios_base::iostate rdstate_;
32485         std::ios_base::iostate exceptions_;
32486         boost::optional<boost::io::detail::locale_t> loc_;
32487     };
32488
32489
32490
32491
32492
32493     template<class Ch, class Tr, class Alloc>
32494     struct format_item
32495     {
32496         enum pad_values { zeropad = 1, spacepad =2, centered=4, tabulation = 8 };
32497
32498
32499
32500         enum arg_values { argN_no_posit = -1,
32501                           argN_tabulation = -2,
32502                           argN_ignored = -3
32503         };
32504         typedef ::std:: basic_ios<Ch, Tr> basic_ios;
32505         typedef detail::stream_format_state<Ch, Tr> stream_format_state;
32506         typedef ::std::basic_string<Ch, Tr, Alloc> string_type;
32507
32508         format_item(Ch fill) :argN_(argN_no_posit), fmtstate_(fill),
32509                               truncate_(max_streamsize()), pad_scheme_(0) {}
32510         void reset(Ch fill);
32511         void compute_states();
32512
32513         static std::streamsize max_streamsize() {
32514             return (std::numeric_limits<std::streamsize>::max)();
32515         }
32516
32517
32518         int argN_;
32519
32520         string_type res_;
32521         string_type appendix_;
32522
32523         stream_format_state fmtstate_;
32524
32525         std::streamsize truncate_;
32526         unsigned int pad_scheme_;
32527     };
32528
32529
32530
32531
32532
32533
32534     template<class Ch, class Tr>
32535     void stream_format_state<Ch,Tr>:: apply_on (basic_ios & os,
32536                       boost::io::detail::locale_t * loc_default) const {
32537
32538         if(width_ != -1)
32539             os.width(width_);
32540         if(precision_ != -1)
32541             os.precision(precision_);
32542         if(fill_ != 0)
32543             os.fill(fill_);
32544         os.flags(flags_);
32545         os.clear(rdstate_);
32546         os.exceptions(exceptions_);
32547
32548         if(loc_)
32549             os.imbue(loc_.get());
32550         else if(loc_default)
32551             os.imbue(*loc_default);
32552
32553
32554
32555     }
32556
32557     template<class Ch, class Tr>
32558     void stream_format_state<Ch,Tr>:: set_by_stream(const basic_ios& os) {
32559
32560         flags_ = os.flags();
32561         width_ = os.width();
32562         precision_ = os.precision();
32563         fill_ = os.fill();
32564         rdstate_ = os.rdstate();
32565         exceptions_ = os.exceptions();
32566     }
32567
32568
32569     template<class Ch, class Tr, class T>
32570     void apply_manip_body( stream_format_state<Ch, Tr>& self,
32571                            T manipulator) {
32572
32573         basic_oaltstringstream<Ch, Tr> ss;
32574         self.apply_on( ss );
32575         ss << manipulator;
32576         self.set_by_stream( ss );
32577     }
32578
32579     template<class Ch, class Tr> inline
32580     void stream_format_state<Ch,Tr>:: reset(Ch fill) {
32581
32582         width_=0; precision_=6;
32583         fill_=fill;
32584         flags_ = std::ios_base::dec | std::ios_base::skipws;
32585
32586         exceptions_ = std::ios_base::goodbit;
32587         rdstate_ = std::ios_base::goodbit;
32588     }
32589
32590
32591
32592
32593     template<class Ch, class Tr, class Alloc>
32594     void format_item<Ch, Tr, Alloc>::
32595     reset (Ch fill) {
32596         argN_=argN_no_posit; truncate_ = max_streamsize(); pad_scheme_ =0;
32597         res_.resize(0); appendix_.resize(0);
32598         fmtstate_.reset(fill);
32599     }
32600
32601     template<class Ch, class Tr, class Alloc>
32602     void format_item<Ch, Tr, Alloc>::
32603     compute_states() {
32604
32605
32606         if(pad_scheme_ & zeropad) {
32607
32608             if(fmtstate_.flags_ & std::ios_base::left) {
32609               (static_cast<void> ((!(fmtstate_.flags_ &(std::ios_base::adjustfield ^std::ios_base::left))) ? 0 : (__assert ("!(fmtstate_.flags_ &(std::ios_base::adjustfield ^std::ios_base::left))", "./boost/format/internals.hpp", 179, __PRETTY_FUNCTION__), 0)));
32610
32611               pad_scheme_ = pad_scheme_ & (~zeropad);
32612             }
32613             else {
32614                 pad_scheme_ &= ~spacepad;
32615                 fmtstate_.fill_='0';
32616                 fmtstate_.flags_ = (fmtstate_.flags_ & ~std::ios_base::adjustfield)
32617                     | std::ios_base::internal;
32618
32619             }
32620         }
32621         if(pad_scheme_ & spacepad) {
32622             if(fmtstate_.flags_ & std::ios_base::showpos)
32623                 pad_scheme_ &= ~spacepad;
32624         }
32625     }
32626
32627
32628 } } }
32629 # 39 "./boost/format.hpp" 2
32630
32631
32632 # 1 "./boost/format/format_class.hpp" 1
32633 # 27 "./boost/format/format_class.hpp"
32634 namespace boost {
32635
32636     template<class Ch, class Tr, class Alloc>
32637     class basic_format
32638     {
32639         typedef typename io::CompatTraits<Tr>::compatible_type compat_traits;
32640     public:
32641         typedef Ch CharT;
32642         typedef std::basic_string<Ch, Tr, Alloc> string_type;
32643         typedef typename string_type::size_type size_type;
32644         typedef io::detail::format_item<Ch, Tr, Alloc> format_item_t;
32645         typedef io::basic_altstringbuf<Ch, Tr, Alloc> internal_streambuf_t;
32646
32647
32648         explicit basic_format(const Ch* str=__null);
32649         explicit basic_format(const string_type& s);
32650         basic_format(const basic_format& x);
32651         basic_format& operator= (const basic_format& x);
32652         void swap(basic_format& x);
32653
32654
32655         explicit basic_format(const Ch* str, const std::locale & loc);
32656         explicit basic_format(const string_type& s, const std::locale & loc);
32657
32658         io::detail::locale_t getloc() const;
32659
32660         basic_format& clear();
32661         basic_format& clear_binds();
32662         basic_format& parse(const string_type&);
32663
32664
32665         size_type size() const;
32666         string_type str() const;
32667
32668
32669         template<class T>
32670         basic_format& operator%(const T& x)
32671             { return io::detail::feed<CharT, Tr, Alloc, const T&>(*this,x); }
32672
32673
32674         template<class T> basic_format& operator%(T& x)
32675             { return io::detail::feed<CharT, Tr, Alloc, T&>(*this,x); }
32676
32677
32678
32679         template<class T>
32680         basic_format& bind_arg(int argN, const T& val)
32681             { return io::detail::bind_arg_body(*this, argN, val); }
32682         basic_format& clear_bind(int argN);
32683         template<class T>
32684         basic_format& modify_item(int itemN, T manipulator)
32685             { return io::detail::modify_item_body<Ch,Tr, Alloc, T> (*this, itemN, manipulator);}
32686
32687
32688         unsigned char exceptions() const;
32689         unsigned char exceptions(unsigned char newexcept);
32690 # 91 "./boost/format/format_class.hpp"
32691         template<class Ch2, class Tr2, class Alloc2>
32692         friend std::basic_ostream<Ch2, Tr2> &
32693         operator<<( std::basic_ostream<Ch2, Tr2> & ,
32694                     const basic_format<Ch2, Tr2, Alloc2>& );
32695
32696
32697
32698
32699
32700
32701
32702         template<class Ch2, class Tr2, class Alloc2, class T>
32703         friend basic_format<Ch2, Tr2, Alloc2>&
32704         io::detail::feed (basic_format<Ch2, Tr2, Alloc2>&, T);
32705
32706         template<class Ch2, class Tr2, class Alloc2, class T> friend
32707         void io::detail::distribute (basic_format<Ch2, Tr2, Alloc2>&, T);
32708
32709         template<class Ch2, class Tr2, class Alloc2, class T> friend
32710         basic_format<Ch2, Tr2, Alloc2>&
32711         io::detail::modify_item_body (basic_format<Ch2, Tr2, Alloc2>&, int, T);
32712
32713         template<class Ch2, class Tr2, class Alloc2, class T> friend
32714         basic_format<Ch2, Tr2, Alloc2>&
32715         io::detail::bind_arg_body (basic_format<Ch2, Tr2, Alloc2>&, int, const T&);
32716
32717     private:
32718
32719         typedef io::detail::stream_format_state<Ch, Tr> stream_format_state;
32720
32721         enum style_values { ordered = 1,
32722                              special_needs = 4 };
32723
32724         void make_or_reuse_data(std::size_t nbitems);
32725
32726
32727         std::vector<format_item_t> items_;
32728         std::vector<bool> bound_;
32729
32730         int style_;
32731         int cur_arg_;
32732         int num_args_;
32733         mutable bool dumped_;
32734         string_type prefix_;
32735         unsigned char exceptions_;
32736         internal_streambuf_t buf_;
32737         boost::optional<io::detail::locale_t> loc_;
32738     };
32739
32740 }
32741 # 42 "./boost/format.hpp" 2
32742
32743
32744 # 1 "./boost/format/exceptions.hpp" 1
32745 # 20 "./boost/format/exceptions.hpp"
32746 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/stdexcept" 1 3
32747 # 41 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/stdexcept" 3
32748        
32749 # 42 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/lib/gcc/bfin-linux-uclibc/4.1.2/include/c++/stdexcept" 3
32750
32751
32752
32753
32754 namespace std
32755 {
32756
32757
32758
32759
32760
32761   class logic_error : public exception
32762   {
32763     string _M_msg;
32764
32765   public:
32766
32767     explicit
32768     logic_error(const string& __arg);
32769
32770     virtual
32771     ~logic_error() throw();
32772
32773
32774
32775     virtual const char*
32776     what() const throw();
32777   };
32778
32779
32780
32781   class domain_error : public logic_error
32782   {
32783   public:
32784     explicit domain_error(const string& __arg);
32785   };
32786
32787
32788   class invalid_argument : public logic_error
32789   {
32790   public:
32791     explicit invalid_argument(const string& __arg);
32792   };
32793
32794
32795
32796   class length_error : public logic_error
32797   {
32798   public:
32799     explicit length_error(const string& __arg);
32800   };
32801
32802
32803
32804   class out_of_range : public logic_error
32805   {
32806   public:
32807     explicit out_of_range(const string& __arg);
32808   };
32809
32810
32811
32812
32813
32814
32815   class runtime_error : public exception
32816   {
32817     string _M_msg;
32818
32819   public:
32820
32821     explicit
32822     runtime_error(const string& __arg);
32823
32824     virtual
32825     ~runtime_error() throw();
32826
32827
32828
32829     virtual const char*
32830     what() const throw();
32831   };
32832
32833
32834   class range_error : public runtime_error
32835   {
32836   public:
32837     explicit range_error(const string& __arg);
32838   };
32839
32840
32841   class overflow_error : public runtime_error
32842   {
32843   public:
32844     explicit overflow_error(const string& __arg);
32845   };
32846
32847
32848   class underflow_error : public runtime_error
32849   {
32850   public:
32851     explicit underflow_error(const string& __arg);
32852   };
32853 }
32854 # 21 "./boost/format/exceptions.hpp" 2
32855
32856
32857 namespace boost {
32858
32859     namespace io {
32860
32861
32862
32863         class format_error : public std::exception
32864         {
32865         public:
32866             format_error() {}
32867             virtual const char *what() const throw() {
32868                 return "boost::format_error: "
32869                     "format generic failure";
32870             }
32871         };
32872
32873         class bad_format_string : public format_error
32874         {
32875             std::size_t pos_, next_;
32876         public:
32877             bad_format_string(std::size_t pos, std::size_t size)
32878                 : pos_(pos), next_(size) {}
32879             std::size_t get_pos() const { return pos_; }
32880             std::size_t get_next() const { return next_; }
32881             virtual const char *what() const throw() {
32882                 return "boost::bad_format_string: format-string is ill-formed";
32883             }
32884         };
32885
32886         class too_few_args : public format_error
32887         {
32888             std::size_t cur_, expected_;
32889         public:
32890             too_few_args(std::size_t cur, std::size_t expected)
32891                 : cur_(cur), expected_(expected) {}
32892             std::size_t get_cur() const { return cur_; }
32893             std::size_t get_expected() const { return expected_; }
32894             virtual const char *what() const throw() {
32895                 return "boost::too_few_args: "
32896                     "format-string referred to more arguments than were passed";
32897             }
32898         };
32899
32900         class too_many_args : public format_error
32901         {
32902             std::size_t cur_, expected_;
32903         public:
32904             too_many_args(std::size_t cur, std::size_t expected)
32905                 : cur_(cur), expected_(expected) {}
32906             std::size_t get_cur() const { return cur_; }
32907             std::size_t get_expected() const { return expected_; }
32908             virtual const char *what() const throw() {
32909                 return "boost::too_many_args: "
32910                     "format-string referred to less arguments than were passed";
32911             }
32912         };
32913
32914
32915         class out_of_range : public format_error
32916         {
32917             int index_, beg_, end_;
32918         public:
32919             out_of_range(int index, int beg, int end)
32920                 : index_(index), beg_(beg), end_(end) {}
32921             int get_index() const { return index_; }
32922             int get_beg() const { return beg_; }
32923             int get_end() const { return end_; }
32924             virtual const char *what() const throw() {
32925                 return "boost::out_of_range: "
32926                     "tried to refer to an argument (or item) number which"
32927                     " is out of range, according to the format string";
32928             }
32929         };
32930
32931
32932     }
32933
32934 }
32935 # 45 "./boost/format.hpp" 2
32936
32937
32938 # 1 "./boost/format/format_implementation.hpp" 1
32939 # 19 "./boost/format/format_implementation.hpp"
32940 # 1 "./boost/assert.hpp" 1
32941 # 36 "./boost/assert.hpp"
32942 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
32943 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
32944 extern "C" {
32945
32946
32947 extern void __assert (const char *, const char *, int, const char *);
32948
32949 }
32950 # 37 "./boost/assert.hpp" 2
32951 # 20 "./boost/format/format_implementation.hpp" 2
32952
32953
32954
32955 namespace boost {
32956
32957
32958
32959     template< class Ch, class Tr, class Alloc>
32960     basic_format<Ch, Tr, Alloc>:: basic_format(const Ch* s)
32961         : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
32962           exceptions_(io::all_error_bits)
32963     {
32964         if( s)
32965             parse( s );
32966     }
32967
32968
32969     template< class Ch, class Tr, class Alloc>
32970     basic_format<Ch, Tr, Alloc>:: basic_format(const Ch* s, const std::locale & loc)
32971         : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
32972           loc_(loc), exceptions_(io::all_error_bits)
32973     {
32974         if(s) parse( s );
32975     }
32976
32977     template< class Ch, class Tr, class Alloc>
32978     basic_format<Ch, Tr, Alloc>:: basic_format(const string_type& s, const std::locale & loc)
32979         : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
32980           loc_(loc), exceptions_(io::all_error_bits)
32981     {
32982         parse(s);
32983     }
32984
32985     template< class Ch, class Tr, class Alloc>
32986     io::detail::locale_t basic_format<Ch, Tr, Alloc>::
32987     getloc() const {
32988         return loc_ ? loc_.get() : io::detail::locale_t();
32989     }
32990
32991     template< class Ch, class Tr, class Alloc>
32992     basic_format<Ch, Tr, Alloc>:: basic_format(const string_type& s)
32993         : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
32994           exceptions_(io::all_error_bits)
32995     {
32996         parse(s);
32997     }
32998
32999     template< class Ch, class Tr, class Alloc>
33000     basic_format<Ch, Tr, Alloc>:: basic_format(const basic_format& x)
33001         : items_(x.items_), bound_(x.bound_), style_(x.style_),
33002           cur_arg_(x.cur_arg_), num_args_(x.num_args_), dumped_(false),
33003           prefix_(x.prefix_), exceptions_(x.exceptions_), loc_(x.loc_)
33004     {
33005     }
33006
33007     template< class Ch, class Tr, class Alloc>
33008     basic_format<Ch, Tr, Alloc>& basic_format<Ch, Tr, Alloc>::
33009     operator= (const basic_format& x) {
33010         if(this == &x)
33011             return *this;
33012         (basic_format<Ch, Tr, Alloc>(x)).swap(*this);
33013         return *this;
33014     }
33015     template< class Ch, class Tr, class Alloc>
33016     void basic_format<Ch, Tr, Alloc>::
33017     swap (basic_format & x) {
33018         std::swap(exceptions_, x.exceptions_);
33019         std::swap(style_, x.style_);
33020         std::swap(cur_arg_, x.cur_arg_);
33021         std::swap(num_args_, x.num_args_);
33022         std::swap(dumped_, x.dumped_);
33023
33024         items_.swap(x.items_);
33025         prefix_.swap(x.prefix_);
33026         bound_.swap(x.bound_);
33027     }
33028
33029     template< class Ch, class Tr, class Alloc>
33030     unsigned char basic_format<Ch,Tr, Alloc>:: exceptions() const {
33031         return exceptions_;
33032     }
33033
33034     template< class Ch, class Tr, class Alloc>
33035     unsigned char basic_format<Ch,Tr, Alloc>:: exceptions(unsigned char newexcept) {
33036         unsigned char swp = exceptions_;
33037         exceptions_ = newexcept;
33038         return swp;
33039     }
33040
33041     template<class Ch, class Tr, class Alloc>
33042     void basic_format<Ch, Tr, Alloc>::
33043     make_or_reuse_data (std::size_t nbitems) {
33044
33045         Ch fill = ( std::use_facet< std::ctype<Ch> >(getloc()) ). widen(' ');
33046
33047
33048
33049         if(items_.size() == 0)
33050             items_.assign( nbitems, format_item_t(fill) );
33051         else {
33052             if(nbitems>items_.size())
33053                 items_.resize(nbitems, format_item_t(fill));
33054             bound_.resize(0);
33055             for(std::size_t i=0; i < nbitems; ++i)
33056                 items_[i].reset(fill);
33057         }
33058         prefix_.resize(0);
33059     }
33060
33061     template< class Ch, class Tr, class Alloc>
33062     basic_format<Ch,Tr, Alloc>& basic_format<Ch,Tr, Alloc>::
33063     clear () {
33064
33065
33066
33067         (static_cast<void> ((bound_.size()==0 || num_args_ == static_cast<int>(bound_.size())) ? 0 : (__assert ("bound_.size()==0 || num_args_ == static_cast<int>(bound_.size())", "./boost/format/format_implementation.hpp", 135, __PRETTY_FUNCTION__), 0)));
33068
33069         for(unsigned long i=0; i<items_.size(); ++i) {
33070
33071             if( bound_.size()==0 || items_[i].argN_<0 || !bound_[ items_[i].argN_ ] )
33072                 items_[i].res_.resize(0);
33073         }
33074         cur_arg_=0; dumped_=false;
33075
33076         if(bound_.size() != 0) {
33077             for(; cur_arg_ < num_args_ && bound_[cur_arg_]; ++cur_arg_)
33078                 {}
33079         }
33080         return *this;
33081     }
33082
33083     template< class Ch, class Tr, class Alloc>
33084     basic_format<Ch,Tr, Alloc>& basic_format<Ch,Tr, Alloc>::
33085     clear_binds () {
33086
33087         bound_.resize(0);
33088         clear();
33089         return *this;
33090     }
33091
33092     template< class Ch, class Tr, class Alloc>
33093     basic_format<Ch,Tr, Alloc>& basic_format<Ch,Tr, Alloc>::
33094     clear_bind (int argN) {
33095
33096         if(argN<1 || argN > num_args_ || bound_.size()==0 || !bound_[argN-1] ) {
33097             if( exceptions() & io::out_of_range_bit)
33098                 boost::throw_exception(io::out_of_range(argN, 1, num_args_+1 ) );
33099             else return *this;
33100         }
33101         bound_[argN-1]=false;
33102         clear();
33103         return *this;
33104     }
33105
33106     template< class Ch, class Tr, class Alloc>
33107     typename basic_format<Ch, Tr, Alloc>::string_type
33108     basic_format<Ch,Tr, Alloc>::
33109     str () const {
33110         if(items_.size()==0)
33111             return prefix_;
33112         if( cur_arg_ < num_args_)
33113             if( exceptions() & io::too_few_args_bit )
33114
33115                 boost::throw_exception(io::too_few_args(cur_arg_, num_args_));
33116
33117         unsigned long i;
33118         string_type res;
33119         res.reserve(size());
33120         res += prefix_;
33121         for(i=0; i < items_.size(); ++i) {
33122             const format_item_t& item = items_[i];
33123             res += item.res_;
33124             if( item.argN_ == format_item_t::argN_tabulation) {
33125                 (static_cast<void> ((item.pad_scheme_ & format_item_t::tabulation) ? 0 : (__assert ("item.pad_scheme_ & format_item_t::tabulation", "./boost/format/format_implementation.hpp", 193, __PRETTY_FUNCTION__), 0)));
33126                 if( static_cast<size_type>(item.fmtstate_.width_) > res.size() )
33127                     res.append( static_cast<size_type>(item.fmtstate_.width_) - res.size(),
33128                                         item.fmtstate_.fill_ );
33129             }
33130             res += item.appendix_;
33131         }
33132         dumped_=true;
33133         return res;
33134     }
33135     template< class Ch, class Tr, class Alloc>
33136     typename std::basic_string<Ch, Tr, Alloc>::size_type basic_format<Ch,Tr, Alloc>::
33137     size () const {
33138
33139
33140
33141
33142
33143
33144
33145         using std::max;
33146         size_type sz = prefix_.size();
33147         unsigned long i;
33148         for(i=0; i < items_.size(); ++i) {
33149             const format_item_t& item = items_[i];
33150             sz += item.res_.size();
33151             if( item.argN_ == format_item_t::argN_tabulation)
33152                 sz = max (sz,
33153                                         static_cast<size_type>(item.fmtstate_.width_) );
33154             sz += item.appendix_.size();
33155         }
33156         return sz;
33157
33158
33159
33160     }
33161
33162 namespace io {
33163 namespace detail {
33164
33165     template<class Ch, class Tr, class Alloc, class T>
33166     basic_format<Ch, Tr, Alloc>&
33167     bind_arg_body (basic_format<Ch, Tr, Alloc>& self, int argN, const T& val) {
33168
33169
33170         if(self.dumped_)
33171             self.clear();
33172         if(argN<1 || argN > self.num_args_) {
33173             if( self.exceptions() & io::out_of_range_bit )
33174                 boost::throw_exception(io::out_of_range(argN, 1, self.num_args_+1 ) );
33175             else return self;
33176         }
33177         if(self.bound_.size()==0)
33178             self.bound_.assign(self.num_args_,false);
33179         else
33180             (static_cast<void> ((self.num_args_ == static_cast<signed int>(self.bound_.size())) ? 0 : (__assert ("self.num_args_ == static_cast<signed int>(self.bound_.size())", "./boost/format/format_implementation.hpp", 248, __PRETTY_FUNCTION__), 0)));
33181         int o_cur_arg = self.cur_arg_;
33182         self.cur_arg_ = argN-1;
33183
33184         self.bound_[self.cur_arg_]=false;
33185         self.operator%(val);
33186
33187
33188
33189         self.cur_arg_ = o_cur_arg;
33190         self.bound_[argN-1]=true;
33191         if(self.cur_arg_ == argN-1 ) {
33192
33193             while(self.cur_arg_ < self.num_args_ && self.bound_[self.cur_arg_])
33194                 ++self.cur_arg_;
33195         }
33196
33197         (static_cast<void> ((self.cur_arg_ >= self.num_args_ || ! self.bound_[self.cur_arg_]) ? 0 : (__assert ("self.cur_arg_ >= self.num_args_ || ! self.bound_[self.cur_arg_]", "./boost/format/format_implementation.hpp", 265, __PRETTY_FUNCTION__), 0)));
33198         return self;
33199     }
33200
33201     template<class Ch, class Tr, class Alloc, class T> basic_format<Ch, Tr, Alloc>&
33202     modify_item_body (basic_format<Ch, Tr, Alloc>& self, int itemN, T manipulator) {
33203
33204
33205         if(itemN<1 || itemN > static_cast<signed int>(self.items_.size() )) {
33206             if( self.exceptions() & io::out_of_range_bit )
33207                 boost::throw_exception(io::out_of_range(itemN, 1, static_cast<int>(self.items_.size()) ));
33208             else return self;
33209         }
33210         self.items_[itemN-1].fmtstate_. template apply_manip<T> ( manipulator );
33211         return self;
33212     }
33213
33214 }
33215 }
33216 }
33217 # 48 "./boost/format.hpp" 2
33218 # 1 "./boost/format/group.hpp" 1
33219 # 29 "./boost/format/group.hpp"
33220 namespace boost {
33221 namespace io {
33222
33223
33224 namespace detail {
33225
33226
33227
33228 struct group0
33229 {
33230     group0() {}
33231 };
33232
33233 template <class Ch, class Tr>
33234 inline
33235 ::std:: basic_ostream<Ch, Tr>&
33236 operator << ( ::std:: basic_ostream<Ch, Tr>& os,
33237              const group0& )
33238 {
33239    return os;
33240 }
33241
33242 template <class T1>
33243 struct group1
33244 {
33245     T1 a1_;
33246     group1(T1 a1)
33247       : a1_(a1)
33248       {}
33249 private:
33250    group1& operator=(const group1&);
33251 };
33252
33253 template <class Ch, class Tr, class T1>
33254 inline
33255 ::std:: basic_ostream<Ch, Tr>&
33256 operator << (::std:: basic_ostream<Ch, Tr>& os,
33257              const group1<T1>& x)
33258 {
33259    os << x.a1_;
33260    return os;
33261 }
33262
33263
33264
33265
33266 template <class T1,class T2>
33267 struct group2
33268 {
33269     T1 a1_;
33270     T2 a2_;
33271     group2(T1 a1,T2 a2)
33272       : a1_(a1),a2_(a2)
33273       {}
33274 private:
33275    group2& operator=(const group2&);
33276 };
33277
33278 template <class Ch, class Tr, class T1,class T2>
33279 inline
33280 ::std:: basic_ostream<Ch, Tr>&
33281 operator << (::std:: basic_ostream<Ch, Tr>& os,
33282              const group2<T1,T2>& x)
33283 {
33284    os << x.a1_<< x.a2_;
33285    return os;
33286 }
33287
33288 template <class T1,class T2,class T3>
33289 struct group3
33290 {
33291     T1 a1_;
33292     T2 a2_;
33293     T3 a3_;
33294     group3(T1 a1,T2 a2,T3 a3)
33295       : a1_(a1),a2_(a2),a3_(a3)
33296       {}
33297 private:
33298    group3& operator=(const group3&);
33299 };
33300
33301 template <class Ch, class Tr, class T1,class T2,class T3>
33302 inline
33303 ::std:: basic_ostream<Ch, Tr>&
33304 operator << (::std:: basic_ostream<Ch, Tr>& os,
33305              const group3<T1,T2,T3>& x)
33306 {
33307    os << x.a1_<< x.a2_<< x.a3_;
33308    return os;
33309 }
33310
33311 template <class T1,class T2,class T3,class T4>
33312 struct group4
33313 {
33314     T1 a1_;
33315     T2 a2_;
33316     T3 a3_;
33317     T4 a4_;
33318     group4(T1 a1,T2 a2,T3 a3,T4 a4)
33319       : a1_(a1),a2_(a2),a3_(a3),a4_(a4)
33320       {}
33321 private:
33322    group4& operator=(const group4&);
33323 };
33324
33325 template <class Ch, class Tr, class T1,class T2,class T3,class T4>
33326 inline
33327 ::std:: basic_ostream<Ch, Tr>&
33328 operator << (::std:: basic_ostream<Ch, Tr>& os,
33329              const group4<T1,T2,T3,T4>& x)
33330 {
33331    os << x.a1_<< x.a2_<< x.a3_<< x.a4_;
33332    return os;
33333 }
33334
33335 template <class T1,class T2,class T3,class T4,class T5>
33336 struct group5
33337 {
33338     T1 a1_;
33339     T2 a2_;
33340     T3 a3_;
33341     T4 a4_;
33342     T5 a5_;
33343     group5(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5)
33344       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5)
33345       {}
33346 };
33347
33348 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5>
33349 inline
33350 ::std:: basic_ostream<Ch, Tr>&
33351 operator << (::std:: basic_ostream<Ch, Tr>& os,
33352              const group5<T1,T2,T3,T4,T5>& x)
33353 {
33354    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_;
33355    return os;
33356 }
33357
33358 template <class T1,class T2,class T3,class T4,class T5,class T6>
33359 struct group6
33360 {
33361     T1 a1_;
33362     T2 a2_;
33363     T3 a3_;
33364     T4 a4_;
33365     T5 a5_;
33366     T6 a6_;
33367     group6(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6)
33368       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6)
33369       {}
33370 };
33371
33372 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6>
33373 inline
33374 ::std:: basic_ostream<Ch, Tr>&
33375 operator << (::std:: basic_ostream<Ch, Tr>& os,
33376              const group6<T1,T2,T3,T4,T5,T6>& x)
33377 {
33378    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_;
33379    return os;
33380 }
33381
33382 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
33383 struct group7
33384 {
33385     T1 a1_;
33386     T2 a2_;
33387     T3 a3_;
33388     T4 a4_;
33389     T5 a5_;
33390     T6 a6_;
33391     T7 a7_;
33392     group7(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7)
33393       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7)
33394       {}
33395 };
33396
33397 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7>
33398 inline
33399 ::std:: basic_ostream<Ch, Tr>&
33400 operator << (::std:: basic_ostream<Ch, Tr>& os,
33401              const group7<T1,T2,T3,T4,T5,T6,T7>& x)
33402 {
33403    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_;
33404    return os;
33405 }
33406
33407 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
33408 struct group8
33409 {
33410     T1 a1_;
33411     T2 a2_;
33412     T3 a3_;
33413     T4 a4_;
33414     T5 a5_;
33415     T6 a6_;
33416     T7 a7_;
33417     T8 a8_;
33418     group8(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8)
33419       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8)
33420       {}
33421 };
33422
33423 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
33424 inline
33425 ::std:: basic_ostream<Ch, Tr>&
33426 operator << (::std:: basic_ostream<Ch, Tr>& os,
33427              const group8<T1,T2,T3,T4,T5,T6,T7,T8>& x)
33428 {
33429    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_;
33430    return os;
33431 }
33432
33433 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
33434 struct group9
33435 {
33436     T1 a1_;
33437     T2 a2_;
33438     T3 a3_;
33439     T4 a4_;
33440     T5 a5_;
33441     T6 a6_;
33442     T7 a7_;
33443     T8 a8_;
33444     T9 a9_;
33445     group9(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9)
33446       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9)
33447       {}
33448 };
33449
33450 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
33451 inline
33452 ::std:: basic_ostream<Ch, Tr>&
33453 operator << (::std:: basic_ostream<Ch, Tr>& os,
33454              const group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>& x)
33455 {
33456    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_;
33457    return os;
33458 }
33459
33460 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
33461 struct group10
33462 {
33463     T1 a1_;
33464     T2 a2_;
33465     T3 a3_;
33466     T4 a4_;
33467     T5 a5_;
33468     T6 a6_;
33469     T7 a7_;
33470     T8 a8_;
33471     T9 a9_;
33472     T10 a10_;
33473     group10(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9,T10 a10)
33474       : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9),a10_(a10)
33475       {}
33476 };
33477
33478 template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
33479 inline
33480 ::std:: basic_ostream<Ch, Tr>&
33481 operator << (::std:: basic_ostream<Ch, Tr>& os,
33482              const group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>& x)
33483 {
33484    os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_<< x.a10_;
33485    return os;
33486 }
33487
33488
33489
33490
33491 template <class T1,class T2>
33492 inline
33493 group1<T1>
33494 group_head( group2<T1,T2> const& x)
33495 {
33496    return group1<T1> (x.a1_);
33497 }
33498
33499 template <class T1,class T2>
33500 inline
33501 group1<T2>
33502 group_last( group2<T1,T2> const& x)
33503 {
33504    return group1<T2> (x.a2_);
33505 }
33506
33507
33508
33509 template <class T1,class T2,class T3>
33510 inline
33511 group2<T1,T2>
33512 group_head( group3<T1,T2,T3> const& x)
33513 {
33514    return group2<T1,T2> (x.a1_,x.a2_);
33515 }
33516
33517 template <class T1,class T2,class T3>
33518 inline
33519 group1<T3>
33520 group_last( group3<T1,T2,T3> const& x)
33521 {
33522    return group1<T3> (x.a3_);
33523 }
33524
33525
33526
33527 template <class T1,class T2,class T3,class T4>
33528 inline
33529 group3<T1,T2,T3>
33530 group_head( group4<T1,T2,T3,T4> const& x)
33531 {
33532    return group3<T1,T2,T3> (x.a1_,x.a2_,x.a3_);
33533 }
33534
33535 template <class T1,class T2,class T3,class T4>
33536 inline
33537 group1<T4>
33538 group_last( group4<T1,T2,T3,T4> const& x)
33539 {
33540    return group1<T4> (x.a4_);
33541 }
33542
33543
33544
33545 template <class T1,class T2,class T3,class T4,class T5>
33546 inline
33547 group4<T1,T2,T3,T4>
33548 group_head( group5<T1,T2,T3,T4,T5> const& x)
33549 {
33550    return group4<T1,T2,T3,T4> (x.a1_,x.a2_,x.a3_,x.a4_);
33551 }
33552
33553 template <class T1,class T2,class T3,class T4,class T5>
33554 inline
33555 group1<T5>
33556 group_last( group5<T1,T2,T3,T4,T5> const& x)
33557 {
33558    return group1<T5> (x.a5_);
33559 }
33560
33561
33562
33563 template <class T1,class T2,class T3,class T4,class T5,class T6>
33564 inline
33565 group5<T1,T2,T3,T4,T5>
33566 group_head( group6<T1,T2,T3,T4,T5,T6> const& x)
33567 {
33568    return group5<T1,T2,T3,T4,T5> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_);
33569 }
33570
33571 template <class T1,class T2,class T3,class T4,class T5,class T6>
33572 inline
33573 group1<T6>
33574 group_last( group6<T1,T2,T3,T4,T5,T6> const& x)
33575 {
33576    return group1<T6> (x.a6_);
33577 }
33578
33579
33580
33581 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
33582 inline
33583 group6<T1,T2,T3,T4,T5,T6>
33584 group_head( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
33585 {
33586    return group6<T1,T2,T3,T4,T5,T6> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_);
33587 }
33588
33589 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
33590 inline
33591 group1<T7>
33592 group_last( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
33593 {
33594    return group1<T7> (x.a7_);
33595 }
33596
33597
33598
33599 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
33600 inline
33601 group7<T1,T2,T3,T4,T5,T6,T7>
33602 group_head( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
33603 {
33604    return group7<T1,T2,T3,T4,T5,T6,T7> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_);
33605 }
33606
33607 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
33608 inline
33609 group1<T8>
33610 group_last( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
33611 {
33612    return group1<T8> (x.a8_);
33613 }
33614
33615
33616
33617 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
33618 inline
33619 group8<T1,T2,T3,T4,T5,T6,T7,T8>
33620 group_head( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
33621 {
33622    return group8<T1,T2,T3,T4,T5,T6,T7,T8> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_,x.a8_);
33623 }
33624
33625 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
33626 inline
33627 group1<T9>
33628 group_last( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
33629 {
33630    return group1<T9> (x.a9_);
33631 }
33632
33633
33634
33635 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
33636 inline
33637 group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>
33638 group_head( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
33639 {
33640    return group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_,x.a8_,x.a9_);
33641 }
33642
33643 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
33644 inline
33645 group1<T10>
33646 group_last( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
33647 {
33648    return group1<T10> (x.a10_);
33649 }
33650
33651
33652
33653
33654
33655 }
33656
33657
33658
33659
33660
33661
33662 inline detail::group1< detail::group0 >
33663 group() { return detail::group1< detail::group0 > ( detail::group0() ); }
33664
33665 template <class T1, class Var>
33666 inline
33667 detail::group1< detail::group2<T1, Var const&> >
33668   group(T1 a1, Var const& var)
33669 {
33670    return detail::group1< detail::group2<T1, Var const&> >
33671                    ( detail::group2<T1, Var const&>
33672                         (a1, var)
33673                   );
33674 }
33675
33676 template <class T1,class T2, class Var>
33677 inline
33678 detail::group1< detail::group3<T1,T2, Var const&> >
33679   group(T1 a1,T2 a2, Var const& var)
33680 {
33681    return detail::group1< detail::group3<T1,T2, Var const&> >
33682                    ( detail::group3<T1,T2, Var const&>
33683                         (a1,a2, var)
33684                   );
33685 }
33686
33687 template <class T1,class T2,class T3, class Var>
33688 inline
33689 detail::group1< detail::group4<T1,T2,T3, Var const&> >
33690   group(T1 a1,T2 a2,T3 a3, Var const& var)
33691 {
33692    return detail::group1< detail::group4<T1,T2,T3, Var const&> >
33693                    ( detail::group4<T1,T2,T3, Var const&>
33694                         (a1,a2,a3, var)
33695                   );
33696 }
33697
33698 template <class T1,class T2,class T3,class T4, class Var>
33699 inline
33700 detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
33701   group(T1 a1,T2 a2,T3 a3,T4 a4, Var const& var)
33702 {
33703    return detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
33704                    ( detail::group5<T1,T2,T3,T4, Var const&>
33705                         (a1,a2,a3,a4, var)
33706                   );
33707 }
33708
33709 template <class T1,class T2,class T3,class T4,class T5, class Var>
33710 inline
33711 detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
33712   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var const& var)
33713 {
33714    return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
33715                    ( detail::group6<T1,T2,T3,T4,T5, Var const&>
33716                         (a1,a2,a3,a4,a5, var)
33717                   );
33718 }
33719
33720 template <class T1,class T2,class T3,class T4,class T5,class T6, class Var>
33721 inline
33722 detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
33723   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var const& var)
33724 {
33725    return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
33726                    ( detail::group7<T1,T2,T3,T4,T5,T6, Var const&>
33727                         (a1,a2,a3,a4,a5,a6, var)
33728                   );
33729 }
33730
33731 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var>
33732 inline
33733 detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
33734   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var const& var)
33735 {
33736    return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
33737                    ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&>
33738                         (a1,a2,a3,a4,a5,a6,a7, var)
33739                   );
33740 }
33741
33742 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var>
33743 inline
33744 detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
33745   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var const& var)
33746 {
33747    return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
33748                    ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&>
33749                         (a1,a2,a3,a4,a5,a6,a7,a8, var)
33750                   );
33751 }
33752
33753 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var>
33754 inline
33755 detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
33756   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var const& var)
33757 {
33758    return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
33759                    ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&>
33760                         (a1,a2,a3,a4,a5,a6,a7,a8,a9, var)
33761                   );
33762 }
33763
33764
33765
33766
33767 template <class T1, class Var>
33768 inline
33769 detail::group1< detail::group2<T1, Var&> >
33770   group(T1 a1, Var& var)
33771 {
33772    return detail::group1< detail::group2<T1, Var&> >
33773                    ( detail::group2<T1, Var&>
33774                         (a1, var)
33775                   );
33776 }
33777
33778 template <class T1,class T2, class Var>
33779 inline
33780 detail::group1< detail::group3<T1,T2, Var&> >
33781   group(T1 a1,T2 a2, Var& var)
33782 {
33783    return detail::group1< detail::group3<T1,T2, Var&> >
33784                    ( detail::group3<T1,T2, Var&>
33785                         (a1,a2, var)
33786                   );
33787 }
33788
33789 template <class T1,class T2,class T3, class Var>
33790 inline
33791 detail::group1< detail::group4<T1,T2,T3, Var&> >
33792   group(T1 a1,T2 a2,T3 a3, Var& var)
33793 {
33794    return detail::group1< detail::group4<T1,T2,T3, Var&> >
33795                    ( detail::group4<T1,T2,T3, Var&>
33796                         (a1,a2,a3, var)
33797                   );
33798 }
33799
33800 template <class T1,class T2,class T3,class T4, class Var>
33801 inline
33802 detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
33803   group(T1 a1,T2 a2,T3 a3,T4 a4, Var& var)
33804 {
33805    return detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
33806                    ( detail::group5<T1,T2,T3,T4, Var&>
33807                         (a1,a2,a3,a4, var)
33808                   );
33809 }
33810
33811 template <class T1,class T2,class T3,class T4,class T5, class Var>
33812 inline
33813 detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
33814   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var& var)
33815 {
33816    return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
33817                    ( detail::group6<T1,T2,T3,T4,T5, Var&>
33818                         (a1,a2,a3,a4,a5, var)
33819                   );
33820 }
33821
33822 template <class T1,class T2,class T3,class T4,class T5,class T6, class Var>
33823 inline
33824 detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
33825   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var& var)
33826 {
33827    return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
33828                    ( detail::group7<T1,T2,T3,T4,T5,T6, Var&>
33829                         (a1,a2,a3,a4,a5,a6, var)
33830                   );
33831 }
33832
33833 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var>
33834 inline
33835 detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
33836   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var& var)
33837 {
33838    return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
33839                    ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&>
33840                         (a1,a2,a3,a4,a5,a6,a7, var)
33841                   );
33842 }
33843
33844 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var>
33845 inline
33846 detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
33847   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var& var)
33848 {
33849    return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
33850                    ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&>
33851                         (a1,a2,a3,a4,a5,a6,a7,a8, var)
33852                   );
33853 }
33854
33855 template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var>
33856 inline
33857 detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
33858   group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var& var)
33859 {
33860    return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
33861                    ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&>
33862                         (a1,a2,a3,a4,a5,a6,a7,a8,a9, var)
33863                   );
33864 }
33865
33866
33867
33868
33869
33870 }
33871
33872 }
33873 # 49 "./boost/format.hpp" 2
33874 # 1 "./boost/format/feed_args.hpp" 1
33875 # 18 "./boost/format/feed_args.hpp"
33876 # 1 "./boost/assert.hpp" 1
33877 # 36 "./boost/assert.hpp"
33878 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
33879 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
33880 extern "C" {
33881
33882
33883 extern void __assert (const char *, const char *, int, const char *);
33884
33885 }
33886 # 37 "./boost/assert.hpp" 2
33887 # 19 "./boost/format/feed_args.hpp" 2
33888
33889
33890
33891
33892 # 1 "./boost/format/detail/msvc_disambiguater.hpp" 1
33893 # 24 "./boost/format/feed_args.hpp" 2
33894
33895 namespace boost {
33896 namespace io {
33897 namespace detail {
33898
33899     template<class Ch, class Tr, class Alloc>
33900     void mk_str( std::basic_string<Ch,Tr, Alloc> & res,
33901                  const Ch * beg,
33902                  typename std::basic_string<Ch,Tr,Alloc>::size_type size,
33903                  std::streamsize w,
33904                  const Ch fill_char,
33905                  std::ios_base::fmtflags f,
33906                  const Ch prefix_space,
33907                  bool center)
33908
33909
33910     {
33911         typedef typename std::basic_string<Ch,Tr,Alloc>::size_type size_type;
33912         res.resize(0);
33913         if(w<=0 || static_cast<size_type>(w) <=size) {
33914
33915             res.reserve(size + !!prefix_space);
33916             if(prefix_space)
33917               res.append(1, prefix_space);
33918             if (size)
33919               res.append(beg, size);
33920         }
33921         else {
33922             std::streamsize n=static_cast<std::streamsize>(w-size-!!prefix_space);
33923             std::streamsize n_after = 0, n_before = 0;
33924             res.reserve(static_cast<size_type>(w));
33925             if(center)
33926                 n_after = n/2, n_before = n - n_after;
33927             else
33928                 if(f & std::ios_base::left)
33929                     n_after = n;
33930                 else
33931                     n_before = n;
33932
33933             if(n_before) res.append(static_cast<size_type>(n_before), fill_char);
33934             if(prefix_space)
33935               res.append(1, prefix_space);
33936             if (size)
33937               res.append(beg, size);
33938             if(n_after) res.append(static_cast<size_type>(n_after), fill_char);
33939         }
33940     }
33941 # 89 "./boost/format/feed_args.hpp"
33942     template< class Ch, class Tr, class T> inline
33943     void put_head (::std:: basic_ostream<Ch, Tr> &, const T& ) {
33944     }
33945
33946     template< class Ch, class Tr, class T> inline
33947     void put_head( ::std:: basic_ostream<Ch, Tr> & os, const group1<T>& x ) {
33948         os << group_head(x.a1_);
33949     }
33950
33951     template< class Ch, class Tr, class T> inline
33952     void put_last( ::std:: basic_ostream<Ch, Tr> & os, const T& x ) {
33953         os << x ;
33954     }
33955
33956     template< class Ch, class Tr, class T> inline
33957     void put_last( ::std:: basic_ostream<Ch, Tr> & os, const group1<T>& x ) {
33958         os << group_last(x.a1_);
33959     }
33960
33961
33962     template< class Ch, class Tr, class T> inline
33963     void put_head( ::std:: basic_ostream<Ch, Tr> &, T& ) {
33964     }
33965
33966     template< class Ch, class Tr, class T> inline
33967     void put_last( ::std:: basic_ostream<Ch, Tr> & os, T& x) {
33968         os << x ;
33969     }
33970
33971
33972
33973
33974     template< class Ch, class Tr, class Alloc, class T>
33975     void put( T x,
33976               const format_item<Ch, Tr, Alloc>& specs,
33977               typename basic_format<Ch, Tr, Alloc>::string_type& res,
33978               typename basic_format<Ch, Tr, Alloc>::internal_streambuf_t & buf,
33979               io::detail::locale_t *loc_p = __null)
33980     {
33981 # 138 "./boost/format/feed_args.hpp"
33982         typedef typename basic_format<Ch, Tr, Alloc>::string_type string_type;
33983         typedef typename basic_format<Ch, Tr, Alloc>::format_item_t format_item_t;
33984         typedef typename string_type::size_type size_type;
33985
33986         basic_oaltstringstream<Ch, Tr, Alloc> oss( &buf);
33987         specs.fmtstate_.apply_on(oss, loc_p);
33988
33989
33990         put_head( oss, x );
33991
33992
33993
33994         const std::ios_base::fmtflags fl=oss.flags();
33995         const bool internal = (fl & std::ios_base::internal) != 0;
33996         const std::streamsize w = oss.width();
33997         const bool two_stepped_padding= internal && (w!=0);
33998
33999         res.resize(0);
34000         if(! two_stepped_padding) {
34001             if(w>0)
34002                 oss.width(0);
34003             put_last( oss, x);
34004             const Ch * res_beg = buf.pbase();
34005             Ch prefix_space = 0;
34006             if(specs.pad_scheme_ & format_item_t::spacepad)
34007                 if(buf.pcount()== 0 ||
34008                    (res_beg[0] !=oss.widen('+') && res_beg[0] !=oss.widen('-') ))
34009                     prefix_space = oss.widen(' ');
34010             size_type res_size = (std::min)(
34011                 static_cast<size_type>(specs.truncate_ - !!prefix_space),
34012                 buf.pcount() );
34013             mk_str(res, res_beg, res_size, w, oss.fill(), fl,
34014                    prefix_space, (specs.pad_scheme_ & format_item_t::centered) !=0 );
34015         }
34016         else {
34017
34018
34019
34020             put_last( oss, x);
34021             const Ch * res_beg = buf.pbase();
34022             size_type res_size = buf.pcount();
34023             bool prefix_space=false;
34024             if(specs.pad_scheme_ & format_item_t::spacepad)
34025                 if(buf.pcount()== 0 ||
34026                    (res_beg[0] !=oss.widen('+') && res_beg[0] !=oss.widen('-') ))
34027                     prefix_space = true;
34028             if(res_size == static_cast<size_type>(w) && w<=specs.truncate_ && !prefix_space) {
34029
34030                 res.assign(res_beg, res_size);
34031             }
34032             else {
34033
34034
34035
34036                 res.assign(res_beg, res_size);
34037                 res_beg=__null;
34038
34039
34040                 buf.clear_buffer();
34041                 basic_oaltstringstream<Ch, Tr, Alloc> oss2( &buf);
34042                 specs.fmtstate_.apply_on(oss2, loc_p);
34043                 put_head( oss2, x );
34044
34045                 oss2.width(0);
34046                 if(prefix_space)
34047                     oss2 << ' ';
34048                 put_last(oss2, x );
34049                 if(buf.pcount()==0 && specs.pad_scheme_ & format_item_t::spacepad) {
34050                     prefix_space =true;
34051                     oss2 << ' ';
34052                 }
34053
34054                 const Ch * tmp_beg = buf.pbase();
34055                 size_type tmp_size = (std::min)(static_cast<size_type>(specs.truncate_),
34056                                                 buf.pcount() );
34057
34058
34059                 if(static_cast<size_type>(w) <= tmp_size) {
34060
34061                         res.assign(tmp_beg, tmp_size);
34062                 }
34063                 else {
34064
34065                     size_type sz = (std::min)(res_size + (prefix_space ? 1 : 0), tmp_size);
34066                     size_type i = prefix_space;
34067                     for(; i<sz && tmp_beg[i] == res[i - (prefix_space ? 1 : 0)]; ++i) {}
34068                     if(i>=tmp_size) i=prefix_space;
34069                     res.assign(tmp_beg, i);
34070                                         std::streamsize d = w - static_cast<std::streamsize>(tmp_size);
34071                                         (static_cast<void> ((d>0) ? 0 : (__assert ("d>0", "./boost/format/feed_args.hpp", 227, __PRETTY_FUNCTION__), 0)));
34072                     res.append(static_cast<size_type>( d ), oss2.fill());
34073                     res.append(tmp_beg+i, tmp_size-i);
34074                     (static_cast<void> ((i+(tmp_size-i)+(std::max)(d,(std::streamsize)0) == static_cast<size_type>(w)) ? 0 : (__assert ("i+(tmp_size-i)+(std::max)(d,(std::streamsize)0) == static_cast<size_type>(w)", "./boost/format/feed_args.hpp", 231, __PRETTY_FUNCTION__), 0)));
34075
34076                     (static_cast<void> ((res.size() == static_cast<size_type>(w)) ? 0 : (__assert ("res.size() == static_cast<size_type>(w)", "./boost/format/feed_args.hpp", 232, __PRETTY_FUNCTION__), 0)));
34077                 }
34078             }
34079         }
34080         buf.clear_buffer();
34081
34082
34083
34084     }
34085
34086
34087     template< class Ch, class Tr, class Alloc, class T>
34088     void distribute (basic_format<Ch,Tr, Alloc>& self, T x) {
34089
34090         if(self.cur_arg_ >= self.num_args_) {
34091             if( self.exceptions() & too_many_args_bit )
34092                 boost::throw_exception(too_many_args(self.cur_arg_, self.num_args_));
34093             else return;
34094         }
34095         for(unsigned long i=0; i < self.items_.size(); ++i) {
34096             if(self.items_[i].argN_ == self.cur_arg_) {
34097                 put<Ch, Tr, Alloc, T> (x, self.items_[i], self.items_[i].res_,
34098                                 self.buf_, boost::get_pointer(self.loc_) );
34099             }
34100         }
34101     }
34102
34103     template<class Ch, class Tr, class Alloc, class T>
34104     basic_format<Ch, Tr, Alloc>&
34105     feed (basic_format<Ch,Tr, Alloc>& self, T x) {
34106         if(self.dumped_) self.clear();
34107         distribute<Ch, Tr, Alloc, T> (self, x);
34108         ++self.cur_arg_;
34109         if(self.bound_.size() != 0) {
34110                 while( self.cur_arg_ < self.num_args_ && self.bound_[self.cur_arg_] )
34111                     ++self.cur_arg_;
34112         }
34113         return self;
34114     }
34115
34116 }
34117 }
34118 }
34119 # 50 "./boost/format.hpp" 2
34120 # 1 "./boost/format/parsing.hpp" 1
34121 # 21 "./boost/format/parsing.hpp"
34122 # 1 "./boost/assert.hpp" 1
34123 # 36 "./boost/assert.hpp"
34124 # 1 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 1 3 4
34125 # 51 "/usr/local/src/blackfin/toolchains/20080521/bfin-linux-uclibc/bfin-linux-uclibc/runtime/usr/include/assert.h" 3 4
34126 extern "C" {
34127
34128
34129 extern void __assert (const char *, const char *, int, const char *);
34130
34131 }
34132 # 37 "./boost/assert.hpp" 2
34133 # 22 "./boost/format/parsing.hpp" 2
34134
34135
34136 namespace boost {
34137 namespace io {
34138 namespace detail {
34139 # 35 "./boost/format/parsing.hpp"
34140     template<class T>
34141     const T& const_or_not(const T& x) {
34142         return x;
34143     }
34144
34145
34146     template<class Ch, class Facet> inline
34147     char wrap_narrow(const Facet& fac, Ch c, char deflt) {
34148         return const_or_not(fac).narrow(c, deflt);
34149     }
34150
34151     template<class Ch, class Facet> inline
34152     bool wrap_isdigit(const Facet& fac, Ch c) {
34153
34154         return fac.is(std::ctype<Ch>::digit, c);
34155
34156
34157
34158
34159     }
34160
34161     template<class Iter, class Facet>
34162     Iter wrap_scan_notdigit(const Facet & fac, Iter beg, Iter end) {
34163         using namespace std;
34164         for( ; beg!=end && wrap_isdigit(fac, *beg); ++beg) ;
34165         return beg;
34166     }
34167
34168
34169
34170
34171
34172
34173     template<class Res, class Iter, class Facet>
34174     Iter str2int (const Iter & start, const Iter & last, Res & res,
34175                  const Facet& fac)
34176     {
34177         using namespace std;
34178         Iter it;
34179         res=0;
34180         for(it=start; it != last && wrap_isdigit(fac, *it); ++it ) {
34181             char cur_ch = wrap_narrow(fac, *it, 0);
34182             res *= 10;
34183             res += cur_ch - '0';
34184         }
34185         return it;
34186     }
34187
34188
34189
34190
34191
34192
34193     template<class Iter, class Facet>
34194     Iter skip_asterisk(Iter start, Iter last, const Facet& fac)
34195     {
34196         using namespace std;
34197         ++ start;
34198         start = wrap_scan_notdigit(fac, start, last);
34199         if(start!=last && *start== const_or_not(fac).widen( '$') )
34200             ++start;
34201         return start;
34202     }
34203
34204
34205
34206
34207
34208     inline void maybe_throw_exception(unsigned char exceptions,
34209                                       std::size_t pos, std::size_t size)
34210     {
34211         if(exceptions & io::bad_format_string_bit)
34212             boost::throw_exception(io::bad_format_string(pos, size) );
34213     }
34214 # 121 "./boost/format/parsing.hpp"
34215     template<class Ch, class Tr, class Alloc, class Iter, class Facet>
34216     bool parse_printf_directive(Iter & start, const Iter& last,
34217                                 detail::format_item<Ch, Tr, Alloc> * fpar,
34218                                 const Facet& fac,
34219                                 std::size_t offset, unsigned char exceptions)
34220     {
34221         typedef typename basic_format<Ch, Tr, Alloc>::format_item_t format_item_t;
34222
34223         fpar->argN_ = format_item_t::argN_no_posit;
34224         bool precision_set = false;
34225         bool in_brackets=false;
34226         Iter start0 = start;
34227         std::size_t fstring_size = last-start0+offset;
34228
34229         if(start>= last) {
34230                 maybe_throw_exception(exceptions, start-start0 + offset, fstring_size);
34231                 return false;
34232         }
34233
34234         if(*start== const_or_not(fac).widen( '|')) {
34235             in_brackets=true;
34236             if( ++start >= last ) {
34237                 maybe_throw_exception(exceptions, start-start0 + offset, fstring_size);
34238                 return false;
34239             }
34240         }
34241
34242
34243         if(*start== const_or_not(fac).widen( '0'))
34244             goto parse_flags;
34245
34246
34247         if(wrap_isdigit(fac, *start)) {
34248             int n;
34249             start = str2int(start, last, n, fac);
34250             if( start >= last ) {
34251                 maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34252                 return false;
34253             }
34254
34255
34256             if( *start == const_or_not(fac).widen( '%') ) {
34257                 fpar->argN_ = n-1;
34258                 ++start;
34259                 if( in_brackets)
34260                     maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34261
34262                 else
34263                     return true;
34264             }
34265
34266             if ( *start== const_or_not(fac).widen( '$') ) {
34267                 fpar->argN_ = n-1;
34268                 ++start;
34269             }
34270             else {
34271
34272                 fpar->fmtstate_.width_ = n;
34273                 fpar->argN_ = format_item_t::argN_no_posit;
34274                 goto parse_precision;
34275             }
34276         }
34277
34278       parse_flags:
34279
34280         while ( start != last) {
34281
34282             switch ( wrap_narrow(fac, *start, 0)) {
34283             case '\'' : break;
34284             case 'l':
34285             case 'h':
34286                 break;
34287             case '-':
34288                 fpar->fmtstate_.flags_ |= std::ios_base::left;
34289                 break;
34290             case '=':
34291                 fpar->pad_scheme_ |= format_item_t::centered;
34292                 break;
34293             case '_':
34294                 fpar->fmtstate_.flags_ |= std::ios_base::internal;
34295                 break;
34296             case ' ':
34297                 fpar->pad_scheme_ |= format_item_t::spacepad;
34298                 break;
34299             case '+':
34300                 fpar->fmtstate_.flags_ |= std::ios_base::showpos;
34301                 break;
34302             case '0':
34303                 fpar->pad_scheme_ |= format_item_t::zeropad;
34304
34305
34306                 break;
34307             case '#':
34308                 fpar->fmtstate_.flags_ |= std::ios_base::showpoint | std::ios_base::showbase;
34309                 break;
34310             default:
34311                 goto parse_width;
34312             }
34313             ++start;
34314         }
34315
34316         if( start>=last) {
34317             maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34318             return true;
34319         }
34320       parse_width:
34321
34322
34323         if(*start == const_or_not(fac).widen( '*') )
34324             start = skip_asterisk(start, last, fac);
34325         if(start!=last && wrap_isdigit(fac, *start))
34326             start = str2int(start, last, fpar->fmtstate_.width_, fac);
34327
34328       parse_precision:
34329         if( start>= last) {
34330             maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34331             return true;
34332         }
34333
34334         if (*start== const_or_not(fac).widen( '.')) {
34335             ++start;
34336             if(start != last && *start == const_or_not(fac).widen( '*') )
34337                 start = skip_asterisk(start, last, fac);
34338             if(start != last && wrap_isdigit(fac, *start)) {
34339                 start = str2int(start, last, fpar->fmtstate_.precision_, fac);
34340                 precision_set = true;
34341             }
34342             else
34343                 fpar->fmtstate_.precision_ =0;
34344         }
34345
34346
34347         while( start != last && ( *start== const_or_not(fac).widen( 'l')
34348                                   || *start== const_or_not(fac).widen( 'L')
34349                                   || *start== const_or_not(fac).widen( 'h')) )
34350             ++start;
34351         if( start>=last) {
34352             maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34353             return true;
34354         }
34355
34356         if( in_brackets && *start== const_or_not(fac).widen( '|') ) {
34357             ++start;
34358             return true;
34359         }
34360         switch ( wrap_narrow(fac, *start, 0) ) {
34361         case 'X':
34362             fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
34363         case 'p':
34364         case 'x':
34365             fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
34366             fpar->fmtstate_.flags_ |= std::ios_base::hex;
34367             break;
34368
34369         case 'o':
34370             fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
34371             fpar->fmtstate_.flags_ |= std::ios_base::oct;
34372             break;
34373
34374         case 'E':
34375             fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
34376         case 'e':
34377             fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
34378             fpar->fmtstate_.flags_ |= std::ios_base::scientific;
34379
34380             fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
34381             fpar->fmtstate_.flags_ |= std::ios_base::dec;
34382             break;
34383
34384         case 'f':
34385             fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
34386             fpar->fmtstate_.flags_ |= std::ios_base::fixed;
34387         case 'u':
34388         case 'd':
34389         case 'i':
34390             fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
34391             fpar->fmtstate_.flags_ |= std::ios_base::dec;
34392             break;
34393
34394         case 'T':
34395             ++start;
34396             if( start >= last)
34397                 maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34398             else
34399                 fpar->fmtstate_.fill_ = *start;
34400             fpar->pad_scheme_ |= format_item_t::tabulation;
34401             fpar->argN_ = format_item_t::argN_tabulation;
34402             break;
34403         case 't':
34404             fpar->fmtstate_.fill_ = const_or_not(fac).widen( ' ');
34405             fpar->pad_scheme_ |= format_item_t::tabulation;
34406             fpar->argN_ = format_item_t::argN_tabulation;
34407             break;
34408
34409         case 'G':
34410             fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
34411             break;
34412         case 'g':
34413             fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
34414             fpar->fmtstate_.flags_ |= std::ios_base::dec;
34415
34416
34417             fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
34418             break;
34419
34420         case 'C':
34421         case 'c':
34422             fpar->truncate_ = 1;
34423             break;
34424         case 'S':
34425         case 's':
34426             if(precision_set)
34427                 fpar->truncate_ = fpar->fmtstate_.precision_;
34428             fpar->fmtstate_.precision_ = 6;
34429             break;
34430         case 'n' :
34431             fpar->argN_ = format_item_t::argN_ignored;
34432             break;
34433         default:
34434             maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34435         }
34436         ++start;
34437
34438         if( in_brackets ) {
34439             if( start != last && *start== const_or_not(fac).widen( '|') ) {
34440                 ++start;
34441                 return true;
34442             }
34443             else maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
34444         }
34445         return true;
34446     }
34447
34448
34449     template<class String, class Facet>
34450     int upper_bound_from_fstring(const String& buf,
34451                                  const typename String::value_type arg_mark,
34452                                  const Facet& fac,
34453                                  unsigned char exceptions)
34454     {
34455
34456
34457         using namespace boost::io;
34458         typename String::size_type i1=0;
34459         int num_items=0;
34460         while( (i1=buf.find(arg_mark,i1)) != String::npos ) {
34461             if( i1+1 >= buf.size() ) {
34462                 if(exceptions & bad_format_string_bit)
34463                     boost::throw_exception(bad_format_string(i1, buf.size() ));
34464                 else {
34465                   ++num_items;
34466                   break;
34467                 }
34468             }
34469             if(buf[i1+1] == buf[i1] ) {
34470                 i1+=2; continue;
34471             }
34472
34473             ++i1;
34474
34475             i1 = detail::wrap_scan_notdigit(fac, buf.begin()+i1, buf.end()) - buf.begin();
34476             if( i1 < buf.size() && buf[i1] == arg_mark )
34477                 ++i1;
34478             ++num_items;
34479         }
34480         return num_items;
34481     }
34482     template<class String> inline
34483     void append_string(String& dst, const String& src,
34484                        const typename String::size_type beg,
34485                        const typename String::size_type end) {
34486
34487         dst.append(src.begin()+beg, src.begin()+end);
34488
34489
34490
34491     }
34492
34493 }
34494 }
34495
34496
34497
34498
34499
34500
34501     template<class Ch, class Tr, class Alloc>
34502     basic_format<Ch, Tr, Alloc>& basic_format<Ch, Tr, Alloc>::
34503     parse (const string_type& buf) {
34504
34505         using namespace std;
34506
34507         const std::ctype<Ch> & fac = std::use_facet< std::ctype<Ch> >(getloc());
34508
34509
34510
34511
34512
34513         const Ch arg_mark = io::detail::const_or_not(fac).widen( '%');
34514         bool ordered_args=true;
34515         int max_argN=-1;
34516
34517
34518         int num_items = io::detail::upper_bound_from_fstring(buf, arg_mark, fac, exceptions());
34519         make_or_reuse_data(num_items);
34520
34521
34522         num_items=0;
34523         typename string_type::size_type i0=0, i1=0;
34524         typename string_type::const_iterator it;
34525         bool special_things=false;
34526         int cur_item=0;
34527         while( (i1=buf.find(arg_mark,i1)) != string_type::npos ) {
34528             string_type & piece = (cur_item==0) ? prefix_ : items_[cur_item-1].appendix_;
34529             if( buf[i1+1] == buf[i1] ) {
34530                 io::detail::append_string(piece, buf, i0, i1+1);
34531                 i1+=2; i0=i1;
34532                 continue;
34533             }
34534             (static_cast<void> ((static_cast<unsigned int>(cur_item) < items_.size() || cur_item==0) ? 0 : (__assert ("static_cast<unsigned int>(cur_item) < items_.size() || cur_item==0", "./boost/format/parsing.hpp", 440, __PRETTY_FUNCTION__), 0)));
34535
34536             if(i1!=i0) {
34537                 io::detail::append_string(piece, buf, i0, i1);
34538                 i0=i1;
34539             }
34540             ++i1;
34541             it = buf.begin()+i1;
34542             bool parse_ok = io::detail::parse_printf_directive(
34543                 it, buf.end(), &items_[cur_item], fac, i1, exceptions());
34544             i1 = it - buf.begin();
34545             if( ! parse_ok )
34546                 continue;
34547             i0=i1;
34548             items_[cur_item].compute_states();
34549
34550             int argN=items_[cur_item].argN_;
34551             if(argN == format_item_t::argN_ignored)
34552                 continue;
34553             if(argN ==format_item_t::argN_no_posit)
34554                 ordered_args=false;
34555             else if(argN == format_item_t::argN_tabulation) special_things=true;
34556             else if(argN > max_argN) max_argN = argN;
34557             ++num_items;
34558             ++cur_item;
34559         }
34560         (static_cast<void> ((cur_item == num_items) ? 0 : (__assert ("cur_item == num_items", "./boost/format/parsing.hpp", 466, __PRETTY_FUNCTION__), 0)));
34561
34562
34563         {
34564             string_type & piece = (cur_item==0) ? prefix_ : items_[cur_item-1].appendix_;
34565             io::detail::append_string(piece, buf, i0, buf.size());
34566         }
34567
34568         if( !ordered_args) {
34569             if(max_argN >= 0 ) {
34570                 if(exceptions() & io::bad_format_string_bit)
34571                     boost::throw_exception(io::bad_format_string(max_argN, 0));
34572
34573             }
34574
34575             int non_ordered_items = 0;
34576             for(int i=0; i< num_items; ++i)
34577                 if(items_[i].argN_ == format_item_t::argN_no_posit) {
34578                     items_[i].argN_ = non_ordered_items;
34579                     ++non_ordered_items;
34580                 }
34581             max_argN = non_ordered_items-1;
34582         }
34583
34584
34585         items_.resize(num_items, format_item_t(io::detail::const_or_not(fac).widen( ' ')) );
34586
34587         if(special_things) style_ |= special_needs;
34588         num_args_ = max_argN + 1;
34589         if(ordered_args) style_ |= ordered;
34590         else style_ &= ~ordered;
34591         return *this;
34592     }
34593
34594 }
34595 # 51 "./boost/format.hpp" 2
34596
34597
34598 # 1 "./boost/format/free_funcs.hpp" 1
34599 # 19 "./boost/format/free_funcs.hpp"
34600 namespace boost {
34601
34602     template<class Ch, class Tr, class Alloc> inline
34603     std::basic_string<Ch, Tr, Alloc> str(const basic_format<Ch, Tr, Alloc>& f) {
34604
34605         return f.str();
34606     }
34607     namespace io {
34608          using ::boost::str;
34609     }
34610
34611
34612         template<class Ch, class Tr, class Alloc>
34613         std::basic_ostream<Ch, Tr> &
34614         operator<<( std::basic_ostream<Ch, Tr> & os,
34615                     const basic_format<Ch, Tr, Alloc>& f)
34616
34617
34618
34619
34620
34621
34622
34623     {
34624         typedef boost::basic_format<Ch, Tr, Alloc> format_t;
34625         if(f.items_.size()==0)
34626             os << f.prefix_;
34627         else {
34628             if(f.cur_arg_ < f.num_args_)
34629                 if( f.exceptions() & io::too_few_args_bit )
34630
34631                     boost::throw_exception(io::too_few_args(f.cur_arg_, f.num_args_));
34632             if(f.style_ & format_t::special_needs)
34633                 os << f.str();
34634             else {
34635
34636                 os << f.prefix_;
34637                 for(unsigned long i=0; i<f.items_.size(); ++i) {
34638                     const typename format_t::format_item_t& item = f.items_[i];
34639                     os << item.res_;
34640                     os << item.appendix_;
34641                 }
34642             }
34643         }
34644         f.dumped_=true;
34645         return os;
34646     }
34647
34648 }
34649 # 54 "./boost/format.hpp" 2
34650
34651
34652
34653 # 1 "./boost/format/detail/unset_macros.hpp" 1
34654 # 58 "./boost/format.hpp" 2
34655 # 2 "test.cpp" 2
34656
34657 int main()
34658 {
34659        boost::format f("%d\n");
34660        f %-123;
34661        return 0;
34662 }