/[PAMELA software]/trieste/pamVMC/junk
ViewVC logotype

Contents of /trieste/pamVMC/junk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Wed Mar 4 12:51:04 2009 UTC (16 years ago) by pamelats
Branch: MAIN, pamVMC
CVS Tags: start, v0r00, HEAD
Changes since 1.1: +0 -0 lines
Error occurred while calculating annotation data.
Test pamVMC

1 # 1 "src/PamVMCCaloID.cxx"
2 # 1 "<built-in>"
3 # 1 "<command line>"
4 # 1 "src/PamVMCCaloID.cxx"
5 # 1 "include/PamVMCCaloID.h" 1
6
7
8
9 # 1 "include/PamVMCGeoID.h" 1
10
11
12 # 1 "/cern/ROOT/include/TString.h" 1
13 # 27 "/cern/ROOT/include/TString.h"
14 # 1 "/usr/include/string.h" 1 3 4
15 # 26 "/usr/include/string.h" 3 4
16 # 1 "/usr/include/features.h" 1 3 4
17 # 319 "/usr/include/features.h" 3 4
18 # 1 "/usr/include/sys/cdefs.h" 1 3 4
19 # 320 "/usr/include/features.h" 2 3 4
20 # 342 "/usr/include/features.h" 3 4
21 # 1 "/usr/include/gnu/stubs.h" 1 3 4
22 # 343 "/usr/include/features.h" 2 3 4
23 # 27 "/usr/include/string.h" 2 3 4
24
25 extern "C" {
26
27
28
29
30 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
31 # 213 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 3 4
32 typedef unsigned int size_t;
33 # 34 "/usr/include/string.h" 2 3 4
34
35
36
37
38 extern void *memcpy (void *__restrict __dest,
39 __const void *__restrict __src, size_t __n)
40 throw () __attribute__ ((__nonnull__ (1, 2)));
41
42
43 extern void *memmove (void *__dest, __const void *__src, size_t __n)
44 throw () __attribute__ ((__nonnull__ (1, 2)));
45
46
47
48
49
50
51 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
52 int __c, size_t __n)
53 throw () __attribute__ ((__nonnull__ (1, 2)));
54
55
56
57
58
59 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
60
61
62 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
63 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
64
65
66 extern void *memchr (__const void *__s, int __c, size_t __n)
67 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
68
69
70
71
72
73 extern void *rawmemchr (__const void *__s, int __c)
74 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
75
76
77 extern void *memrchr (__const void *__s, int __c, size_t __n)
78 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
79
80
81
82
83
84 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
85 throw () __attribute__ ((__nonnull__ (1, 2)));
86
87 extern char *strncpy (char *__restrict __dest,
88 __const char *__restrict __src, size_t __n)
89 throw () __attribute__ ((__nonnull__ (1, 2)));
90
91
92 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
93 throw () __attribute__ ((__nonnull__ (1, 2)));
94
95 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
96 size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
97
98
99 extern int strcmp (__const char *__s1, __const char *__s2)
100 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
101
102 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
103 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
104
105
106 extern int strcoll (__const char *__s1, __const char *__s2)
107 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
108
109 extern size_t strxfrm (char *__restrict __dest,
110 __const char *__restrict __src, size_t __n)
111 throw () __attribute__ ((__nonnull__ (2)));
112
113
114
115
116
117
118 # 1 "/usr/include/xlocale.h" 1 3 4
119 # 28 "/usr/include/xlocale.h" 3 4
120 typedef struct __locale_struct
121 {
122
123 struct locale_data *__locales[13];
124
125
126 const unsigned short int *__ctype_b;
127 const int *__ctype_tolower;
128 const int *__ctype_toupper;
129
130
131 const char *__names[13];
132 } *__locale_t;
133 # 119 "/usr/include/string.h" 2 3 4
134
135
136 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
137 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
138
139 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
140 __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
141
142
143
144
145 extern char *strdup (__const char *__s)
146 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
147
148
149
150
151
152
153 extern char *strndup (__const char *__string, size_t __n)
154 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
155 # 165 "/usr/include/string.h" 3 4
156
157
158 extern char *strchr (__const char *__s, int __c)
159 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
160
161 extern char *strrchr (__const char *__s, int __c)
162 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
163
164
165
166
167
168 extern char *strchrnul (__const char *__s, int __c)
169 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
170
171
172
173
174
175 extern size_t strcspn (__const char *__s, __const char *__reject)
176 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
177
178
179 extern size_t strspn (__const char *__s, __const char *__accept)
180 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
181
182 extern char *strpbrk (__const char *__s, __const char *__accept)
183 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
184
185 extern char *strstr (__const char *__haystack, __const char *__needle)
186 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
187
188
189
190 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
191 throw () __attribute__ ((__nonnull__ (2)));
192
193
194
195
196 extern char *__strtok_r (char *__restrict __s,
197 __const char *__restrict __delim,
198 char **__restrict __save_ptr)
199 throw () __attribute__ ((__nonnull__ (2, 3)));
200
201 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
202 char **__restrict __save_ptr)
203 throw () __attribute__ ((__nonnull__ (2, 3)));
204
205
206
207
208 extern char *strcasestr (__const char *__haystack, __const char *__needle)
209 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
210
211
212
213
214
215
216 extern void *memmem (__const void *__haystack, size_t __haystacklen,
217 __const void *__needle, size_t __needlelen)
218 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
219
220
221
222 extern void *__mempcpy (void *__restrict __dest,
223 __const void *__restrict __src, size_t __n)
224 throw () __attribute__ ((__nonnull__ (1, 2)));
225 extern void *mempcpy (void *__restrict __dest,
226 __const void *__restrict __src, size_t __n)
227 throw () __attribute__ ((__nonnull__ (1, 2)));
228
229
230
231
232
233 extern size_t strlen (__const char *__s)
234 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
235
236
237
238
239
240 extern size_t strnlen (__const char *__string, size_t __maxlen)
241 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
242
243
244
245
246
247 extern char *strerror (int __errnum) throw ();
248
249 # 281 "/usr/include/string.h" 3 4
250 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
251 throw () __attribute__ ((__nonnull__ (2)));
252
253
254
255
256
257 extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
258
259
260
261 extern void bcopy (__const void *__src, void *__dest, size_t __n)
262 throw () __attribute__ ((__nonnull__ (1, 2)));
263
264
265 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
266
267
268 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
269 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
270
271
272 extern char *index (__const char *__s, int __c)
273 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
274
275
276 extern char *rindex (__const char *__s, int __c)
277 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
278
279
280
281 extern int ffs (int __i) throw () __attribute__ ((__const__));
282
283
284
285
286 extern int ffsl (long int __l) throw () __attribute__ ((__const__));
287
288 __extension__ extern int ffsll (long long int __ll)
289 throw () __attribute__ ((__const__));
290
291
292
293
294 extern int strcasecmp (__const char *__s1, __const char *__s2)
295 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
296
297
298 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
299 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
300
301
302
303
304
305 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
306 __locale_t __loc)
307 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
308
309 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
310 size_t __n, __locale_t __loc)
311 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
312
313
314
315
316
317 extern char *strsep (char **__restrict __stringp,
318 __const char *__restrict __delim)
319 throw () __attribute__ ((__nonnull__ (1, 2)));
320
321
322
323
324 extern int strverscmp (__const char *__s1, __const char *__s2)
325 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
326
327
328 extern char *strsignal (int __sig) throw ();
329
330
331 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
332 throw () __attribute__ ((__nonnull__ (1, 2)));
333 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
334 throw () __attribute__ ((__nonnull__ (1, 2)));
335
336
337
338 extern char *__stpncpy (char *__restrict __dest,
339 __const char *__restrict __src, size_t __n)
340 throw () __attribute__ ((__nonnull__ (1, 2)));
341 extern char *stpncpy (char *__restrict __dest,
342 __const char *__restrict __src, size_t __n)
343 throw () __attribute__ ((__nonnull__ (1, 2)));
344
345
346 extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
347
348
349 extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
350
351
352
353
354
355
356 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
357 # 426 "/usr/include/string.h" 3 4
358 }
359 # 28 "/cern/ROOT/include/TString.h" 2
360 # 1 "/usr/include/stdio.h" 1 3 4
361 # 30 "/usr/include/stdio.h" 3 4
362 extern "C" {
363
364
365
366 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
367 # 35 "/usr/include/stdio.h" 2 3 4
368
369 # 1 "/usr/include/bits/types.h" 1 3 4
370 # 28 "/usr/include/bits/types.h" 3 4
371 # 1 "/usr/include/bits/wordsize.h" 1 3 4
372 # 29 "/usr/include/bits/types.h" 2 3 4
373
374
375 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
376 # 32 "/usr/include/bits/types.h" 2 3 4
377
378
379 typedef unsigned char __u_char;
380 typedef unsigned short int __u_short;
381 typedef unsigned int __u_int;
382 typedef unsigned long int __u_long;
383
384
385 typedef signed char __int8_t;
386 typedef unsigned char __uint8_t;
387 typedef signed short int __int16_t;
388 typedef unsigned short int __uint16_t;
389 typedef signed int __int32_t;
390 typedef unsigned int __uint32_t;
391
392
393
394
395 __extension__ typedef signed long long int __int64_t;
396 __extension__ typedef unsigned long long int __uint64_t;
397
398
399
400
401
402
403
404 __extension__ typedef long long int __quad_t;
405 __extension__ typedef unsigned long long int __u_quad_t;
406 # 129 "/usr/include/bits/types.h" 3 4
407 # 1 "/usr/include/bits/typesizes.h" 1 3 4
408 # 130 "/usr/include/bits/types.h" 2 3 4
409
410
411
412
413
414
415 __extension__ typedef __u_quad_t __dev_t;
416 __extension__ typedef unsigned int __uid_t;
417 __extension__ typedef unsigned int __gid_t;
418 __extension__ typedef unsigned long int __ino_t;
419 __extension__ typedef __u_quad_t __ino64_t;
420 __extension__ typedef unsigned int __mode_t;
421 __extension__ typedef unsigned int __nlink_t;
422 __extension__ typedef long int __off_t;
423 __extension__ typedef __quad_t __off64_t;
424 __extension__ typedef int __pid_t;
425 __extension__ typedef struct { int __val[2]; } __fsid_t;
426 __extension__ typedef long int __clock_t;
427 __extension__ typedef unsigned long int __rlim_t;
428 __extension__ typedef __u_quad_t __rlim64_t;
429 __extension__ typedef unsigned int __id_t;
430 __extension__ typedef long int __time_t;
431 __extension__ typedef unsigned int __useconds_t;
432 __extension__ typedef long int __suseconds_t;
433
434 __extension__ typedef int __daddr_t;
435 __extension__ typedef long int __swblk_t;
436 __extension__ typedef int __key_t;
437
438
439 __extension__ typedef int __clockid_t;
440
441
442 __extension__ typedef int __timer_t;
443
444
445 __extension__ typedef long int __blksize_t;
446
447
448
449
450 __extension__ typedef long int __blkcnt_t;
451 __extension__ typedef __quad_t __blkcnt64_t;
452
453
454 __extension__ typedef unsigned long int __fsblkcnt_t;
455 __extension__ typedef __u_quad_t __fsblkcnt64_t;
456
457
458 __extension__ typedef unsigned long int __fsfilcnt_t;
459 __extension__ typedef __u_quad_t __fsfilcnt64_t;
460
461 __extension__ typedef int __ssize_t;
462
463
464
465 typedef __off64_t __loff_t;
466 typedef __quad_t *__qaddr_t;
467 typedef char *__caddr_t;
468
469
470 __extension__ typedef int __intptr_t;
471
472
473 __extension__ typedef unsigned int __socklen_t;
474 # 37 "/usr/include/stdio.h" 2 3 4
475
476
477
478
479
480
481
482
483
484 typedef struct _IO_FILE FILE;
485
486
487
488
489
490 # 62 "/usr/include/stdio.h" 3 4
491 typedef struct _IO_FILE __FILE;
492 # 72 "/usr/include/stdio.h" 3 4
493 # 1 "/usr/include/libio.h" 1 3 4
494 # 32 "/usr/include/libio.h" 3 4
495 # 1 "/usr/include/_G_config.h" 1 3 4
496 # 14 "/usr/include/_G_config.h" 3 4
497 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
498 # 354 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 3 4
499 typedef unsigned int wint_t;
500 # 15 "/usr/include/_G_config.h" 2 3 4
501 # 24 "/usr/include/_G_config.h" 3 4
502 # 1 "/usr/include/wchar.h" 1 3 4
503 # 48 "/usr/include/wchar.h" 3 4
504 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
505 # 49 "/usr/include/wchar.h" 2 3 4
506
507 # 1 "/usr/include/bits/wchar.h" 1 3 4
508 # 51 "/usr/include/wchar.h" 2 3 4
509 # 76 "/usr/include/wchar.h" 3 4
510 typedef struct
511 {
512 int __count;
513 union
514 {
515 wint_t __wch;
516 char __wchb[4];
517 } __value;
518 } __mbstate_t;
519 # 25 "/usr/include/_G_config.h" 2 3 4
520
521 typedef struct
522 {
523 __off_t __pos;
524 __mbstate_t __state;
525 } _G_fpos_t;
526 typedef struct
527 {
528 __off64_t __pos;
529 __mbstate_t __state;
530 } _G_fpos64_t;
531 # 44 "/usr/include/_G_config.h" 3 4
532 # 1 "/usr/include/gconv.h" 1 3 4
533 # 28 "/usr/include/gconv.h" 3 4
534 # 1 "/usr/include/wchar.h" 1 3 4
535 # 48 "/usr/include/wchar.h" 3 4
536 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
537 # 49 "/usr/include/wchar.h" 2 3 4
538 # 29 "/usr/include/gconv.h" 2 3 4
539
540
541 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
542 # 32 "/usr/include/gconv.h" 2 3 4
543
544
545
546
547
548 enum
549 {
550 __GCONV_OK = 0,
551 __GCONV_NOCONV,
552 __GCONV_NODB,
553 __GCONV_NOMEM,
554
555 __GCONV_EMPTY_INPUT,
556 __GCONV_FULL_OUTPUT,
557 __GCONV_ILLEGAL_INPUT,
558 __GCONV_INCOMPLETE_INPUT,
559
560 __GCONV_ILLEGAL_DESCRIPTOR,
561 __GCONV_INTERNAL_ERROR
562 };
563
564
565
566 enum
567 {
568 __GCONV_IS_LAST = 0x0001,
569 __GCONV_IGNORE_ERRORS = 0x0002
570 };
571
572
573
574 struct __gconv_step;
575 struct __gconv_step_data;
576 struct __gconv_loaded_object;
577 struct __gconv_trans_data;
578
579
580
581 typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
582 __const unsigned char **, __const unsigned char *,
583 unsigned char **, size_t *, int, int);
584
585
586 typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
587
588
589 typedef int (*__gconv_init_fct) (struct __gconv_step *);
590 typedef void (*__gconv_end_fct) (struct __gconv_step *);
591
592
593
594 typedef int (*__gconv_trans_fct) (struct __gconv_step *,
595 struct __gconv_step_data *, void *,
596 __const unsigned char *,
597 __const unsigned char **,
598 __const unsigned char *, unsigned char **,
599 size_t *);
600
601
602 typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
603 __const unsigned char *,
604 unsigned char *, unsigned char *);
605
606
607 typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
608 size_t *);
609
610
611 typedef int (*__gconv_trans_init_fct) (void **, const char *);
612 typedef void (*__gconv_trans_end_fct) (void *);
613
614 struct __gconv_trans_data
615 {
616
617 __gconv_trans_fct __trans_fct;
618 __gconv_trans_context_fct __trans_context_fct;
619 __gconv_trans_end_fct __trans_end_fct;
620 void *__data;
621 struct __gconv_trans_data *__next;
622 };
623
624
625
626 struct __gconv_step
627 {
628 struct __gconv_loaded_object *__shlib_handle;
629 __const char *__modname;
630
631 int __counter;
632
633 char *__from_name;
634 char *__to_name;
635
636 __gconv_fct __fct;
637 __gconv_btowc_fct __btowc_fct;
638 __gconv_init_fct __init_fct;
639 __gconv_end_fct __end_fct;
640
641
642
643 int __min_needed_from;
644 int __max_needed_from;
645 int __min_needed_to;
646 int __max_needed_to;
647
648
649 int __stateful;
650
651 void *__data;
652 };
653
654
655
656 struct __gconv_step_data
657 {
658 unsigned char *__outbuf;
659 unsigned char *__outbufend;
660
661
662
663 int __flags;
664
665
666
667 int __invocation_counter;
668
669
670
671 int __internal_use;
672
673 __mbstate_t *__statep;
674 __mbstate_t __state;
675
676
677
678 struct __gconv_trans_data *__trans;
679 };
680
681
682
683 typedef struct __gconv_info
684 {
685 size_t __nsteps;
686 struct __gconv_step *__steps;
687 __extension__ struct __gconv_step_data __data [];
688 } *__gconv_t;
689 # 45 "/usr/include/_G_config.h" 2 3 4
690 typedef union
691 {
692 struct __gconv_info __cd;
693 struct
694 {
695 struct __gconv_info __cd;
696 struct __gconv_step_data __data;
697 } __combined;
698 } _G_iconv_t;
699
700 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
701 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
702 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
703 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
704 # 33 "/usr/include/libio.h" 2 3 4
705 # 53 "/usr/include/libio.h" 3 4
706 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 1 3 4
707 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 3 4
708 typedef __builtin_va_list __gnuc_va_list;
709 # 54 "/usr/include/libio.h" 2 3 4
710 # 166 "/usr/include/libio.h" 3 4
711 struct _IO_jump_t; struct _IO_FILE;
712 # 176 "/usr/include/libio.h" 3 4
713 typedef void _IO_lock_t;
714
715
716
717
718
719 struct _IO_marker {
720 struct _IO_marker *_next;
721 struct _IO_FILE *_sbuf;
722
723
724
725 int _pos;
726 # 199 "/usr/include/libio.h" 3 4
727 };
728
729
730 enum __codecvt_result
731 {
732 __codecvt_ok,
733 __codecvt_partial,
734 __codecvt_error,
735 __codecvt_noconv
736 };
737 # 267 "/usr/include/libio.h" 3 4
738 struct _IO_FILE {
739 int _flags;
740
741
742
743
744 char* _IO_read_ptr;
745 char* _IO_read_end;
746 char* _IO_read_base;
747 char* _IO_write_base;
748 char* _IO_write_ptr;
749 char* _IO_write_end;
750 char* _IO_buf_base;
751 char* _IO_buf_end;
752
753 char *_IO_save_base;
754 char *_IO_backup_base;
755 char *_IO_save_end;
756
757 struct _IO_marker *_markers;
758
759 struct _IO_FILE *_chain;
760
761 int _fileno;
762
763
764
765 int _flags2;
766
767 __off_t _old_offset;
768
769
770
771 unsigned short _cur_column;
772 signed char _vtable_offset;
773 char _shortbuf[1];
774
775
776
777 _IO_lock_t *_lock;
778 # 315 "/usr/include/libio.h" 3 4
779 __off64_t _offset;
780 # 324 "/usr/include/libio.h" 3 4
781 void *__pad1;
782 void *__pad2;
783 void *__pad3;
784 void *__pad4;
785 size_t __pad5;
786
787 int _mode;
788
789 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
790
791 };
792
793
794
795
796
797 struct _IO_FILE_plus;
798
799 extern struct _IO_FILE_plus _IO_2_1_stdin_;
800 extern struct _IO_FILE_plus _IO_2_1_stdout_;
801 extern struct _IO_FILE_plus _IO_2_1_stderr_;
802 # 360 "/usr/include/libio.h" 3 4
803 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
804
805
806
807
808
809
810
811 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
812 size_t __n);
813
814
815
816
817
818
819
820 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
821
822
823 typedef int __io_close_fn (void *__cookie);
824
825
826
827
828 typedef __io_read_fn cookie_read_function_t;
829 typedef __io_write_fn cookie_write_function_t;
830 typedef __io_seek_fn cookie_seek_function_t;
831 typedef __io_close_fn cookie_close_function_t;
832
833
834 typedef struct
835 {
836 __io_read_fn *read;
837 __io_write_fn *write;
838 __io_seek_fn *seek;
839 __io_close_fn *close;
840 } _IO_cookie_io_functions_t;
841 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
842
843 struct _IO_cookie_file;
844
845
846 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
847 void *__cookie, _IO_cookie_io_functions_t __fns);
848
849
850
851
852 extern "C" {
853
854
855 extern int __underflow (_IO_FILE *) throw ();
856 extern int __uflow (_IO_FILE *) throw ();
857 extern int __overflow (_IO_FILE *, int) throw ();
858 extern wint_t __wunderflow (_IO_FILE *) throw ();
859 extern wint_t __wuflow (_IO_FILE *) throw ();
860 extern wint_t __woverflow (_IO_FILE *, wint_t) throw ();
861 # 450 "/usr/include/libio.h" 3 4
862 extern int _IO_getc (_IO_FILE *__fp) throw ();
863 extern int _IO_putc (int __c, _IO_FILE *__fp) throw ();
864 extern int _IO_feof (_IO_FILE *__fp) throw ();
865 extern int _IO_ferror (_IO_FILE *__fp) throw ();
866
867 extern int _IO_peekc_locked (_IO_FILE *__fp) throw ();
868
869
870
871
872
873 extern void _IO_flockfile (_IO_FILE *) throw ();
874 extern void _IO_funlockfile (_IO_FILE *) throw ();
875 extern int _IO_ftrylockfile (_IO_FILE *) throw ();
876 # 480 "/usr/include/libio.h" 3 4
877 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
878 __gnuc_va_list, int *__restrict);
879 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
880 __gnuc_va_list);
881 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw ();
882 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw ();
883
884 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw ();
885 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw ();
886
887 extern void _IO_free_backup_area (_IO_FILE *) throw ();
888 # 538 "/usr/include/libio.h" 3 4
889 }
890 # 73 "/usr/include/stdio.h" 2 3 4
891
892
893
894
895 typedef __gnuc_va_list va_list;
896 # 86 "/usr/include/stdio.h" 3 4
897
898
899 typedef _G_fpos_t fpos_t;
900
901
902
903
904
905 typedef _G_fpos64_t fpos64_t;
906 # 138 "/usr/include/stdio.h" 3 4
907 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
908 # 139 "/usr/include/stdio.h" 2 3 4
909
910
911
912 extern struct _IO_FILE *stdin;
913 extern struct _IO_FILE *stdout;
914 extern struct _IO_FILE *stderr;
915
916
917
918
919
920
921
922
923
924 extern int remove (__const char *__filename) throw ();
925
926 extern int rename (__const char *__old, __const char *__new) throw ();
927
928
929
930
931
932
933
934
935
936 extern FILE *tmpfile (void);
937 # 176 "/usr/include/stdio.h" 3 4
938 extern FILE *tmpfile64 (void);
939
940
941
942 extern char *tmpnam (char *__s) throw ();
943
944
945
946
947
948 extern char *tmpnam_r (char *__s) throw ();
949 # 198 "/usr/include/stdio.h" 3 4
950 extern char *tempnam (__const char *__dir, __const char *__pfx)
951 throw () __attribute__ ((__malloc__));
952
953
954
955
956
957
958
959
960 extern int fclose (FILE *__stream);
961
962
963
964
965 extern int fflush (FILE *__stream);
966
967 # 223 "/usr/include/stdio.h" 3 4
968 extern int fflush_unlocked (FILE *__stream);
969 # 233 "/usr/include/stdio.h" 3 4
970 extern int fcloseall (void);
971
972
973
974
975
976
977
978
979
980 extern FILE *fopen (__const char *__restrict __filename,
981 __const char *__restrict __modes);
982
983
984
985
986 extern FILE *freopen (__const char *__restrict __filename,
987 __const char *__restrict __modes,
988 FILE *__restrict __stream);
989 # 264 "/usr/include/stdio.h" 3 4
990
991
992 extern FILE *fopen64 (__const char *__restrict __filename,
993 __const char *__restrict __modes);
994 extern FILE *freopen64 (__const char *__restrict __filename,
995 __const char *__restrict __modes,
996 FILE *__restrict __stream);
997
998
999
1000
1001 extern FILE *fdopen (int __fd, __const char *__modes) throw ();
1002
1003
1004
1005
1006
1007 extern FILE *fopencookie (void *__restrict __magic_cookie,
1008 __const char *__restrict __modes,
1009 _IO_cookie_io_functions_t __io_funcs) throw ();
1010
1011
1012 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw ();
1013
1014
1015
1016
1017 extern FILE *open_memstream (char **__restrict __bufloc,
1018 size_t *__restrict __sizeloc) throw ();
1019
1020
1021
1022
1023
1024
1025 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
1026
1027
1028
1029 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
1030 int __modes, size_t __n) throw ();
1031
1032
1033
1034
1035
1036 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
1037 size_t __size) throw ();
1038
1039
1040 extern void setlinebuf (FILE *__stream) throw ();
1041
1042
1043
1044
1045
1046
1047
1048
1049 extern int fprintf (FILE *__restrict __stream,
1050 __const char *__restrict __format, ...);
1051
1052
1053
1054
1055 extern int printf (__const char *__restrict __format, ...);
1056
1057 extern int sprintf (char *__restrict __s,
1058 __const char *__restrict __format, ...) throw ();
1059
1060
1061
1062
1063
1064 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
1065 __gnuc_va_list __arg);
1066
1067
1068
1069
1070 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
1071
1072 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
1073 __gnuc_va_list __arg) throw ();
1074
1075
1076
1077
1078
1079 extern int snprintf (char *__restrict __s, size_t __maxlen,
1080 __const char *__restrict __format, ...)
1081 throw () __attribute__ ((__format__ (__printf__, 3, 4)));
1082
1083 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
1084 __const char *__restrict __format, __gnuc_va_list __arg)
1085 throw () __attribute__ ((__format__ (__printf__, 3, 0)));
1086
1087
1088
1089
1090
1091
1092 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
1093 __gnuc_va_list __arg)
1094 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
1095 extern int __asprintf (char **__restrict __ptr,
1096 __const char *__restrict __fmt, ...)
1097 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1098 extern int asprintf (char **__restrict __ptr,
1099 __const char *__restrict __fmt, ...)
1100 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1101
1102
1103
1104
1105
1106
1107
1108 extern int vdprintf (int __fd, __const char *__restrict __fmt,
1109 __gnuc_va_list __arg)
1110 __attribute__ ((__format__ (__printf__, 2, 0)));
1111 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
1112 __attribute__ ((__format__ (__printf__, 2, 3)));
1113
1114
1115
1116
1117
1118
1119
1120
1121 extern int fscanf (FILE *__restrict __stream,
1122 __const char *__restrict __format, ...);
1123
1124
1125
1126
1127 extern int scanf (__const char *__restrict __format, ...);
1128
1129 extern int sscanf (__const char *__restrict __s,
1130 __const char *__restrict __format, ...) throw ();
1131
1132
1133
1134
1135
1136
1137
1138
1139 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
1140 __gnuc_va_list __arg)
1141 __attribute__ ((__format__ (__scanf__, 2, 0)));
1142
1143
1144
1145
1146
1147 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
1148 __attribute__ ((__format__ (__scanf__, 1, 0)));
1149
1150
1151 extern int vsscanf (__const char *__restrict __s,
1152 __const char *__restrict __format, __gnuc_va_list __arg)
1153 throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163 extern int fgetc (FILE *__stream);
1164 extern int getc (FILE *__stream);
1165
1166
1167
1168
1169
1170 extern int getchar (void);
1171
1172 # 456 "/usr/include/stdio.h" 3 4
1173 extern int getc_unlocked (FILE *__stream);
1174 extern int getchar_unlocked (void);
1175 # 467 "/usr/include/stdio.h" 3 4
1176 extern int fgetc_unlocked (FILE *__stream);
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188 extern int fputc (int __c, FILE *__stream);
1189 extern int putc (int __c, FILE *__stream);
1190
1191
1192
1193
1194
1195 extern int putchar (int __c);
1196
1197 # 500 "/usr/include/stdio.h" 3 4
1198 extern int fputc_unlocked (int __c, FILE *__stream);
1199
1200
1201
1202
1203
1204
1205
1206 extern int putc_unlocked (int __c, FILE *__stream);
1207 extern int putchar_unlocked (int __c);
1208
1209
1210
1211
1212
1213
1214 extern int getw (FILE *__stream);
1215
1216
1217 extern int putw (int __w, FILE *__stream);
1218
1219
1220
1221
1222
1223
1224
1225
1226 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream);
1227
1228
1229
1230
1231
1232
1233 extern char *gets (char *__s);
1234
1235 # 545 "/usr/include/stdio.h" 3 4
1236 extern char *fgets_unlocked (char *__restrict __s, int __n,
1237 FILE *__restrict __stream);
1238 # 561 "/usr/include/stdio.h" 3 4
1239 extern __ssize_t __getdelim (char **__restrict __lineptr,
1240 size_t *__restrict __n, int __delimiter,
1241 FILE *__restrict __stream);
1242 extern __ssize_t getdelim (char **__restrict __lineptr,
1243 size_t *__restrict __n, int __delimiter,
1244 FILE *__restrict __stream);
1245
1246
1247
1248
1249
1250
1251
1252 extern __ssize_t getline (char **__restrict __lineptr,
1253 size_t *__restrict __n,
1254 FILE *__restrict __stream);
1255
1256
1257
1258
1259
1260
1261
1262
1263 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
1264
1265
1266
1267
1268
1269 extern int puts (__const char *__s);
1270
1271
1272
1273
1274
1275
1276 extern int ungetc (int __c, FILE *__stream);
1277
1278
1279
1280
1281
1282
1283 extern size_t fread (void *__restrict __ptr, size_t __size,
1284 size_t __n, FILE *__restrict __stream);
1285
1286
1287
1288
1289 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
1290 size_t __n, FILE *__restrict __s);
1291
1292 # 622 "/usr/include/stdio.h" 3 4
1293 extern int fputs_unlocked (__const char *__restrict __s,
1294 FILE *__restrict __stream);
1295 # 633 "/usr/include/stdio.h" 3 4
1296 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
1297 size_t __n, FILE *__restrict __stream);
1298 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
1299 size_t __n, FILE *__restrict __stream);
1300
1301
1302
1303
1304
1305
1306
1307
1308 extern int fseek (FILE *__stream, long int __off, int __whence);
1309
1310
1311
1312
1313 extern long int ftell (FILE *__stream);
1314
1315
1316
1317
1318 extern void rewind (FILE *__stream);
1319
1320 # 669 "/usr/include/stdio.h" 3 4
1321 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
1322
1323
1324
1325
1326 extern __off_t ftello (FILE *__stream);
1327 # 688 "/usr/include/stdio.h" 3 4
1328
1329
1330
1331
1332
1333
1334 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1335
1336
1337
1338
1339 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1340 # 711 "/usr/include/stdio.h" 3 4
1341
1342
1343
1344 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1345 extern __off64_t ftello64 (FILE *__stream);
1346 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1347 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1348
1349
1350
1351
1352 extern void clearerr (FILE *__stream) throw ();
1353
1354 extern int feof (FILE *__stream) throw ();
1355
1356 extern int ferror (FILE *__stream) throw ();
1357
1358
1359
1360
1361 extern void clearerr_unlocked (FILE *__stream) throw ();
1362 extern int feof_unlocked (FILE *__stream) throw ();
1363 extern int ferror_unlocked (FILE *__stream) throw ();
1364
1365
1366
1367
1368
1369
1370
1371
1372 extern void perror (__const char *__s);
1373
1374
1375
1376
1377
1378
1379 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
1380 # 27 "/usr/include/bits/sys_errlist.h" 3 4
1381 extern int sys_nerr;
1382 extern __const char *__const sys_errlist[];
1383
1384
1385 extern int _sys_nerr;
1386 extern __const char *__const _sys_errlist[];
1387 # 750 "/usr/include/stdio.h" 2 3 4
1388
1389
1390
1391
1392 extern int fileno (FILE *__stream) throw ();
1393
1394
1395
1396
1397 extern int fileno_unlocked (FILE *__stream) throw ();
1398 # 769 "/usr/include/stdio.h" 3 4
1399 extern FILE *popen (__const char *__command, __const char *__modes);
1400
1401
1402
1403
1404
1405 extern int pclose (FILE *__stream);
1406
1407
1408
1409
1410
1411 extern char *ctermid (char *__s) throw ();
1412
1413
1414
1415
1416
1417 extern char *cuserid (char *__s);
1418
1419
1420
1421
1422 struct obstack;
1423
1424
1425 extern int obstack_printf (struct obstack *__restrict __obstack,
1426 __const char *__restrict __format, ...)
1427 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1428 extern int obstack_vprintf (struct obstack *__restrict __obstack,
1429 __const char *__restrict __format,
1430 __gnuc_va_list __args)
1431 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
1432
1433
1434
1435
1436
1437
1438
1439 extern void flockfile (FILE *__stream) throw ();
1440
1441
1442
1443 extern int ftrylockfile (FILE *__stream) throw ();
1444
1445
1446 extern void funlockfile (FILE *__stream) throw ();
1447 # 836 "/usr/include/stdio.h" 3 4
1448 }
1449 # 29 "/cern/ROOT/include/TString.h" 2
1450
1451
1452
1453 # 1 "/cern/ROOT/include/TRefCnt.h" 1
1454 # 25 "/cern/ROOT/include/TRefCnt.h"
1455 # 1 "/cern/ROOT/include/Rtypes.h" 1
1456 # 24 "/cern/ROOT/include/Rtypes.h"
1457 # 1 "/cern/ROOT/include/RConfig.h" 1
1458 # 23 "/cern/ROOT/include/RConfig.h"
1459 # 1 "/cern/ROOT/include/RVersion.h" 1
1460 # 24 "/cern/ROOT/include/RConfig.h" 2
1461 # 25 "/cern/ROOT/include/Rtypes.h" 2
1462
1463
1464 # 1 "/cern/ROOT/include/DllImport.h" 1
1465 # 28 "/cern/ROOT/include/Rtypes.h" 2
1466
1467
1468 # 1 "/cern/ROOT/include/Rtypeinfo.h" 1
1469 # 32 "/cern/ROOT/include/Rtypeinfo.h"
1470 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 1 3
1471 # 38 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 3
1472 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 1 3
1473 # 40 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1474 extern "C++" {
1475
1476 namespace std
1477 {
1478 # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1479 class exception
1480 {
1481 public:
1482 exception() throw() { }
1483 virtual ~exception() throw();
1484
1485
1486 virtual const char* what() const throw();
1487 };
1488
1489
1490
1491 class bad_exception : public exception
1492 {
1493 public:
1494 bad_exception() throw() { }
1495
1496
1497 virtual ~bad_exception() throw();
1498 };
1499
1500
1501 typedef void (*terminate_handler) ();
1502
1503 typedef void (*unexpected_handler) ();
1504
1505
1506 terminate_handler set_terminate(terminate_handler) throw();
1507
1508
1509 void terminate() __attribute__ ((__noreturn__));
1510
1511
1512 unexpected_handler set_unexpected(unexpected_handler) throw();
1513
1514
1515 void unexpected() __attribute__ ((__noreturn__));
1516 # 100 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1517 bool uncaught_exception() throw();
1518 }
1519
1520 namespace __gnu_cxx
1521 {
1522 # 115 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception" 3
1523 void __verbose_terminate_handler ();
1524 }
1525
1526 }
1527 # 39 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 2 3
1528
1529 extern "C++" {
1530
1531 namespace __cxxabiv1
1532 {
1533 class __class_type_info;
1534 }
1535 # 55 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 3
1536 namespace std
1537 {
1538
1539
1540
1541
1542
1543
1544 class type_info
1545 {
1546 public:
1547
1548
1549
1550
1551 virtual ~type_info();
1552
1553 private:
1554
1555 type_info& operator=(const type_info&);
1556 type_info(const type_info&);
1557
1558 protected:
1559 const char *__name;
1560
1561 protected:
1562 explicit type_info(const char *__n): __name(__n) { }
1563
1564 public:
1565
1566
1567
1568 const char* name() const
1569 { return __name; }
1570 # 101 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo" 3
1571 bool before(const type_info& __arg) const
1572 { return __name < __arg.__name; }
1573 bool operator==(const type_info& __arg) const
1574 { return __name == __arg.__name; }
1575
1576 bool operator!=(const type_info& __arg) const
1577 { return !operator==(__arg); }
1578
1579
1580 public:
1581
1582 virtual bool __is_pointer_p() const;
1583
1584 virtual bool __is_function_p() const;
1585
1586
1587
1588
1589
1590
1591
1592 virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
1593 unsigned __outer) const;
1594
1595
1596 virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
1597 void **__obj_ptr) const;
1598 };
1599
1600
1601
1602
1603
1604
1605 class bad_cast : public exception
1606 {
1607 public:
1608 bad_cast() throw() { }
1609
1610
1611 virtual ~bad_cast() throw();
1612 };
1613
1614
1615 class bad_typeid : public exception
1616 {
1617 public:
1618 bad_typeid () throw() { }
1619
1620
1621 virtual ~bad_typeid() throw();
1622 };
1623 }
1624
1625 }
1626 # 33 "/cern/ROOT/include/Rtypeinfo.h" 2
1627 using std::type_info;
1628 # 31 "/cern/ROOT/include/Rtypes.h" 2
1629 # 39 "/cern/ROOT/include/Rtypes.h"
1630 class TClass;
1631 class TBuffer;
1632 class TMemberInspector;
1633 class TObject;
1634 class TNamed;
1635 class TRootIOCtor;
1636
1637
1638
1639 typedef char Char_t;
1640 typedef unsigned char UChar_t;
1641 typedef short Short_t;
1642 typedef unsigned short UShort_t;
1643
1644
1645
1646
1647 typedef int Int_t;
1648 typedef unsigned int UInt_t;
1649
1650
1651
1652
1653
1654
1655 typedef int Seek_t;
1656 typedef long Long_t;
1657 typedef unsigned long ULong_t;
1658
1659 typedef float Float_t;
1660 typedef double Double_t;
1661 typedef double Double32_t;
1662 typedef char Text_t;
1663 typedef bool Bool_t;
1664 typedef unsigned char Byte_t;
1665 typedef short Version_t;
1666 typedef const char Option_t;
1667 typedef int Ssiz_t;
1668 typedef float Real_t;
1669
1670
1671
1672
1673 typedef long long Long64_t;
1674 typedef unsigned long long ULong64_t;
1675
1676 typedef double Axis_t;
1677 typedef double Stat_t;
1678
1679 typedef short Font_t;
1680 typedef short Style_t;
1681 typedef short Marker_t;
1682 typedef short Width_t;
1683 typedef short Color_t;
1684 typedef short SCoord_t;
1685 typedef double Coord_t;
1686 typedef float Angle_t;
1687 typedef float Size_t;
1688
1689 enum EColor { kWhite =0, kBlack =1, kGray=920
1690 ,kRed =632, kGreen =416, kBlue=600, kYellow=400, kMagenta=616, kCyan=432
1691 ,kOrange=800, kSpring=820, kTeal=840, kAzure =860, kViolet =880, kPink=900};
1692
1693
1694 class TClassStreamer;
1695 class TMemberStreamer;
1696 typedef void (*ClassStreamerFunc_t)(TBuffer&, void*);
1697 typedef void (*MemberStreamerFunc_t)(TBuffer&, void*, Int_t);
1698
1699
1700 class TVirtualCollectionProxy;
1701
1702 typedef void (*VoidFuncPtr_t)();
1703 # 120 "/cern/ROOT/include/Rtypes.h"
1704 const Bool_t kTRUE = true;
1705 const Bool_t kFALSE = false;
1706
1707 const Int_t kMaxUChar = 256;
1708 const Int_t kMaxChar = kMaxUChar >> 1;
1709 const Int_t kMinChar = -kMaxChar - 1;
1710
1711 const Int_t kMaxUShort = 65534;
1712 const Int_t kMaxShort = kMaxUShort >> 1;
1713 const Int_t kMinShort = -kMaxShort - 1;
1714
1715 const UInt_t kMaxUInt = UInt_t(~0);
1716 const Int_t kMaxInt = Int_t(kMaxUInt >> 1);
1717 const Int_t kMinInt = -kMaxInt - 1;
1718
1719 const ULong_t kMaxULong = ULong_t(~0);
1720 const Long_t kMaxLong = Long_t(kMaxULong >> 1);
1721 const Long_t kMinLong = -kMaxLong - 1;
1722
1723 const ULong64_t kMaxULong64 = ULong64_t(~0LL);
1724 const Long64_t kMaxLong64 = Long64_t(kMaxULong64 >> 1);
1725 const Long64_t kMinLong64 = -kMaxLong64 - 1;
1726
1727 const size_t kBitsPerByte = 8;
1728 const Ssiz_t kNPOS = ~(Ssiz_t)0;
1729 # 157 "/cern/ROOT/include/Rtypes.h"
1730 extern Int_t gDebug;
1731
1732
1733
1734
1735 typedef void (*ShowMembersFunc_t)(void *obj, TMemberInspector &R__insp, char *R__parent);
1736 class TVirtualIsAProxy;
1737 typedef TClass *(*IsAGlobalFunc_t)(const TClass*, const void *obj);
1738
1739
1740 template <class Tmpl> TBuffer &operator>>(TBuffer &buf, Tmpl *&obj);
1741 template <class Tmpl> TBuffer &operator<<(TBuffer &buf, const Tmpl *obj);
1742
1743
1744
1745
1746 namespace ROOT {
1747
1748 class TGenericClassInfo;
1749 typedef void *(*NewFunc_t)(void *);
1750 typedef void *(*NewArrFunc_t)(Long_t size, void *arena);
1751 typedef void (*DelFunc_t)(void *);
1752 typedef void (*DelArrFunc_t)(void *);
1753 typedef void (*DesFunc_t)(void *);
1754
1755 template <class RootClass> Short_t SetClassVersion(RootClass *);
1756
1757 extern TClass *CreateClass(const char *cname, Version_t id,
1758 const type_info &info, TVirtualIsAProxy *isa,
1759 ShowMembersFunc_t show,
1760 const char *dfil, const char *ifil,
1761 Int_t dl, Int_t il);
1762 extern void AddClass(const char *cname, Version_t id, const type_info &info,
1763 VoidFuncPtr_t dict, Int_t pragmabits);
1764 extern void RemoveClass(const char *cname);
1765 extern void ResetClassVersion(TClass*, const char*, Short_t);
1766
1767 extern TNamed *RegisterClassTemplate(const char *name,
1768 const char *file, Int_t line);
1769 # 208 "/cern/ROOT/include/Rtypes.h"
1770 class TInitBehavior {
1771
1772
1773
1774
1775 public:
1776 virtual ~TInitBehavior() { }
1777 virtual void Register(const char *cname, Version_t id, const type_info &info,
1778 VoidFuncPtr_t dict, Int_t pragmabits) const = 0;
1779 virtual void Unregister(const char *classname) const = 0;
1780 virtual TClass *CreateClass(const char *cname, Version_t id,
1781 const type_info &info, TVirtualIsAProxy *isa,
1782 ShowMembersFunc_t show,
1783 const char *dfil, const char *ifil,
1784 Int_t dl, Int_t il) const = 0;
1785 };
1786
1787 class TDefaultInitBehavior : public TInitBehavior {
1788 public:
1789 virtual void Register(const char *cname, Version_t id, const type_info &info,
1790 VoidFuncPtr_t dict, Int_t pragmabits) const {
1791 ROOT::AddClass(cname, id, info, dict, pragmabits);
1792 }
1793 virtual void Unregister(const char *classname) const {
1794 ROOT::RemoveClass(classname);
1795 }
1796 virtual TClass *CreateClass(const char *cname, Version_t id,
1797 const type_info &info, TVirtualIsAProxy *isa,
1798 ShowMembersFunc_t show,
1799 const char *dfil, const char *ifil,
1800 Int_t dl, Int_t il) const {
1801 return ROOT::CreateClass(cname, id, info, isa, show, dfil, ifil, dl, il);
1802 }
1803 };
1804
1805 const TInitBehavior *DefineBehavior(void * ,
1806 void * );
1807
1808 }
1809
1810
1811
1812 # 1 "/cern/ROOT/include/TGenericClassInfo.h" 1
1813 # 16 "/cern/ROOT/include/TGenericClassInfo.h"
1814 class TVirtualIsAProxy;
1815
1816 namespace ROOT {
1817
1818 class TCollectionProxyInfo;
1819
1820 class TGenericClassInfo {
1821
1822
1823
1824
1825 const TInitBehavior *fAction;
1826 TClass *fClass;
1827 const char *fClassName;
1828 const char *fDeclFileName;
1829 Int_t fDeclFileLine;
1830 VoidFuncPtr_t fDictionary;
1831 const type_info &fInfo;
1832 const char *fImplFileName;
1833 Int_t fImplFileLine;
1834 TVirtualIsAProxy *fIsA;
1835 void *fShowMembers;
1836 Int_t fVersion;
1837 NewFunc_t fNew;
1838 NewArrFunc_t fNewArray;
1839 DelFunc_t fDelete;
1840 DelArrFunc_t fDeleteArray;
1841 DesFunc_t fDestructor;
1842 TClassStreamer *fStreamer;
1843 TVirtualCollectionProxy *fCollectionProxy;
1844 Int_t fSizeof;
1845 TCollectionProxyInfo *fCollectionProxyInfo;
1846 TCollectionProxyInfo *fCollectionStreamerInfo;
1847
1848 public:
1849 TGenericClassInfo(const char *fullClassname,
1850 const char *declFileName, Int_t declFileLine,
1851 const type_info &info, const TInitBehavior *action,
1852 void *showmembers, VoidFuncPtr_t dictionary,
1853 TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
1854
1855 TGenericClassInfo(const char *fullClassname, Int_t version,
1856 const char *declFileName, Int_t declFileLine,
1857 const type_info &info, const TInitBehavior *action,
1858 void *showmembers, VoidFuncPtr_t dictionary,
1859 TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
1860
1861 TGenericClassInfo(const char *fullClassname, Int_t version,
1862 const char *declFileName, Int_t declFileLine,
1863 const type_info &info, const TInitBehavior *action,
1864 VoidFuncPtr_t dictionary,
1865 TVirtualIsAProxy *isa, Int_t pragmabits, Int_t sizof);
1866
1867 TGenericClassInfo(const char *fullClassname, Int_t version,
1868 const char *declFileName, Int_t declFileLine,
1869 const TInitBehavior *action,
1870 VoidFuncPtr_t dictionary, Int_t pragmabits);
1871
1872 void Init(Int_t pragmabits);
1873 ~TGenericClassInfo();
1874
1875 const TInitBehavior &GetAction() const;
1876 TClass *GetClass();
1877 const char *GetClassName() const;
1878 TCollectionProxyInfo *GetCollectionProxyInfo() const;
1879 TCollectionProxyInfo *GetCollectionStreamerInfo() const;
1880 const char *GetDeclFileName() const;
1881 Int_t GetDeclFileLine() const;
1882 DelFunc_t GetDelete() const;
1883 DelArrFunc_t GetDeleteArray() const;
1884 DesFunc_t GetDestructor() const;
1885 const char *GetImplFileName();
1886 Int_t GetImplFileLine();
1887 const type_info &GetInfo() const;
1888 TVirtualIsAProxy *GetIsA() const;
1889 NewFunc_t GetNew() const;
1890 NewArrFunc_t GetNewArray() const;
1891 void *GetShowMembers() const;
1892 Int_t GetVersion() const;
1893
1894 TClass *IsA(const void *obj);
1895
1896 Short_t AdoptStreamer(TClassStreamer*);
1897 Short_t AdoptCollectionProxy(TVirtualCollectionProxy*);
1898 void AdoptCollectionProxyInfo(TCollectionProxyInfo*);
1899 void AdoptCollectionStreamerInfo(TCollectionProxyInfo*);
1900 Int_t SetDeclFile(const char *file, Int_t line);
1901 void SetDelete(DelFunc_t deleteFunc);
1902 void SetDeleteArray(DelArrFunc_t deleteArrayFunc);
1903 void SetDestructor(DesFunc_t destructorFunc);
1904 void SetFromTemplate();
1905 Int_t SetImplFile(const char *file, Int_t line);
1906 void SetNew(NewFunc_t newFunc);
1907 void SetNewArray(NewArrFunc_t newArrayFunc);
1908 Short_t SetStreamer(ClassStreamerFunc_t);
1909 Short_t SetVersion(Short_t version);
1910
1911
1912 private:
1913 TGenericClassInfo(const TGenericClassInfo&);
1914 TGenericClassInfo& operator=(const TGenericClassInfo&);
1915
1916 private:
1917 TGenericClassInfo();
1918
1919 };
1920
1921 }
1922 # 251 "/cern/ROOT/include/Rtypes.h" 2
1923 # 26 "/cern/ROOT/include/TRefCnt.h" 2
1924
1925
1926
1927 class TRefCnt {
1928
1929 protected:
1930 UInt_t fRefs;
1931
1932 public:
1933 enum EReferenceFlag { kStaticInit };
1934
1935 TRefCnt(Int_t initRef = 0) : fRefs((UInt_t)initRef-1) { }
1936 TRefCnt(EReferenceFlag);
1937 virtual ~TRefCnt() { }
1938 UInt_t References() const { return fRefs+1; }
1939 void SetRefCount(UInt_t r) { fRefs = r-1; }
1940 void AddReference() { fRefs++; }
1941 UInt_t RemoveReference() { return fRefs--; }
1942 };
1943 # 33 "/cern/ROOT/include/TString.h" 2
1944
1945
1946
1947 # 1 "/cern/ROOT/include/Riosfwd.h" 1
1948 # 33 "/cern/ROOT/include/Riosfwd.h"
1949 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 1 3
1950 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 3
1951
1952 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 3
1953
1954 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 1 3
1955 # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 3
1956 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h" 1 3
1957 # 36 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 2 3
1958 # 57 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++config.h" 3
1959 namespace __gnu_debug_def { }
1960
1961 namespace __gnu_debug
1962 {
1963 using namespace __gnu_debug_def;
1964 }
1965 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
1966 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 1 3
1967 # 39 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 3
1968
1969 # 40 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 3
1970
1971 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 1 3
1972 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 3
1973
1974 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 3
1975
1976 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 1 3
1977 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 3
1978
1979 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 3
1980
1981 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
1982 # 151 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 3 4
1983 typedef int ptrdiff_t;
1984 # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef" 2 3
1985
1986 namespace std
1987 {
1988 using ::ptrdiff_t;
1989 using ::size_t;
1990 }
1991 # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 2 3
1992 # 77 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring" 3
1993 namespace std
1994 {
1995 using ::memcpy;
1996 using ::memmove;
1997 using ::strcpy;
1998 using ::strncpy;
1999 using ::strcat;
2000 using ::strncat;
2001 using ::memcmp;
2002 using ::strcmp;
2003 using ::strcoll;
2004 using ::strncmp;
2005 using ::strxfrm;
2006 using ::strcspn;
2007 using ::strspn;
2008 using ::strtok;
2009 using ::memset;
2010 using ::strerror;
2011 using ::strlen;
2012
2013 using ::memchr;
2014
2015 inline void*
2016 memchr(void* __p, int __c, size_t __n)
2017 { return memchr(const_cast<const void*>(__p), __c, __n); }
2018
2019 using ::strchr;
2020
2021 inline char*
2022 strchr(char* __s1, int __n)
2023 { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
2024
2025 using ::strpbrk;
2026
2027 inline char*
2028 strpbrk(char* __s1, const char* __s2)
2029 { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
2030
2031 using ::strrchr;
2032
2033 inline char*
2034 strrchr(char* __s1, int __n)
2035 { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
2036
2037 using ::strstr;
2038
2039 inline char*
2040 strstr(char* __s1, const char* __s2)
2041 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
2042 }
2043 # 42 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2044 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 1 3
2045 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2046
2047 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2048 # 97 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2049 namespace std
2050 {
2051 using ::FILE;
2052 using ::fpos_t;
2053
2054 using ::clearerr;
2055 using ::fclose;
2056 using ::feof;
2057 using ::ferror;
2058 using ::fflush;
2059 using ::fgetc;
2060 using ::fgetpos;
2061 using ::fgets;
2062 using ::fopen;
2063 using ::fprintf;
2064 using ::fputc;
2065 using ::fputs;
2066 using ::fread;
2067 using ::freopen;
2068 using ::fscanf;
2069 using ::fseek;
2070 using ::fsetpos;
2071 using ::ftell;
2072 using ::fwrite;
2073 using ::getc;
2074 using ::getchar;
2075 using ::gets;
2076 using ::perror;
2077 using ::printf;
2078 using ::putc;
2079 using ::putchar;
2080 using ::puts;
2081 using ::remove;
2082 using ::rename;
2083 using ::rewind;
2084 using ::scanf;
2085 using ::setbuf;
2086 using ::setvbuf;
2087 using ::sprintf;
2088 using ::sscanf;
2089 using ::tmpfile;
2090 using ::tmpnam;
2091 using ::ungetc;
2092 using ::vfprintf;
2093 using ::vprintf;
2094 using ::vsprintf;
2095 }
2096 # 153 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2097 namespace __gnu_cxx
2098 {
2099 # 167 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio" 3
2100 using ::snprintf;
2101 using ::vfscanf;
2102 using ::vscanf;
2103 using ::vsnprintf;
2104 using ::vsscanf;
2105
2106 }
2107
2108 namespace std
2109 {
2110 using __gnu_cxx::snprintf;
2111 using __gnu_cxx::vfscanf;
2112 using __gnu_cxx::vscanf;
2113 using __gnu_cxx::vsnprintf;
2114 using __gnu_cxx::vsscanf;
2115 }
2116 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2117 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 1 3
2118 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 3
2119
2120 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 3
2121
2122 # 1 "/usr/include/locale.h" 1 3 4
2123 # 29 "/usr/include/locale.h" 3 4
2124 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
2125 # 30 "/usr/include/locale.h" 2 3 4
2126 # 1 "/usr/include/bits/locale.h" 1 3 4
2127 # 27 "/usr/include/bits/locale.h" 3 4
2128 enum
2129 {
2130 __LC_CTYPE = 0,
2131 __LC_NUMERIC = 1,
2132 __LC_TIME = 2,
2133 __LC_COLLATE = 3,
2134 __LC_MONETARY = 4,
2135 __LC_MESSAGES = 5,
2136 __LC_ALL = 6,
2137 __LC_PAPER = 7,
2138 __LC_NAME = 8,
2139 __LC_ADDRESS = 9,
2140 __LC_TELEPHONE = 10,
2141 __LC_MEASUREMENT = 11,
2142 __LC_IDENTIFICATION = 12
2143 };
2144 # 31 "/usr/include/locale.h" 2 3 4
2145
2146 extern "C" {
2147 # 52 "/usr/include/locale.h" 3 4
2148 struct lconv
2149 {
2150
2151
2152 char *decimal_point;
2153 char *thousands_sep;
2154
2155
2156
2157
2158
2159 char *grouping;
2160
2161
2162
2163
2164
2165 char *int_curr_symbol;
2166 char *currency_symbol;
2167 char *mon_decimal_point;
2168 char *mon_thousands_sep;
2169 char *mon_grouping;
2170 char *positive_sign;
2171 char *negative_sign;
2172 char int_frac_digits;
2173 char frac_digits;
2174
2175 char p_cs_precedes;
2176
2177 char p_sep_by_space;
2178
2179 char n_cs_precedes;
2180
2181 char n_sep_by_space;
2182
2183
2184
2185
2186
2187
2188 char p_sign_posn;
2189 char n_sign_posn;
2190
2191
2192 char int_p_cs_precedes;
2193
2194 char int_p_sep_by_space;
2195
2196 char int_n_cs_precedes;
2197
2198 char int_n_sep_by_space;
2199
2200
2201
2202
2203
2204
2205 char int_p_sign_posn;
2206 char int_n_sign_posn;
2207 # 119 "/usr/include/locale.h" 3 4
2208 };
2209
2210
2211
2212
2213
2214 extern char *setlocale (int __category, __const char *__locale) throw ();
2215
2216
2217 extern struct lconv *localeconv (void) throw ();
2218
2219
2220 # 148 "/usr/include/locale.h" 3 4
2221 typedef __locale_t locale_t;
2222
2223
2224
2225
2226
2227 extern __locale_t newlocale (int __category_mask, __const char *__locale,
2228 __locale_t __base) throw ();
2229 # 189 "/usr/include/locale.h" 3 4
2230 extern __locale_t duplocale (__locale_t __dataset) throw ();
2231
2232
2233
2234 extern void freelocale (__locale_t __dataset) throw ();
2235
2236
2237
2238
2239
2240
2241 extern __locale_t uselocale (__locale_t __dataset) throw ();
2242
2243
2244
2245
2246
2247
2248
2249 }
2250 # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale" 2 3
2251
2252
2253
2254
2255
2256 namespace std
2257 {
2258 using ::lconv;
2259 using ::setlocale;
2260 using ::localeconv;
2261 }
2262 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2263 # 1 "/usr/include/langinfo.h" 1 3 4
2264 # 24 "/usr/include/langinfo.h" 3 4
2265 # 1 "/usr/include/nl_types.h" 1 3 4
2266 # 31 "/usr/include/nl_types.h" 3 4
2267 extern "C" {
2268
2269
2270 typedef void *nl_catd;
2271
2272
2273 typedef int nl_item;
2274
2275
2276
2277
2278
2279 extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
2280
2281
2282
2283 extern char *catgets (nl_catd __catalog, int __set, int __number,
2284 __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
2285
2286
2287 extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
2288
2289 }
2290 # 25 "/usr/include/langinfo.h" 2 3 4
2291
2292 # 1 "/usr/include/bits/locale.h" 1 3 4
2293 # 27 "/usr/include/langinfo.h" 2 3 4
2294
2295
2296 extern "C" {
2297 # 43 "/usr/include/langinfo.h" 3 4
2298 enum
2299 {
2300
2301
2302
2303 ABDAY_1 = (((__LC_TIME) << 16) | (0)),
2304
2305 ABDAY_2,
2306
2307 ABDAY_3,
2308
2309 ABDAY_4,
2310
2311 ABDAY_5,
2312
2313 ABDAY_6,
2314
2315 ABDAY_7,
2316
2317
2318
2319 DAY_1,
2320
2321 DAY_2,
2322
2323 DAY_3,
2324
2325 DAY_4,
2326
2327 DAY_5,
2328
2329 DAY_6,
2330
2331 DAY_7,
2332
2333
2334
2335 ABMON_1,
2336
2337 ABMON_2,
2338
2339 ABMON_3,
2340
2341 ABMON_4,
2342
2343 ABMON_5,
2344
2345 ABMON_6,
2346
2347 ABMON_7,
2348
2349 ABMON_8,
2350
2351 ABMON_9,
2352
2353 ABMON_10,
2354
2355 ABMON_11,
2356
2357 ABMON_12,
2358
2359
2360
2361 MON_1,
2362
2363 MON_2,
2364
2365 MON_3,
2366
2367 MON_4,
2368
2369 MON_5,
2370
2371 MON_6,
2372
2373 MON_7,
2374
2375 MON_8,
2376
2377 MON_9,
2378
2379 MON_10,
2380
2381 MON_11,
2382
2383 MON_12,
2384
2385
2386 AM_STR,
2387
2388 PM_STR,
2389
2390
2391 D_T_FMT,
2392
2393 D_FMT,
2394
2395 T_FMT,
2396
2397 T_FMT_AMPM,
2398
2399
2400 ERA,
2401
2402 __ERA_YEAR,
2403
2404
2405
2406 ERA_D_FMT,
2407
2408 ALT_DIGITS,
2409
2410 ERA_D_T_FMT,
2411
2412 ERA_T_FMT,
2413
2414
2415 _NL_TIME_ERA_NUM_ENTRIES,
2416 _NL_TIME_ERA_ENTRIES,
2417
2418 _NL_WABDAY_1,
2419 _NL_WABDAY_2,
2420 _NL_WABDAY_3,
2421 _NL_WABDAY_4,
2422 _NL_WABDAY_5,
2423 _NL_WABDAY_6,
2424 _NL_WABDAY_7,
2425
2426
2427 _NL_WDAY_1,
2428 _NL_WDAY_2,
2429 _NL_WDAY_3,
2430 _NL_WDAY_4,
2431 _NL_WDAY_5,
2432 _NL_WDAY_6,
2433 _NL_WDAY_7,
2434
2435
2436 _NL_WABMON_1,
2437 _NL_WABMON_2,
2438 _NL_WABMON_3,
2439 _NL_WABMON_4,
2440 _NL_WABMON_5,
2441 _NL_WABMON_6,
2442 _NL_WABMON_7,
2443 _NL_WABMON_8,
2444 _NL_WABMON_9,
2445 _NL_WABMON_10,
2446 _NL_WABMON_11,
2447 _NL_WABMON_12,
2448
2449
2450 _NL_WMON_1,
2451 _NL_WMON_2,
2452 _NL_WMON_3,
2453 _NL_WMON_4,
2454 _NL_WMON_5,
2455 _NL_WMON_6,
2456 _NL_WMON_7,
2457 _NL_WMON_8,
2458 _NL_WMON_9,
2459 _NL_WMON_10,
2460 _NL_WMON_11,
2461 _NL_WMON_12,
2462
2463 _NL_WAM_STR,
2464 _NL_WPM_STR,
2465
2466 _NL_WD_T_FMT,
2467 _NL_WD_FMT,
2468 _NL_WT_FMT,
2469 _NL_WT_FMT_AMPM,
2470
2471 _NL_WERA_YEAR,
2472 _NL_WERA_D_FMT,
2473 _NL_WALT_DIGITS,
2474 _NL_WERA_D_T_FMT,
2475 _NL_WERA_T_FMT,
2476
2477 _NL_TIME_WEEK_NDAYS,
2478 _NL_TIME_WEEK_1STDAY,
2479 _NL_TIME_WEEK_1STWEEK,
2480 _NL_TIME_FIRST_WEEKDAY,
2481 _NL_TIME_FIRST_WORKDAY,
2482 _NL_TIME_CAL_DIRECTION,
2483 _NL_TIME_TIMEZONE,
2484
2485 _DATE_FMT,
2486
2487 _NL_W_DATE_FMT,
2488
2489 _NL_TIME_CODESET,
2490
2491 _NL_NUM_LC_TIME,
2492
2493
2494
2495
2496 _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
2497 _NL_COLLATE_RULESETS,
2498 _NL_COLLATE_TABLEMB,
2499 _NL_COLLATE_WEIGHTMB,
2500 _NL_COLLATE_EXTRAMB,
2501 _NL_COLLATE_INDIRECTMB,
2502 _NL_COLLATE_GAP1,
2503 _NL_COLLATE_GAP2,
2504 _NL_COLLATE_GAP3,
2505 _NL_COLLATE_TABLEWC,
2506 _NL_COLLATE_WEIGHTWC,
2507 _NL_COLLATE_EXTRAWC,
2508 _NL_COLLATE_INDIRECTWC,
2509 _NL_COLLATE_SYMB_HASH_SIZEMB,
2510 _NL_COLLATE_SYMB_TABLEMB,
2511 _NL_COLLATE_SYMB_EXTRAMB,
2512 _NL_COLLATE_COLLSEQMB,
2513 _NL_COLLATE_COLLSEQWC,
2514 _NL_COLLATE_CODESET,
2515 _NL_NUM_LC_COLLATE,
2516
2517
2518
2519
2520 _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
2521 _NL_CTYPE_TOUPPER,
2522 _NL_CTYPE_GAP1,
2523 _NL_CTYPE_TOLOWER,
2524 _NL_CTYPE_GAP2,
2525 _NL_CTYPE_CLASS32,
2526 _NL_CTYPE_GAP3,
2527 _NL_CTYPE_GAP4,
2528 _NL_CTYPE_GAP5,
2529 _NL_CTYPE_GAP6,
2530 _NL_CTYPE_CLASS_NAMES,
2531 _NL_CTYPE_MAP_NAMES,
2532 _NL_CTYPE_WIDTH,
2533 _NL_CTYPE_MB_CUR_MAX,
2534 _NL_CTYPE_CODESET_NAME,
2535 CODESET = _NL_CTYPE_CODESET_NAME,
2536
2537 _NL_CTYPE_TOUPPER32,
2538 _NL_CTYPE_TOLOWER32,
2539 _NL_CTYPE_CLASS_OFFSET,
2540 _NL_CTYPE_MAP_OFFSET,
2541 _NL_CTYPE_INDIGITS_MB_LEN,
2542 _NL_CTYPE_INDIGITS0_MB,
2543 _NL_CTYPE_INDIGITS1_MB,
2544 _NL_CTYPE_INDIGITS2_MB,
2545 _NL_CTYPE_INDIGITS3_MB,
2546 _NL_CTYPE_INDIGITS4_MB,
2547 _NL_CTYPE_INDIGITS5_MB,
2548 _NL_CTYPE_INDIGITS6_MB,
2549 _NL_CTYPE_INDIGITS7_MB,
2550 _NL_CTYPE_INDIGITS8_MB,
2551 _NL_CTYPE_INDIGITS9_MB,
2552 _NL_CTYPE_INDIGITS_WC_LEN,
2553 _NL_CTYPE_INDIGITS0_WC,
2554 _NL_CTYPE_INDIGITS1_WC,
2555 _NL_CTYPE_INDIGITS2_WC,
2556 _NL_CTYPE_INDIGITS3_WC,
2557 _NL_CTYPE_INDIGITS4_WC,
2558 _NL_CTYPE_INDIGITS5_WC,
2559 _NL_CTYPE_INDIGITS6_WC,
2560 _NL_CTYPE_INDIGITS7_WC,
2561 _NL_CTYPE_INDIGITS8_WC,
2562 _NL_CTYPE_INDIGITS9_WC,
2563 _NL_CTYPE_OUTDIGIT0_MB,
2564 _NL_CTYPE_OUTDIGIT1_MB,
2565 _NL_CTYPE_OUTDIGIT2_MB,
2566 _NL_CTYPE_OUTDIGIT3_MB,
2567 _NL_CTYPE_OUTDIGIT4_MB,
2568 _NL_CTYPE_OUTDIGIT5_MB,
2569 _NL_CTYPE_OUTDIGIT6_MB,
2570 _NL_CTYPE_OUTDIGIT7_MB,
2571 _NL_CTYPE_OUTDIGIT8_MB,
2572 _NL_CTYPE_OUTDIGIT9_MB,
2573 _NL_CTYPE_OUTDIGIT0_WC,
2574 _NL_CTYPE_OUTDIGIT1_WC,
2575 _NL_CTYPE_OUTDIGIT2_WC,
2576 _NL_CTYPE_OUTDIGIT3_WC,
2577 _NL_CTYPE_OUTDIGIT4_WC,
2578 _NL_CTYPE_OUTDIGIT5_WC,
2579 _NL_CTYPE_OUTDIGIT6_WC,
2580 _NL_CTYPE_OUTDIGIT7_WC,
2581 _NL_CTYPE_OUTDIGIT8_WC,
2582 _NL_CTYPE_OUTDIGIT9_WC,
2583 _NL_CTYPE_TRANSLIT_TAB_SIZE,
2584 _NL_CTYPE_TRANSLIT_FROM_IDX,
2585 _NL_CTYPE_TRANSLIT_FROM_TBL,
2586 _NL_CTYPE_TRANSLIT_TO_IDX,
2587 _NL_CTYPE_TRANSLIT_TO_TBL,
2588 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
2589 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
2590 _NL_CTYPE_TRANSLIT_IGNORE_LEN,
2591 _NL_CTYPE_TRANSLIT_IGNORE,
2592 _NL_CTYPE_MAP_TO_NONASCII,
2593 _NL_CTYPE_EXTRA_MAP_1,
2594 _NL_CTYPE_EXTRA_MAP_2,
2595 _NL_CTYPE_EXTRA_MAP_3,
2596 _NL_CTYPE_EXTRA_MAP_4,
2597 _NL_CTYPE_EXTRA_MAP_5,
2598 _NL_CTYPE_EXTRA_MAP_6,
2599 _NL_CTYPE_EXTRA_MAP_7,
2600 _NL_CTYPE_EXTRA_MAP_8,
2601 _NL_CTYPE_EXTRA_MAP_9,
2602 _NL_CTYPE_EXTRA_MAP_10,
2603 _NL_CTYPE_EXTRA_MAP_11,
2604 _NL_CTYPE_EXTRA_MAP_12,
2605 _NL_CTYPE_EXTRA_MAP_13,
2606 _NL_CTYPE_EXTRA_MAP_14,
2607 _NL_NUM_LC_CTYPE,
2608
2609
2610
2611
2612 __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
2613
2614
2615
2616 __CURRENCY_SYMBOL,
2617
2618
2619
2620 __MON_DECIMAL_POINT,
2621
2622
2623
2624 __MON_THOUSANDS_SEP,
2625
2626
2627
2628 __MON_GROUPING,
2629
2630
2631
2632 __POSITIVE_SIGN,
2633
2634
2635
2636 __NEGATIVE_SIGN,
2637
2638
2639
2640 __INT_FRAC_DIGITS,
2641
2642
2643
2644 __FRAC_DIGITS,
2645
2646
2647
2648 __P_CS_PRECEDES,
2649
2650
2651
2652 __P_SEP_BY_SPACE,
2653
2654
2655
2656 __N_CS_PRECEDES,
2657
2658
2659
2660 __N_SEP_BY_SPACE,
2661
2662
2663
2664 __P_SIGN_POSN,
2665
2666
2667
2668 __N_SIGN_POSN,
2669
2670
2671
2672 _NL_MONETARY_CRNCYSTR,
2673
2674 __INT_P_CS_PRECEDES,
2675
2676
2677
2678 __INT_P_SEP_BY_SPACE,
2679
2680
2681
2682 __INT_N_CS_PRECEDES,
2683
2684
2685
2686 __INT_N_SEP_BY_SPACE,
2687
2688
2689
2690 __INT_P_SIGN_POSN,
2691
2692
2693
2694 __INT_N_SIGN_POSN,
2695
2696
2697
2698 _NL_MONETARY_DUO_INT_CURR_SYMBOL,
2699 _NL_MONETARY_DUO_CURRENCY_SYMBOL,
2700 _NL_MONETARY_DUO_INT_FRAC_DIGITS,
2701 _NL_MONETARY_DUO_FRAC_DIGITS,
2702 _NL_MONETARY_DUO_P_CS_PRECEDES,
2703 _NL_MONETARY_DUO_P_SEP_BY_SPACE,
2704 _NL_MONETARY_DUO_N_CS_PRECEDES,
2705 _NL_MONETARY_DUO_N_SEP_BY_SPACE,
2706 _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
2707 _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
2708 _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
2709 _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
2710 _NL_MONETARY_DUO_P_SIGN_POSN,
2711 _NL_MONETARY_DUO_N_SIGN_POSN,
2712 _NL_MONETARY_DUO_INT_P_SIGN_POSN,
2713 _NL_MONETARY_DUO_INT_N_SIGN_POSN,
2714 _NL_MONETARY_UNO_VALID_FROM,
2715 _NL_MONETARY_UNO_VALID_TO,
2716 _NL_MONETARY_DUO_VALID_FROM,
2717 _NL_MONETARY_DUO_VALID_TO,
2718 _NL_MONETARY_CONVERSION_RATE,
2719 _NL_MONETARY_DECIMAL_POINT_WC,
2720 _NL_MONETARY_THOUSANDS_SEP_WC,
2721 _NL_MONETARY_CODESET,
2722 _NL_NUM_LC_MONETARY,
2723
2724
2725
2726 __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
2727
2728
2729
2730 RADIXCHAR = __DECIMAL_POINT,
2731
2732 __THOUSANDS_SEP,
2733
2734
2735
2736 THOUSEP = __THOUSANDS_SEP,
2737
2738 __GROUPING,
2739
2740
2741
2742 _NL_NUMERIC_DECIMAL_POINT_WC,
2743 _NL_NUMERIC_THOUSANDS_SEP_WC,
2744 _NL_NUMERIC_CODESET,
2745 _NL_NUM_LC_NUMERIC,
2746
2747 __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
2748
2749 __NOEXPR,
2750
2751 __YESSTR,
2752
2753
2754
2755 __NOSTR,
2756
2757
2758
2759 _NL_MESSAGES_CODESET,
2760 _NL_NUM_LC_MESSAGES,
2761
2762 _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
2763 _NL_PAPER_WIDTH,
2764 _NL_PAPER_CODESET,
2765 _NL_NUM_LC_PAPER,
2766
2767 _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
2768 _NL_NAME_NAME_GEN,
2769 _NL_NAME_NAME_MR,
2770 _NL_NAME_NAME_MRS,
2771 _NL_NAME_NAME_MISS,
2772 _NL_NAME_NAME_MS,
2773 _NL_NAME_CODESET,
2774 _NL_NUM_LC_NAME,
2775
2776 _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
2777 _NL_ADDRESS_COUNTRY_NAME,
2778 _NL_ADDRESS_COUNTRY_POST,
2779 _NL_ADDRESS_COUNTRY_AB2,
2780 _NL_ADDRESS_COUNTRY_AB3,
2781 _NL_ADDRESS_COUNTRY_CAR,
2782 _NL_ADDRESS_COUNTRY_NUM,
2783 _NL_ADDRESS_COUNTRY_ISBN,
2784 _NL_ADDRESS_LANG_NAME,
2785 _NL_ADDRESS_LANG_AB,
2786 _NL_ADDRESS_LANG_TERM,
2787 _NL_ADDRESS_LANG_LIB,
2788 _NL_ADDRESS_CODESET,
2789 _NL_NUM_LC_ADDRESS,
2790
2791 _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
2792 _NL_TELEPHONE_TEL_DOM_FMT,
2793 _NL_TELEPHONE_INT_SELECT,
2794 _NL_TELEPHONE_INT_PREFIX,
2795 _NL_TELEPHONE_CODESET,
2796 _NL_NUM_LC_TELEPHONE,
2797
2798 _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
2799 _NL_MEASUREMENT_CODESET,
2800 _NL_NUM_LC_MEASUREMENT,
2801
2802 _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
2803 _NL_IDENTIFICATION_SOURCE,
2804 _NL_IDENTIFICATION_ADDRESS,
2805 _NL_IDENTIFICATION_CONTACT,
2806 _NL_IDENTIFICATION_EMAIL,
2807 _NL_IDENTIFICATION_TEL,
2808 _NL_IDENTIFICATION_FAX,
2809 _NL_IDENTIFICATION_LANGUAGE,
2810 _NL_IDENTIFICATION_TERRITORY,
2811 _NL_IDENTIFICATION_AUDIENCE,
2812 _NL_IDENTIFICATION_APPLICATION,
2813 _NL_IDENTIFICATION_ABBREVIATION,
2814 _NL_IDENTIFICATION_REVISION,
2815 _NL_IDENTIFICATION_DATE,
2816 _NL_IDENTIFICATION_CATEGORY,
2817 _NL_IDENTIFICATION_CODESET,
2818 _NL_NUM_LC_IDENTIFICATION,
2819
2820
2821 _NL_NUM
2822 };
2823 # 576 "/usr/include/langinfo.h" 3 4
2824 extern char *nl_langinfo (nl_item __item) throw ();
2825 # 587 "/usr/include/langinfo.h" 3 4
2826 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
2827
2828
2829 }
2830 # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2831 # 1 "/usr/include/iconv.h" 1 3 4
2832 # 24 "/usr/include/iconv.h" 3 4
2833 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
2834 # 25 "/usr/include/iconv.h" 2 3 4
2835
2836
2837 extern "C" {
2838
2839
2840 typedef void *iconv_t;
2841
2842
2843
2844
2845
2846
2847
2848 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
2849
2850
2851
2852
2853 extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
2854 size_t *__restrict __inbytesleft,
2855 char **__restrict __outbuf,
2856 size_t *__restrict __outbytesleft);
2857
2858
2859
2860
2861
2862 extern int iconv_close (iconv_t __cd);
2863
2864 }
2865 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2866 # 1 "/usr/include/libintl.h" 1 3 4
2867 # 35 "/usr/include/libintl.h" 3 4
2868 extern "C" {
2869
2870
2871
2872
2873 extern char *gettext (__const char *__msgid) throw ();
2874
2875
2876
2877 extern char *dgettext (__const char *__domainname, __const char *__msgid)
2878 throw ();
2879 extern char *__dgettext (__const char *__domainname, __const char *__msgid)
2880 throw () __attribute__ ((__format_arg__ (2)));
2881
2882
2883
2884 extern char *dcgettext (__const char *__domainname,
2885 __const char *__msgid, int __category) throw ();
2886 extern char *__dcgettext (__const char *__domainname,
2887 __const char *__msgid, int __category)
2888 throw () __attribute__ ((__format_arg__ (2)));
2889
2890
2891
2892
2893 extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
2894 unsigned long int __n)
2895 throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
2896
2897
2898
2899 extern char *dngettext (__const char *__domainname, __const char *__msgid1,
2900 __const char *__msgid2, unsigned long int __n)
2901 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
2902
2903
2904
2905 extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
2906 __const char *__msgid2, unsigned long int __n,
2907 int __category)
2908 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
2909
2910
2911
2912
2913
2914 extern char *textdomain (__const char *__domainname) throw ();
2915
2916
2917
2918 extern char *bindtextdomain (__const char *__domainname,
2919 __const char *__dirname) throw ();
2920
2921
2922
2923 extern char *bind_textdomain_codeset (__const char *__domainname,
2924 __const char *__codeset) throw ();
2925 # 120 "/usr/include/libintl.h" 3 4
2926 }
2927 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 2 3
2928
2929
2930
2931
2932
2933
2934 namespace __gnu_cxx
2935 {
2936 extern "C" __typeof(uselocale) __uselocale;
2937 }
2938
2939
2940 namespace std
2941 {
2942 typedef __locale_t __c_locale;
2943
2944
2945
2946
2947
2948 template<typename _Tv>
2949 int
2950 __convert_from_v(char* __out, const int __size, const char* __fmt,
2951
2952 _Tv __v, const __c_locale& __cloc, int __prec)
2953 {
2954 __c_locale __old = __gnu_cxx::__uselocale(__cloc);
2955 # 84 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h" 3
2956 const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
2957
2958
2959
2960
2961
2962 __gnu_cxx::__uselocale(__old);
2963
2964
2965
2966
2967 return __ret;
2968 }
2969 }
2970 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
2971 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++io.h" 1 3
2972 # 37 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++io.h" 3
2973 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr.h" 1 3
2974 # 104 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr.h" 3
2975 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 1 3
2976 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
2977 # 1 "/usr/include/pthread.h" 1 3 4
2978 # 20 "/usr/include/pthread.h" 3 4
2979 # 1 "/usr/include/sched.h" 1 3 4
2980 # 29 "/usr/include/sched.h" 3 4
2981 # 1 "/usr/include/time.h" 1 3 4
2982 # 118 "/usr/include/time.h" 3 4
2983 struct timespec
2984 {
2985 __time_t tv_sec;
2986 long int tv_nsec;
2987 };
2988 # 30 "/usr/include/sched.h" 2 3 4
2989
2990
2991 # 1 "/usr/include/bits/sched.h" 1 3 4
2992 # 62 "/usr/include/bits/sched.h" 3 4
2993 struct sched_param
2994 {
2995 int __sched_priority;
2996 };
2997
2998 extern "C" {
2999
3000
3001
3002 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
3003 int __flags, void *__arg) throw ();
3004
3005
3006 }
3007
3008
3009
3010
3011
3012
3013
3014 struct __sched_param
3015 {
3016 int __sched_priority;
3017 };
3018 # 98 "/usr/include/bits/sched.h" 3 4
3019 typedef unsigned long int __cpu_mask;
3020
3021
3022
3023
3024
3025
3026 typedef struct
3027 {
3028 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
3029 } cpu_set_t;
3030 # 33 "/usr/include/sched.h" 2 3 4
3031
3032
3033
3034
3035 extern "C" {
3036
3037
3038 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
3039 throw ();
3040
3041
3042 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
3043
3044
3045 extern int sched_setscheduler (__pid_t __pid, int __policy,
3046 __const struct sched_param *__param) throw ();
3047
3048
3049 extern int sched_getscheduler (__pid_t __pid) throw ();
3050
3051
3052 extern int sched_yield (void) throw ();
3053
3054
3055 extern int sched_get_priority_max (int __algorithm) throw ();
3056
3057
3058 extern int sched_get_priority_min (int __algorithm) throw ();
3059
3060
3061 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
3062 # 76 "/usr/include/sched.h" 3 4
3063 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
3064 __const cpu_set_t *__cpuset) throw ();
3065
3066
3067 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
3068 cpu_set_t *__cpuset) throw ();
3069
3070
3071 }
3072 # 21 "/usr/include/pthread.h" 2 3 4
3073 # 1 "/usr/include/time.h" 1 3 4
3074 # 30 "/usr/include/time.h" 3 4
3075 extern "C" {
3076
3077
3078
3079
3080
3081
3082
3083 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
3084 # 39 "/usr/include/time.h" 2 3 4
3085
3086
3087
3088 # 1 "/usr/include/bits/time.h" 1 3 4
3089 # 43 "/usr/include/time.h" 2 3 4
3090 # 58 "/usr/include/time.h" 3 4
3091
3092
3093 typedef __clock_t clock_t;
3094
3095
3096
3097 # 74 "/usr/include/time.h" 3 4
3098
3099
3100 typedef __time_t time_t;
3101
3102
3103
3104 # 92 "/usr/include/time.h" 3 4
3105 typedef __clockid_t clockid_t;
3106 # 104 "/usr/include/time.h" 3 4
3107 typedef __timer_t timer_t;
3108 # 129 "/usr/include/time.h" 3 4
3109
3110
3111 struct tm
3112 {
3113 int tm_sec;
3114 int tm_min;
3115 int tm_hour;
3116 int tm_mday;
3117 int tm_mon;
3118 int tm_year;
3119 int tm_wday;
3120 int tm_yday;
3121 int tm_isdst;
3122
3123
3124 long int tm_gmtoff;
3125 __const char *tm_zone;
3126
3127
3128
3129
3130 };
3131
3132
3133
3134
3135
3136
3137
3138
3139 struct itimerspec
3140 {
3141 struct timespec it_interval;
3142 struct timespec it_value;
3143 };
3144
3145
3146 struct sigevent;
3147
3148
3149
3150
3151
3152 typedef __pid_t pid_t;
3153
3154
3155
3156
3157
3158
3159
3160
3161 extern clock_t clock (void) throw ();
3162
3163
3164 extern time_t time (time_t *__timer) throw ();
3165
3166
3167 extern double difftime (time_t __time1, time_t __time0)
3168 throw () __attribute__ ((__const__));
3169
3170
3171 extern time_t mktime (struct tm *__tp) throw ();
3172
3173
3174
3175
3176
3177 extern size_t strftime (char *__restrict __s, size_t __maxsize,
3178 __const char *__restrict __format,
3179 __const struct tm *__restrict __tp) throw ();
3180
3181
3182
3183
3184
3185 extern char *strptime (__const char *__restrict __s,
3186 __const char *__restrict __fmt, struct tm *__tp)
3187 throw ();
3188
3189
3190
3191
3192
3193
3194
3195 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
3196 __const char *__restrict __format,
3197 __const struct tm *__restrict __tp,
3198 __locale_t __loc) throw ();
3199
3200 extern char *strptime_l (__const char *__restrict __s,
3201 __const char *__restrict __fmt, struct tm *__tp,
3202 __locale_t __loc) throw ();
3203
3204
3205
3206
3207
3208
3209 extern struct tm *gmtime (__const time_t *__timer) throw ();
3210
3211
3212
3213 extern struct tm *localtime (__const time_t *__timer) throw ();
3214
3215
3216
3217
3218
3219 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
3220 struct tm *__restrict __tp) throw ();
3221
3222
3223
3224 extern struct tm *localtime_r (__const time_t *__restrict __timer,
3225 struct tm *__restrict __tp) throw ();
3226
3227
3228
3229
3230
3231 extern char *asctime (__const struct tm *__tp) throw ();
3232
3233
3234 extern char *ctime (__const time_t *__timer) throw ();
3235
3236
3237
3238
3239
3240
3241
3242 extern char *asctime_r (__const struct tm *__restrict __tp,
3243 char *__restrict __buf) throw ();
3244
3245
3246 extern char *ctime_r (__const time_t *__restrict __timer,
3247 char *__restrict __buf) throw ();
3248
3249
3250
3251
3252 extern char *__tzname[2];
3253 extern int __daylight;
3254 extern long int __timezone;
3255
3256
3257
3258
3259 extern char *tzname[2];
3260
3261
3262
3263 extern void tzset (void) throw ();
3264
3265
3266
3267 extern int daylight;
3268 extern long int timezone;
3269
3270
3271
3272
3273
3274 extern int stime (__const time_t *__when) throw ();
3275 # 309 "/usr/include/time.h" 3 4
3276 extern time_t timegm (struct tm *__tp) throw ();
3277
3278
3279 extern time_t timelocal (struct tm *__tp) throw ();
3280
3281
3282 extern int dysize (int __year) throw () __attribute__ ((__const__));
3283 # 324 "/usr/include/time.h" 3 4
3284 extern int nanosleep (__const struct timespec *__requested_time,
3285 struct timespec *__remaining);
3286
3287
3288
3289 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
3290
3291
3292 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
3293
3294
3295 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
3296 throw ();
3297
3298
3299
3300
3301
3302
3303 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
3304 __const struct timespec *__req,
3305 struct timespec *__rem);
3306
3307
3308 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
3309
3310
3311
3312
3313 extern int timer_create (clockid_t __clock_id,
3314 struct sigevent *__restrict __evp,
3315 timer_t *__restrict __timerid) throw ();
3316
3317
3318 extern int timer_delete (timer_t __timerid) throw ();
3319
3320
3321 extern int timer_settime (timer_t __timerid, int __flags,
3322 __const struct itimerspec *__restrict __value,
3323 struct itimerspec *__restrict __ovalue) throw ();
3324
3325
3326 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
3327 throw ();
3328
3329
3330 extern int timer_getoverrun (timer_t __timerid) throw ();
3331 # 386 "/usr/include/time.h" 3 4
3332 extern int getdate_err;
3333 # 395 "/usr/include/time.h" 3 4
3334 extern struct tm *getdate (__const char *__string);
3335 # 409 "/usr/include/time.h" 3 4
3336 extern int getdate_r (__const char *__restrict __string,
3337 struct tm *__restrict __resbufp);
3338
3339
3340 }
3341 # 22 "/usr/include/pthread.h" 2 3 4
3342
3343
3344 # 1 "/usr/include/signal.h" 1 3 4
3345 # 31 "/usr/include/signal.h" 3 4
3346 extern "C" {
3347
3348 # 1 "/usr/include/bits/sigset.h" 1 3 4
3349 # 23 "/usr/include/bits/sigset.h" 3 4
3350 typedef int __sig_atomic_t;
3351
3352
3353
3354
3355 typedef struct
3356 {
3357 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
3358 } __sigset_t;
3359 # 34 "/usr/include/signal.h" 2 3 4
3360 # 50 "/usr/include/signal.h" 3 4
3361 typedef __sigset_t sigset_t;
3362 # 400 "/usr/include/signal.h" 3 4
3363 }
3364 # 25 "/usr/include/pthread.h" 2 3 4
3365 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
3366 # 23 "/usr/include/bits/pthreadtypes.h" 3 4
3367 # 1 "/usr/include/bits/sched.h" 1 3 4
3368 # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4
3369
3370
3371 struct _pthread_fastlock
3372 {
3373 long int __status;
3374 int __spinlock;
3375
3376 };
3377
3378
3379
3380 typedef struct _pthread_descr_struct *_pthread_descr;
3381
3382
3383
3384
3385
3386 typedef struct __pthread_attr_s
3387 {
3388 int __detachstate;
3389 int __schedpolicy;
3390 struct __sched_param __schedparam;
3391 int __inheritsched;
3392 int __scope;
3393 size_t __guardsize;
3394 int __stackaddr_set;
3395 void *__stackaddr;
3396 size_t __stacksize;
3397 } pthread_attr_t;
3398
3399
3400
3401
3402
3403 __extension__ typedef long long __pthread_cond_align_t;
3404
3405
3406
3407
3408 typedef struct
3409 {
3410 struct _pthread_fastlock __c_lock;
3411 _pthread_descr __c_waiting;
3412 char __padding[48 - sizeof (struct _pthread_fastlock)
3413 - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)];
3414 __pthread_cond_align_t __align;
3415 } pthread_cond_t;
3416
3417
3418
3419 typedef struct
3420 {
3421 int __dummy;
3422 } pthread_condattr_t;
3423
3424
3425 typedef unsigned int pthread_key_t;
3426
3427
3428
3429
3430
3431 typedef struct
3432 {
3433 int __m_reserved;
3434 int __m_count;
3435 _pthread_descr __m_owner;
3436 int __m_kind;
3437 struct _pthread_fastlock __m_lock;
3438 } pthread_mutex_t;
3439
3440
3441
3442 typedef struct
3443 {
3444 int __mutexkind;
3445 } pthread_mutexattr_t;
3446
3447
3448
3449 typedef int pthread_once_t;
3450
3451
3452
3453
3454 typedef struct _pthread_rwlock_t
3455 {
3456 struct _pthread_fastlock __rw_lock;
3457 int __rw_readers;
3458 _pthread_descr __rw_writer;
3459 _pthread_descr __rw_read_waiting;
3460 _pthread_descr __rw_write_waiting;
3461 int __rw_kind;
3462 int __rw_pshared;
3463 } pthread_rwlock_t;
3464
3465
3466
3467 typedef struct
3468 {
3469 int __lockkind;
3470 int __pshared;
3471 } pthread_rwlockattr_t;
3472
3473
3474
3475
3476 typedef volatile int pthread_spinlock_t;
3477
3478
3479 typedef struct {
3480 struct _pthread_fastlock __ba_lock;
3481 int __ba_required;
3482 int __ba_present;
3483 _pthread_descr __ba_waiting;
3484 } pthread_barrier_t;
3485
3486
3487 typedef struct {
3488 int __pshared;
3489 } pthread_barrierattr_t;
3490
3491
3492
3493
3494
3495 typedef unsigned long int pthread_t;
3496 # 26 "/usr/include/pthread.h" 2 3 4
3497 # 1 "/usr/include/bits/initspin.h" 1 3 4
3498 # 27 "/usr/include/pthread.h" 2 3 4
3499
3500
3501 extern "C" {
3502 # 59 "/usr/include/pthread.h" 3 4
3503 enum
3504 {
3505 PTHREAD_CREATE_JOINABLE,
3506
3507 PTHREAD_CREATE_DETACHED
3508
3509 };
3510
3511 enum
3512 {
3513 PTHREAD_INHERIT_SCHED,
3514
3515 PTHREAD_EXPLICIT_SCHED
3516
3517 };
3518
3519 enum
3520 {
3521 PTHREAD_SCOPE_SYSTEM,
3522
3523 PTHREAD_SCOPE_PROCESS
3524
3525 };
3526
3527 enum
3528 {
3529 PTHREAD_MUTEX_TIMED_NP,
3530 PTHREAD_MUTEX_RECURSIVE_NP,
3531 PTHREAD_MUTEX_ERRORCHECK_NP,
3532 PTHREAD_MUTEX_ADAPTIVE_NP
3533
3534 ,
3535 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
3536 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
3537 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
3538 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
3539
3540
3541
3542 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP
3543
3544 };
3545
3546 enum
3547 {
3548 PTHREAD_PROCESS_PRIVATE,
3549
3550 PTHREAD_PROCESS_SHARED
3551
3552 };
3553
3554
3555 enum
3556 {
3557 PTHREAD_RWLOCK_PREFER_READER_NP,
3558 PTHREAD_RWLOCK_PREFER_WRITER_NP,
3559 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
3560 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP
3561 };
3562 # 131 "/usr/include/pthread.h" 3 4
3563 struct _pthread_cleanup_buffer
3564 {
3565 void (*__routine) (void *);
3566 void *__arg;
3567 int __canceltype;
3568 struct _pthread_cleanup_buffer *__prev;
3569 };
3570
3571
3572
3573 enum
3574 {
3575 PTHREAD_CANCEL_ENABLE,
3576
3577 PTHREAD_CANCEL_DISABLE
3578
3579 };
3580 enum
3581 {
3582 PTHREAD_CANCEL_DEFERRED,
3583
3584 PTHREAD_CANCEL_ASYNCHRONOUS
3585
3586 };
3587 # 163 "/usr/include/pthread.h" 3 4
3588 extern int pthread_create (pthread_t *__restrict __threadp,
3589 __const pthread_attr_t *__restrict __attr,
3590 void *(*__start_routine) (void *),
3591 void *__restrict __arg) throw ();
3592
3593
3594 extern pthread_t pthread_self (void) throw ();
3595
3596
3597 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
3598
3599
3600 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
3601
3602
3603
3604
3605 extern int pthread_join (pthread_t __th, void **__thread_return);
3606
3607
3608
3609
3610
3611 extern int pthread_detach (pthread_t __th) throw ();
3612
3613
3614
3615
3616
3617
3618
3619 extern int pthread_attr_init (pthread_attr_t *__attr) throw ();
3620
3621
3622 extern int pthread_attr_destroy (pthread_attr_t *__attr) throw ();
3623
3624
3625 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
3626 int __detachstate) throw ();
3627
3628
3629 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
3630 int *__detachstate) throw ();
3631
3632
3633 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
3634 __const struct sched_param *__restrict
3635 __param) throw ();
3636
3637
3638 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
3639 __attr,
3640 struct sched_param *__restrict __param)
3641 throw ();
3642
3643
3644 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
3645 throw ();
3646
3647
3648 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
3649 __attr, int *__restrict __policy)
3650 throw ();
3651
3652
3653 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
3654 int __inherit) throw ();
3655
3656
3657 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
3658 __attr, int *__restrict __inherit)
3659 throw ();
3660
3661
3662 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
3663 throw ();
3664
3665
3666 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
3667 int *__restrict __scope) throw ();
3668
3669
3670
3671 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
3672 size_t __guardsize) throw ();
3673
3674
3675 extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
3676 __attr, size_t *__restrict __guardsize)
3677 throw ();
3678
3679
3680
3681
3682
3683
3684 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
3685 void *__stackaddr) throw ();
3686
3687
3688 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
3689 __attr, void **__restrict __stackaddr)
3690 throw ();
3691
3692
3693
3694
3695
3696 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
3697 size_t __stacksize) throw ();
3698
3699
3700 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
3701 void **__restrict __stackaddr,
3702 size_t *__restrict __stacksize) throw ();
3703
3704
3705
3706
3707
3708 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
3709 size_t __stacksize) throw ();
3710
3711
3712 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
3713 __attr, size_t *__restrict __stacksize)
3714 throw ();
3715
3716
3717
3718
3719
3720 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw ();
3721
3722
3723
3724
3725
3726
3727 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
3728 __const struct sched_param *__param)
3729 throw ();
3730
3731
3732 extern int pthread_getschedparam (pthread_t __target_thread,
3733 int *__restrict __policy,
3734 struct sched_param *__restrict __param)
3735 throw ();
3736
3737
3738
3739 extern int pthread_getconcurrency (void) throw ();
3740
3741
3742 extern int pthread_setconcurrency (int __level) throw ();
3743
3744
3745
3746
3747
3748
3749
3750 extern int pthread_yield (void) throw ();
3751
3752
3753
3754
3755
3756
3757 extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
3758 __const pthread_mutexattr_t *__restrict
3759 __mutex_attr) throw ();
3760
3761
3762 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw ();
3763
3764
3765 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) throw ();
3766
3767
3768 extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw ();
3769
3770
3771
3772 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
3773 __const struct timespec *__restrict
3774 __abstime) throw ();
3775
3776
3777
3778 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw ();
3779
3780
3781
3782
3783
3784
3785 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw ();
3786
3787
3788 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw ();
3789
3790
3791 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
3792 __restrict __attr,
3793 int *__restrict __pshared) throw ();
3794
3795
3796 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
3797 int __pshared) throw ();
3798
3799
3800
3801
3802
3803 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
3804 throw ();
3805
3806
3807 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
3808 __attr, int *__restrict __kind) throw ();
3809
3810
3811
3812
3813
3814
3815
3816 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
3817 __const pthread_condattr_t *__restrict
3818 __cond_attr) throw ();
3819
3820
3821 extern int pthread_cond_destroy (pthread_cond_t *__cond) throw ();
3822
3823
3824 extern int pthread_cond_signal (pthread_cond_t *__cond) throw ();
3825
3826
3827 extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw ();
3828
3829
3830
3831 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
3832 pthread_mutex_t *__restrict __mutex);
3833
3834
3835
3836
3837
3838 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
3839 pthread_mutex_t *__restrict __mutex,
3840 __const struct timespec *__restrict
3841 __abstime);
3842
3843
3844
3845
3846 extern int pthread_condattr_init (pthread_condattr_t *__attr) throw ();
3847
3848
3849 extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw ();
3850
3851
3852 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
3853 __restrict __attr,
3854 int *__restrict __pshared) throw ();
3855
3856
3857 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
3858 int __pshared) throw ();
3859
3860
3861
3862
3863
3864
3865
3866 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
3867 __const pthread_rwlockattr_t *__restrict
3868 __attr) throw ();
3869
3870
3871 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw ();
3872
3873
3874 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw ();
3875
3876
3877 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw ();
3878
3879
3880
3881 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
3882 __const struct timespec *__restrict
3883 __abstime) throw ();
3884
3885
3886
3887 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw ();
3888
3889
3890 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw ();
3891
3892
3893
3894 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
3895 __const struct timespec *__restrict
3896 __abstime) throw ();
3897
3898
3899
3900 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw ();
3901
3902
3903
3904
3905
3906 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw ();
3907
3908
3909 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw ();
3910
3911
3912 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
3913 __restrict __attr,
3914 int *__restrict __pshared) throw ();
3915
3916
3917 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
3918 int __pshared) throw ();
3919
3920
3921 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
3922 int *__pref) throw ();
3923
3924
3925 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
3926 int __pref) throw ();
3927 # 510 "/usr/include/pthread.h" 3 4
3928 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
3929 throw ();
3930
3931
3932 extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw ();
3933
3934
3935 extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw ();
3936
3937
3938 extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw ();
3939
3940
3941 extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw ();
3942
3943
3944
3945
3946 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
3947 __const pthread_barrierattr_t *__restrict
3948 __attr, unsigned int __count) throw ();
3949
3950 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw ();
3951
3952 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw ();
3953
3954 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw ();
3955
3956 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
3957 __restrict __attr,
3958 int *__restrict __pshared) throw ();
3959
3960 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
3961 int __pshared) throw ();
3962
3963 extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw ();
3964 # 557 "/usr/include/pthread.h" 3 4
3965 extern int pthread_key_create (pthread_key_t *__key,
3966 void (*__destr_function) (void *)) throw ();
3967
3968
3969 extern int pthread_key_delete (pthread_key_t __key) throw ();
3970
3971
3972 extern int pthread_setspecific (pthread_key_t __key,
3973 __const void *__pointer) throw ();
3974
3975
3976 extern void *pthread_getspecific (pthread_key_t __key) throw ();
3977 # 580 "/usr/include/pthread.h" 3 4
3978 extern int pthread_once (pthread_once_t *__once_control,
3979 void (*__init_routine) (void));
3980
3981
3982
3983
3984
3985
3986 extern int pthread_setcancelstate (int __state, int *__oldstate);
3987
3988
3989
3990 extern int pthread_setcanceltype (int __type, int *__oldtype);
3991
3992
3993 extern int pthread_cancel (pthread_t __cancelthread);
3994
3995
3996
3997
3998 extern void pthread_testcancel (void);
3999 # 614 "/usr/include/pthread.h" 3 4
4000 extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
4001 void (*__routine) (void *),
4002 void *__arg) throw ();
4003
4004
4005
4006
4007
4008
4009
4010 extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
4011 int __execute) throw ();
4012 # 635 "/usr/include/pthread.h" 3 4
4013 extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
4014 void (*__routine) (void *),
4015 void *__arg) throw ();
4016 # 646 "/usr/include/pthread.h" 3 4
4017 extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
4018 int __execute) throw ();
4019
4020
4021
4022
4023
4024 extern int pthread_getcpuclockid (pthread_t __thread_id,
4025 __clockid_t *__clock_id) throw ();
4026
4027
4028
4029
4030 # 1 "/usr/include/bits/sigthread.h" 1 3 4
4031 # 31 "/usr/include/bits/sigthread.h" 3 4
4032 extern int pthread_sigmask (int __how,
4033 __const __sigset_t *__restrict __newmask,
4034 __sigset_t *__restrict __oldmask)throw ();
4035
4036
4037 extern int pthread_kill (pthread_t __threadid, int __signo) throw ();
4038 # 660 "/usr/include/pthread.h" 2 3 4
4039 # 675 "/usr/include/pthread.h" 3 4
4040 extern int pthread_atfork (void (*__prepare) (void),
4041 void (*__parent) (void),
4042 void (*__child) (void)) throw ();
4043
4044
4045
4046
4047 extern void pthread_kill_other_threads_np (void) throw ();
4048
4049 }
4050 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 2 3
4051 # 1 "/usr/include/unistd.h" 1 3 4
4052 # 28 "/usr/include/unistd.h" 3 4
4053 extern "C" {
4054 # 171 "/usr/include/unistd.h" 3 4
4055 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
4056 # 172 "/usr/include/unistd.h" 2 3 4
4057
4058
4059
4060 # 1 "/usr/include/bits/environments.h" 1 3 4
4061 # 176 "/usr/include/unistd.h" 2 3 4
4062 # 189 "/usr/include/unistd.h" 3 4
4063 typedef __ssize_t ssize_t;
4064
4065
4066
4067
4068
4069 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
4070 # 196 "/usr/include/unistd.h" 2 3 4
4071
4072
4073
4074
4075
4076 typedef __gid_t gid_t;
4077
4078
4079
4080
4081 typedef __uid_t uid_t;
4082
4083
4084
4085
4086
4087 typedef __off_t off_t;
4088
4089
4090
4091
4092
4093
4094 typedef __off64_t off64_t;
4095
4096
4097
4098
4099 typedef __useconds_t useconds_t;
4100 # 236 "/usr/include/unistd.h" 3 4
4101 typedef __intptr_t intptr_t;
4102
4103
4104
4105
4106
4107
4108 typedef __socklen_t socklen_t;
4109 # 256 "/usr/include/unistd.h" 3 4
4110 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
4111
4112
4113
4114
4115 extern int euidaccess (__const char *__name, int __type)
4116 throw () __attribute__ ((__nonnull__ (1)));
4117 # 287 "/usr/include/unistd.h" 3 4
4118 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
4119 # 298 "/usr/include/unistd.h" 3 4
4120 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw ();
4121
4122
4123
4124
4125
4126
4127 extern int close (int __fd);
4128
4129
4130
4131
4132
4133
4134 extern ssize_t read (int __fd, void *__buf, size_t __nbytes);
4135
4136
4137
4138
4139
4140 extern ssize_t write (int __fd, __const void *__buf, size_t __n);
4141 # 328 "/usr/include/unistd.h" 3 4
4142 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
4143 __off_t __offset);
4144
4145
4146
4147
4148
4149
4150 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
4151 __off_t __offset);
4152 # 356 "/usr/include/unistd.h" 3 4
4153 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
4154 __off64_t __offset);
4155
4156
4157 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
4158 __off64_t __offset);
4159
4160
4161
4162
4163
4164
4165
4166 extern int pipe (int __pipedes[2]) throw ();
4167 # 378 "/usr/include/unistd.h" 3 4
4168 extern unsigned int alarm (unsigned int __seconds) throw ();
4169 # 390 "/usr/include/unistd.h" 3 4
4170 extern unsigned int sleep (unsigned int __seconds);
4171
4172
4173
4174
4175
4176
4177 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
4178 throw ();
4179
4180
4181
4182
4183
4184
4185 extern int usleep (__useconds_t __useconds);
4186 # 414 "/usr/include/unistd.h" 3 4
4187 extern int pause (void);
4188
4189
4190
4191 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
4192 throw () __attribute__ ((__nonnull__ (1)));
4193
4194
4195
4196 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw ();
4197
4198
4199
4200
4201 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
4202 throw () __attribute__ ((__nonnull__ (1)));
4203
4204
4205
4206
4207 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
4208
4209
4210
4211 extern int fchdir (int __fd) throw ();
4212 # 448 "/usr/include/unistd.h" 3 4
4213 extern char *getcwd (char *__buf, size_t __size) throw ();
4214
4215
4216
4217
4218
4219 extern char *get_current_dir_name (void) throw ();
4220
4221
4222
4223
4224
4225
4226 extern char *getwd (char *__buf) throw () __attribute__ ((__nonnull__ (1)));
4227
4228
4229
4230
4231 extern int dup (int __fd) throw ();
4232
4233
4234 extern int dup2 (int __fd, int __fd2) throw ();
4235
4236
4237 extern char **__environ;
4238
4239 extern char **environ;
4240
4241
4242
4243
4244
4245 extern int execve (__const char *__path, char *__const __argv[],
4246 char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
4247
4248
4249
4250
4251 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
4252 throw ();
4253
4254
4255
4256
4257 extern int execv (__const char *__path, char *__const __argv[])
4258 throw () __attribute__ ((__nonnull__ (1)));
4259
4260
4261
4262 extern int execle (__const char *__path, __const char *__arg, ...)
4263 throw () __attribute__ ((__nonnull__ (1)));
4264
4265
4266
4267 extern int execl (__const char *__path, __const char *__arg, ...)
4268 throw () __attribute__ ((__nonnull__ (1)));
4269
4270
4271
4272 extern int execvp (__const char *__file, char *__const __argv[])
4273 throw () __attribute__ ((__nonnull__ (1)));
4274
4275
4276
4277
4278 extern int execlp (__const char *__file, __const char *__arg, ...)
4279 throw () __attribute__ ((__nonnull__ (1)));
4280
4281
4282
4283
4284 extern int nice (int __inc) throw ();
4285
4286
4287
4288
4289 extern void _exit (int __status) __attribute__ ((__noreturn__));
4290
4291
4292
4293
4294
4295 # 1 "/usr/include/bits/confname.h" 1 3 4
4296 # 26 "/usr/include/bits/confname.h" 3 4
4297 enum
4298 {
4299 _PC_LINK_MAX,
4300
4301 _PC_MAX_CANON,
4302
4303 _PC_MAX_INPUT,
4304
4305 _PC_NAME_MAX,
4306
4307 _PC_PATH_MAX,
4308
4309 _PC_PIPE_BUF,
4310
4311 _PC_CHOWN_RESTRICTED,
4312
4313 _PC_NO_TRUNC,
4314
4315 _PC_VDISABLE,
4316
4317 _PC_SYNC_IO,
4318
4319 _PC_ASYNC_IO,
4320
4321 _PC_PRIO_IO,
4322
4323 _PC_SOCK_MAXBUF,
4324
4325 _PC_FILESIZEBITS,
4326
4327 _PC_REC_INCR_XFER_SIZE,
4328
4329 _PC_REC_MAX_XFER_SIZE,
4330
4331 _PC_REC_MIN_XFER_SIZE,
4332
4333 _PC_REC_XFER_ALIGN,
4334
4335 _PC_ALLOC_SIZE_MIN,
4336
4337 _PC_SYMLINK_MAX,
4338
4339 _PC_2_SYMLINKS
4340
4341 };
4342
4343
4344 enum
4345 {
4346 _SC_ARG_MAX,
4347
4348 _SC_CHILD_MAX,
4349
4350 _SC_CLK_TCK,
4351
4352 _SC_NGROUPS_MAX,
4353
4354 _SC_OPEN_MAX,
4355
4356 _SC_STREAM_MAX,
4357
4358 _SC_TZNAME_MAX,
4359
4360 _SC_JOB_CONTROL,
4361
4362 _SC_SAVED_IDS,
4363
4364 _SC_REALTIME_SIGNALS,
4365
4366 _SC_PRIORITY_SCHEDULING,
4367
4368 _SC_TIMERS,
4369
4370 _SC_ASYNCHRONOUS_IO,
4371
4372 _SC_PRIORITIZED_IO,
4373
4374 _SC_SYNCHRONIZED_IO,
4375
4376 _SC_FSYNC,
4377
4378 _SC_MAPPED_FILES,
4379
4380 _SC_MEMLOCK,
4381
4382 _SC_MEMLOCK_RANGE,
4383
4384 _SC_MEMORY_PROTECTION,
4385
4386 _SC_MESSAGE_PASSING,
4387
4388 _SC_SEMAPHORES,
4389
4390 _SC_SHARED_MEMORY_OBJECTS,
4391
4392 _SC_AIO_LISTIO_MAX,
4393
4394 _SC_AIO_MAX,
4395
4396 _SC_AIO_PRIO_DELTA_MAX,
4397
4398 _SC_DELAYTIMER_MAX,
4399
4400 _SC_MQ_OPEN_MAX,
4401
4402 _SC_MQ_PRIO_MAX,
4403
4404 _SC_VERSION,
4405
4406 _SC_PAGESIZE,
4407
4408
4409 _SC_RTSIG_MAX,
4410
4411 _SC_SEM_NSEMS_MAX,
4412
4413 _SC_SEM_VALUE_MAX,
4414
4415 _SC_SIGQUEUE_MAX,
4416
4417 _SC_TIMER_MAX,
4418
4419
4420
4421
4422 _SC_BC_BASE_MAX,
4423
4424 _SC_BC_DIM_MAX,
4425
4426 _SC_BC_SCALE_MAX,
4427
4428 _SC_BC_STRING_MAX,
4429
4430 _SC_COLL_WEIGHTS_MAX,
4431
4432 _SC_EQUIV_CLASS_MAX,
4433
4434 _SC_EXPR_NEST_MAX,
4435
4436 _SC_LINE_MAX,
4437
4438 _SC_RE_DUP_MAX,
4439
4440 _SC_CHARCLASS_NAME_MAX,
4441
4442
4443 _SC_2_VERSION,
4444
4445 _SC_2_C_BIND,
4446
4447 _SC_2_C_DEV,
4448
4449 _SC_2_FORT_DEV,
4450
4451 _SC_2_FORT_RUN,
4452
4453 _SC_2_SW_DEV,
4454
4455 _SC_2_LOCALEDEF,
4456
4457
4458 _SC_PII,
4459
4460 _SC_PII_XTI,
4461
4462 _SC_PII_SOCKET,
4463
4464 _SC_PII_INTERNET,
4465
4466 _SC_PII_OSI,
4467
4468 _SC_POLL,
4469
4470 _SC_SELECT,
4471
4472 _SC_UIO_MAXIOV,
4473
4474 _SC_IOV_MAX = _SC_UIO_MAXIOV,
4475
4476 _SC_PII_INTERNET_STREAM,
4477
4478 _SC_PII_INTERNET_DGRAM,
4479
4480 _SC_PII_OSI_COTS,
4481
4482 _SC_PII_OSI_CLTS,
4483
4484 _SC_PII_OSI_M,
4485
4486 _SC_T_IOV_MAX,
4487
4488
4489
4490 _SC_THREADS,
4491
4492 _SC_THREAD_SAFE_FUNCTIONS,
4493
4494 _SC_GETGR_R_SIZE_MAX,
4495
4496 _SC_GETPW_R_SIZE_MAX,
4497
4498 _SC_LOGIN_NAME_MAX,
4499
4500 _SC_TTY_NAME_MAX,
4501
4502 _SC_THREAD_DESTRUCTOR_ITERATIONS,
4503
4504 _SC_THREAD_KEYS_MAX,
4505
4506 _SC_THREAD_STACK_MIN,
4507
4508 _SC_THREAD_THREADS_MAX,
4509
4510 _SC_THREAD_ATTR_STACKADDR,
4511
4512 _SC_THREAD_ATTR_STACKSIZE,
4513
4514 _SC_THREAD_PRIORITY_SCHEDULING,
4515
4516 _SC_THREAD_PRIO_INHERIT,
4517
4518 _SC_THREAD_PRIO_PROTECT,
4519
4520 _SC_THREAD_PROCESS_SHARED,
4521
4522
4523 _SC_NPROCESSORS_CONF,
4524
4525 _SC_NPROCESSORS_ONLN,
4526
4527 _SC_PHYS_PAGES,
4528
4529 _SC_AVPHYS_PAGES,
4530
4531 _SC_ATEXIT_MAX,
4532
4533 _SC_PASS_MAX,
4534
4535
4536 _SC_XOPEN_VERSION,
4537
4538 _SC_XOPEN_XCU_VERSION,
4539
4540 _SC_XOPEN_UNIX,
4541
4542 _SC_XOPEN_CRYPT,
4543
4544 _SC_XOPEN_ENH_I18N,
4545
4546 _SC_XOPEN_SHM,
4547
4548
4549 _SC_2_CHAR_TERM,
4550
4551 _SC_2_C_VERSION,
4552
4553 _SC_2_UPE,
4554
4555
4556 _SC_XOPEN_XPG2,
4557
4558 _SC_XOPEN_XPG3,
4559
4560 _SC_XOPEN_XPG4,
4561
4562
4563 _SC_CHAR_BIT,
4564
4565 _SC_CHAR_MAX,
4566
4567 _SC_CHAR_MIN,
4568
4569 _SC_INT_MAX,
4570
4571 _SC_INT_MIN,
4572
4573 _SC_LONG_BIT,
4574
4575 _SC_WORD_BIT,
4576
4577 _SC_MB_LEN_MAX,
4578
4579 _SC_NZERO,
4580
4581 _SC_SSIZE_MAX,
4582
4583 _SC_SCHAR_MAX,
4584
4585 _SC_SCHAR_MIN,
4586
4587 _SC_SHRT_MAX,
4588
4589 _SC_SHRT_MIN,
4590
4591 _SC_UCHAR_MAX,
4592
4593 _SC_UINT_MAX,
4594
4595 _SC_ULONG_MAX,
4596
4597 _SC_USHRT_MAX,
4598
4599
4600 _SC_NL_ARGMAX,
4601
4602 _SC_NL_LANGMAX,
4603
4604 _SC_NL_MSGMAX,
4605
4606 _SC_NL_NMAX,
4607
4608 _SC_NL_SETMAX,
4609
4610 _SC_NL_TEXTMAX,
4611
4612
4613 _SC_XBS5_ILP32_OFF32,
4614
4615 _SC_XBS5_ILP32_OFFBIG,
4616
4617 _SC_XBS5_LP64_OFF64,
4618
4619 _SC_XBS5_LPBIG_OFFBIG,
4620
4621
4622 _SC_XOPEN_LEGACY,
4623
4624 _SC_XOPEN_REALTIME,
4625
4626 _SC_XOPEN_REALTIME_THREADS,
4627
4628
4629 _SC_ADVISORY_INFO,
4630
4631 _SC_BARRIERS,
4632
4633 _SC_BASE,
4634
4635 _SC_C_LANG_SUPPORT,
4636
4637 _SC_C_LANG_SUPPORT_R,
4638
4639 _SC_CLOCK_SELECTION,
4640
4641 _SC_CPUTIME,
4642
4643 _SC_THREAD_CPUTIME,
4644
4645 _SC_DEVICE_IO,
4646
4647 _SC_DEVICE_SPECIFIC,
4648
4649 _SC_DEVICE_SPECIFIC_R,
4650
4651 _SC_FD_MGMT,
4652
4653 _SC_FIFO,
4654
4655 _SC_PIPE,
4656
4657 _SC_FILE_ATTRIBUTES,
4658
4659 _SC_FILE_LOCKING,
4660
4661 _SC_FILE_SYSTEM,
4662
4663 _SC_MONOTONIC_CLOCK,
4664
4665 _SC_MULTI_PROCESS,
4666
4667 _SC_SINGLE_PROCESS,
4668
4669 _SC_NETWORKING,
4670
4671 _SC_READER_WRITER_LOCKS,
4672
4673 _SC_SPIN_LOCKS,
4674
4675 _SC_REGEXP,
4676
4677 _SC_REGEX_VERSION,
4678
4679 _SC_SHELL,
4680
4681 _SC_SIGNALS,
4682
4683 _SC_SPAWN,
4684
4685 _SC_SPORADIC_SERVER,
4686
4687 _SC_THREAD_SPORADIC_SERVER,
4688
4689 _SC_SYSTEM_DATABASE,
4690
4691 _SC_SYSTEM_DATABASE_R,
4692
4693 _SC_TIMEOUTS,
4694
4695 _SC_TYPED_MEMORY_OBJECTS,
4696
4697 _SC_USER_GROUPS,
4698
4699 _SC_USER_GROUPS_R,
4700
4701 _SC_2_PBS,
4702
4703 _SC_2_PBS_ACCOUNTING,
4704
4705 _SC_2_PBS_LOCATE,
4706
4707 _SC_2_PBS_MESSAGE,
4708
4709 _SC_2_PBS_TRACK,
4710
4711 _SC_SYMLOOP_MAX,
4712
4713 _SC_STREAMS,
4714
4715 _SC_2_PBS_CHECKPOINT,
4716
4717
4718 _SC_V6_ILP32_OFF32,
4719
4720 _SC_V6_ILP32_OFFBIG,
4721
4722 _SC_V6_LP64_OFF64,
4723
4724 _SC_V6_LPBIG_OFFBIG,
4725
4726
4727 _SC_HOST_NAME_MAX,
4728
4729 _SC_TRACE,
4730
4731 _SC_TRACE_EVENT_FILTER,
4732
4733 _SC_TRACE_INHERIT,
4734
4735 _SC_TRACE_LOG,
4736
4737
4738 _SC_LEVEL1_ICACHE_SIZE,
4739
4740 _SC_LEVEL1_ICACHE_ASSOC,
4741
4742 _SC_LEVEL1_ICACHE_LINESIZE,
4743
4744 _SC_LEVEL1_DCACHE_SIZE,
4745
4746 _SC_LEVEL1_DCACHE_ASSOC,
4747
4748 _SC_LEVEL1_DCACHE_LINESIZE,
4749
4750 _SC_LEVEL2_CACHE_SIZE,
4751
4752 _SC_LEVEL2_CACHE_ASSOC,
4753
4754 _SC_LEVEL2_CACHE_LINESIZE,
4755
4756 _SC_LEVEL3_CACHE_SIZE,
4757
4758 _SC_LEVEL3_CACHE_ASSOC,
4759
4760 _SC_LEVEL3_CACHE_LINESIZE,
4761
4762 _SC_LEVEL4_CACHE_SIZE,
4763
4764 _SC_LEVEL4_CACHE_ASSOC,
4765
4766 _SC_LEVEL4_CACHE_LINESIZE,
4767
4768
4769
4770 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
4771
4772 _SC_RAW_SOCKETS
4773
4774 };
4775
4776
4777 enum
4778 {
4779 _CS_PATH,
4780
4781
4782 _CS_V6_WIDTH_RESTRICTED_ENVS,
4783
4784
4785 _CS_GNU_LIBC_VERSION,
4786
4787 _CS_GNU_LIBPTHREAD_VERSION,
4788
4789
4790 _CS_LFS_CFLAGS = 1000,
4791
4792 _CS_LFS_LDFLAGS,
4793
4794 _CS_LFS_LIBS,
4795
4796 _CS_LFS_LINTFLAGS,
4797
4798 _CS_LFS64_CFLAGS,
4799
4800 _CS_LFS64_LDFLAGS,
4801
4802 _CS_LFS64_LIBS,
4803
4804 _CS_LFS64_LINTFLAGS,
4805
4806
4807 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
4808
4809 _CS_XBS5_ILP32_OFF32_LDFLAGS,
4810
4811 _CS_XBS5_ILP32_OFF32_LIBS,
4812
4813 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
4814
4815 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
4816
4817 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
4818
4819 _CS_XBS5_ILP32_OFFBIG_LIBS,
4820
4821 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
4822
4823 _CS_XBS5_LP64_OFF64_CFLAGS,
4824
4825 _CS_XBS5_LP64_OFF64_LDFLAGS,
4826
4827 _CS_XBS5_LP64_OFF64_LIBS,
4828
4829 _CS_XBS5_LP64_OFF64_LINTFLAGS,
4830
4831 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
4832
4833 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
4834
4835 _CS_XBS5_LPBIG_OFFBIG_LIBS,
4836
4837 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
4838
4839
4840 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
4841
4842 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
4843
4844 _CS_POSIX_V6_ILP32_OFF32_LIBS,
4845
4846 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
4847
4848 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
4849
4850 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
4851
4852 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
4853
4854 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
4855
4856 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
4857
4858 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
4859
4860 _CS_POSIX_V6_LP64_OFF64_LIBS,
4861
4862 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
4863
4864 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
4865
4866 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
4867
4868 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
4869
4870 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
4871
4872 };
4873 # 531 "/usr/include/unistd.h" 2 3 4
4874
4875
4876 extern long int pathconf (__const char *__path, int __name)
4877 throw () __attribute__ ((__nonnull__ (1)));
4878
4879
4880 extern long int fpathconf (int __fd, int __name) throw ();
4881
4882
4883 extern long int sysconf (int __name) throw () __attribute__ ((__const__));
4884
4885
4886
4887 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
4888
4889
4890
4891
4892 extern __pid_t getpid (void) throw ();
4893
4894
4895 extern __pid_t getppid (void) throw ();
4896
4897
4898
4899
4900 extern __pid_t getpgrp (void) throw ();
4901 # 567 "/usr/include/unistd.h" 3 4
4902 extern __pid_t __getpgid (__pid_t __pid) throw ();
4903
4904 extern __pid_t getpgid (__pid_t __pid) throw ();
4905
4906
4907
4908
4909
4910
4911 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
4912 # 593 "/usr/include/unistd.h" 3 4
4913 extern int setpgrp (void) throw ();
4914 # 610 "/usr/include/unistd.h" 3 4
4915 extern __pid_t setsid (void) throw ();
4916
4917
4918
4919 extern __pid_t getsid (__pid_t __pid) throw ();
4920
4921
4922
4923 extern __uid_t getuid (void) throw ();
4924
4925
4926 extern __uid_t geteuid (void) throw ();
4927
4928
4929 extern __gid_t getgid (void) throw ();
4930
4931
4932 extern __gid_t getegid (void) throw ();
4933
4934
4935
4936
4937 extern int getgroups (int __size, __gid_t __list[]) throw ();
4938
4939
4940
4941 extern int group_member (__gid_t __gid) throw ();
4942
4943
4944
4945
4946
4947
4948 extern int setuid (__uid_t __uid) throw ();
4949
4950
4951
4952
4953 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
4954
4955
4956
4957
4958 extern int seteuid (__uid_t __uid) throw ();
4959
4960
4961
4962
4963
4964
4965 extern int setgid (__gid_t __gid) throw ();
4966
4967
4968
4969
4970 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
4971
4972
4973
4974
4975 extern int setegid (__gid_t __gid) throw ();
4976
4977
4978
4979
4980
4981 extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid);
4982
4983
4984
4985 extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid);
4986
4987
4988
4989 extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid);
4990
4991
4992
4993 extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid);
4994
4995
4996
4997
4998
4999
5000 extern __pid_t fork (void) throw ();
5001
5002
5003
5004
5005
5006
5007 extern __pid_t vfork (void) throw ();
5008
5009
5010
5011
5012
5013 extern char *ttyname (int __fd) throw ();
5014
5015
5016
5017 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
5018 throw () __attribute__ ((__nonnull__ (2)));
5019
5020
5021
5022 extern int isatty (int __fd) throw ();
5023
5024
5025
5026
5027
5028 extern int ttyslot (void) throw ();
5029
5030
5031
5032
5033 extern int link (__const char *__from, __const char *__to)
5034 throw () __attribute__ ((__nonnull__ (1, 2)));
5035
5036
5037
5038 extern int symlink (__const char *__from, __const char *__to)
5039 throw () __attribute__ ((__nonnull__ (1, 2)));
5040
5041
5042
5043
5044 extern int readlink (__const char *__restrict __path, char *__restrict __buf,
5045 size_t __len) throw () __attribute__ ((__nonnull__ (1, 2)));
5046
5047
5048
5049 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
5050
5051
5052 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
5053
5054
5055
5056 extern __pid_t tcgetpgrp (int __fd) throw ();
5057
5058
5059 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
5060
5061
5062
5063
5064
5065
5066 extern char *getlogin (void);
5067
5068
5069
5070
5071
5072
5073
5074 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
5075
5076
5077
5078
5079 extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
5080 # 783 "/usr/include/unistd.h" 3 4
5081 # 1 "/usr/include/getopt.h" 1 3 4
5082 # 50 "/usr/include/getopt.h" 3 4
5083 extern "C" {
5084 # 59 "/usr/include/getopt.h" 3 4
5085 extern char *optarg;
5086 # 73 "/usr/include/getopt.h" 3 4
5087 extern int optind;
5088
5089
5090
5091
5092 extern int opterr;
5093
5094
5095
5096 extern int optopt;
5097 # 152 "/usr/include/getopt.h" 3 4
5098 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
5099 throw ();
5100 # 171 "/usr/include/getopt.h" 3 4
5101 }
5102 # 784 "/usr/include/unistd.h" 2 3 4
5103
5104
5105
5106
5107
5108
5109
5110 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
5111
5112
5113
5114
5115
5116
5117 extern int sethostname (__const char *__name, size_t __len)
5118 throw () __attribute__ ((__nonnull__ (1)));
5119
5120
5121
5122 extern int sethostid (long int __id) throw ();
5123
5124
5125
5126
5127
5128 extern int getdomainname (char *__name, size_t __len)
5129 throw () __attribute__ ((__nonnull__ (1)));
5130 extern int setdomainname (__const char *__name, size_t __len)
5131 throw () __attribute__ ((__nonnull__ (1)));
5132
5133
5134
5135
5136
5137 extern int vhangup (void) throw ();
5138
5139
5140 extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1)));
5141
5142
5143
5144
5145
5146
5147
5148 extern int profil (unsigned short int *__sample_buffer, size_t __size,
5149 size_t __offset, unsigned int __scale)
5150 throw () __attribute__ ((__nonnull__ (1)));
5151
5152
5153
5154
5155
5156 extern int acct (__const char *__name) throw ();
5157
5158
5159
5160 extern char *getusershell (void) throw ();
5161 extern void endusershell (void) throw ();
5162 extern void setusershell (void) throw ();
5163
5164
5165
5166
5167
5168 extern int daemon (int __nochdir, int __noclose) throw ();
5169
5170
5171
5172
5173
5174
5175 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
5176
5177
5178
5179 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
5180 # 869 "/usr/include/unistd.h" 3 4
5181 extern int fsync (int __fd);
5182
5183
5184
5185
5186
5187
5188 extern long int gethostid (void);
5189
5190
5191 extern void sync (void) throw ();
5192
5193
5194
5195
5196 extern int getpagesize (void) throw () __attribute__ ((__const__));
5197
5198
5199
5200
5201 extern int getdtablesize (void) throw ();
5202
5203
5204
5205
5206 extern int truncate (__const char *__file, __off_t __length)
5207 throw () __attribute__ ((__nonnull__ (1)));
5208 # 906 "/usr/include/unistd.h" 3 4
5209 extern int truncate64 (__const char *__file, __off64_t __length)
5210 throw () __attribute__ ((__nonnull__ (1)));
5211 # 916 "/usr/include/unistd.h" 3 4
5212 extern int ftruncate (int __fd, __off_t __length) throw ();
5213 # 926 "/usr/include/unistd.h" 3 4
5214 extern int ftruncate64 (int __fd, __off64_t __length) throw ();
5215 # 936 "/usr/include/unistd.h" 3 4
5216 extern int brk (void *__addr) throw ();
5217
5218
5219
5220
5221
5222 extern void *sbrk (intptr_t __delta) throw ();
5223 # 957 "/usr/include/unistd.h" 3 4
5224 extern long int syscall (long int __sysno, ...) throw ();
5225 # 980 "/usr/include/unistd.h" 3 4
5226 extern int lockf (int __fd, int __cmd, __off_t __len);
5227 # 990 "/usr/include/unistd.h" 3 4
5228 extern int lockf64 (int __fd, int __cmd, __off64_t __len);
5229 # 1011 "/usr/include/unistd.h" 3 4
5230 extern int fdatasync (int __fildes) throw ();
5231
5232
5233
5234
5235
5236
5237
5238 extern char *crypt (__const char *__key, __const char *__salt)
5239 throw () __attribute__ ((__nonnull__ (1, 2)));
5240
5241
5242
5243 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
5244
5245
5246
5247
5248
5249
5250 extern void swab (__const void *__restrict __from, void *__restrict __to,
5251 ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
5252
5253
5254
5255
5256
5257
5258
5259 extern char *ctermid (char *__s) throw ();
5260
5261
5262 }
5263 # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 2 3
5264
5265 typedef pthread_key_t __gthread_key_t;
5266 typedef pthread_once_t __gthread_once_t;
5267 typedef pthread_mutex_t __gthread_mutex_t;
5268 typedef pthread_mutex_t __gthread_recursive_mutex_t;
5269 # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5270 extern __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
5271 extern __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
5272 extern __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
5273 extern __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
5274 extern __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
5275 extern __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
5276
5277 extern __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
5278 extern __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
5279 extern __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
5280 extern __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
5281 extern __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
5282 extern __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
5283
5284 extern __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
5285 # 200 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5286 static inline int
5287 __gthread_active_p (void)
5288 {
5289 static void *const __gthread_active_ptr = (void *) &__gthrw_pthread_create;
5290 return __gthread_active_ptr != 0;
5291 }
5292 # 562 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5293 static inline int
5294 __gthread_once (__gthread_once_t *once, void (*func) (void))
5295 {
5296 if (__gthread_active_p ())
5297 return __gthrw_pthread_once (once, func);
5298 else
5299 return -1;
5300 }
5301
5302 static inline int
5303 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
5304 {
5305 return __gthrw_pthread_key_create (key, dtor);
5306 }
5307
5308 static inline int
5309 __gthread_key_delete (__gthread_key_t key)
5310 {
5311 return __gthrw_pthread_key_delete (key);
5312 }
5313
5314 static inline void *
5315 __gthread_getspecific (__gthread_key_t key)
5316 {
5317 return __gthrw_pthread_getspecific (key);
5318 }
5319
5320 static inline int
5321 __gthread_setspecific (__gthread_key_t key, const void *ptr)
5322 {
5323 return __gthrw_pthread_setspecific (key, ptr);
5324 }
5325
5326 static inline int
5327 __gthread_mutex_lock (__gthread_mutex_t *mutex)
5328 {
5329 if (__gthread_active_p ())
5330 return __gthrw_pthread_mutex_lock (mutex);
5331 else
5332 return 0;
5333 }
5334
5335 static inline int
5336 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
5337 {
5338 if (__gthread_active_p ())
5339 return __gthrw_pthread_mutex_trylock (mutex);
5340 else
5341 return 0;
5342 }
5343
5344 static inline int
5345 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
5346 {
5347 if (__gthread_active_p ())
5348 return __gthrw_pthread_mutex_unlock (mutex);
5349 else
5350 return 0;
5351 }
5352 # 643 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h" 3
5353 static inline int
5354 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
5355 {
5356 return __gthread_mutex_lock (mutex);
5357 }
5358
5359 static inline int
5360 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
5361 {
5362 return __gthread_mutex_trylock (mutex);
5363 }
5364
5365 static inline int
5366 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
5367 {
5368 return __gthread_mutex_unlock (mutex);
5369 }
5370 # 105 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/gthr.h" 2 3
5371 # 38 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++io.h" 2 3
5372
5373 namespace std
5374 {
5375 typedef __gthread_mutex_t __c_lock;
5376
5377
5378 typedef FILE __c_file;
5379
5380
5381
5382 struct __ios_flags
5383 {
5384 typedef short __int_type;
5385
5386 static const __int_type _S_boolalpha = 0x0001;
5387 static const __int_type _S_dec = 0x0002;
5388 static const __int_type _S_fixed = 0x0004;
5389 static const __int_type _S_hex = 0x0008;
5390 static const __int_type _S_internal = 0x0010;
5391 static const __int_type _S_left = 0x0020;
5392 static const __int_type _S_oct = 0x0040;
5393 static const __int_type _S_right = 0x0080;
5394 static const __int_type _S_scientific = 0x0100;
5395 static const __int_type _S_showbase = 0x0200;
5396 static const __int_type _S_showpoint = 0x0400;
5397 static const __int_type _S_showpos = 0x0800;
5398 static const __int_type _S_skipws = 0x1000;
5399 static const __int_type _S_unitbuf = 0x2000;
5400 static const __int_type _S_uppercase = 0x4000;
5401 static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010;
5402 static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008;
5403 static const __int_type _S_floatfield = 0x0100 | 0x0004;
5404
5405
5406 static const __int_type _S_badbit = 0x01;
5407 static const __int_type _S_eofbit = 0x02;
5408 static const __int_type _S_failbit = 0x04;
5409
5410
5411 static const __int_type _S_app = 0x01;
5412 static const __int_type _S_ate = 0x02;
5413 static const __int_type _S_bin = 0x04;
5414 static const __int_type _S_in = 0x08;
5415 static const __int_type _S_out = 0x10;
5416 static const __int_type _S_trunc = 0x20;
5417 };
5418 }
5419 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
5420 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 1 3
5421 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 3
5422
5423 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 3
5424
5425
5426 # 1 "/usr/include/ctype.h" 1 3 4
5427 # 30 "/usr/include/ctype.h" 3 4
5428 extern "C" {
5429 # 41 "/usr/include/ctype.h" 3 4
5430 # 1 "/usr/include/endian.h" 1 3 4
5431 # 37 "/usr/include/endian.h" 3 4
5432 # 1 "/usr/include/bits/endian.h" 1 3 4
5433 # 38 "/usr/include/endian.h" 2 3 4
5434 # 42 "/usr/include/ctype.h" 2 3 4
5435
5436
5437
5438
5439
5440
5441 enum
5442 {
5443 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
5444 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
5445 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
5446 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
5447 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
5448 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
5449 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
5450 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
5451 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
5452 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
5453 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
5454 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
5455 };
5456 # 81 "/usr/include/ctype.h" 3 4
5457 extern __const unsigned short int **__ctype_b_loc (void)
5458 __attribute__ ((__const));
5459 extern __const __int32_t **__ctype_tolower_loc (void)
5460 __attribute__ ((__const));
5461 extern __const __int32_t **__ctype_toupper_loc (void)
5462 __attribute__ ((__const));
5463 # 96 "/usr/include/ctype.h" 3 4
5464
5465
5466
5467
5468
5469
5470 extern int isalnum (int) throw ();
5471 extern int isalpha (int) throw ();
5472 extern int iscntrl (int) throw ();
5473 extern int isdigit (int) throw ();
5474 extern int islower (int) throw ();
5475 extern int isgraph (int) throw ();
5476 extern int isprint (int) throw ();
5477 extern int ispunct (int) throw ();
5478 extern int isspace (int) throw ();
5479 extern int isupper (int) throw ();
5480 extern int isxdigit (int) throw ();
5481
5482
5483
5484 extern int tolower (int __c) throw ();
5485
5486
5487 extern int toupper (int __c) throw ();
5488
5489
5490
5491
5492
5493
5494
5495
5496 extern int isblank (int) throw ();
5497
5498
5499
5500
5501
5502
5503 extern int isctype (int __c, int __mask) throw ();
5504
5505
5506
5507
5508
5509
5510 extern int isascii (int __c) throw ();
5511
5512
5513
5514 extern int toascii (int __c) throw ();
5515
5516
5517
5518 extern int _toupper (int) throw ();
5519 extern int _tolower (int) throw ();
5520 # 247 "/usr/include/ctype.h" 3 4
5521 extern int isalnum_l (int, __locale_t) throw ();
5522 extern int isalpha_l (int, __locale_t) throw ();
5523 extern int iscntrl_l (int, __locale_t) throw ();
5524 extern int isdigit_l (int, __locale_t) throw ();
5525 extern int islower_l (int, __locale_t) throw ();
5526 extern int isgraph_l (int, __locale_t) throw ();
5527 extern int isprint_l (int, __locale_t) throw ();
5528 extern int ispunct_l (int, __locale_t) throw ();
5529 extern int isspace_l (int, __locale_t) throw ();
5530 extern int isupper_l (int, __locale_t) throw ();
5531 extern int isxdigit_l (int, __locale_t) throw ();
5532
5533 extern int isblank_l (int, __locale_t) throw ();
5534
5535
5536
5537 extern int __tolower_l (int __c, __locale_t __l) throw ();
5538 extern int tolower_l (int __c, __locale_t __l) throw ();
5539
5540
5541 extern int __toupper_l (int __c, __locale_t __l) throw ();
5542 extern int toupper_l (int __c, __locale_t __l) throw ();
5543 # 323 "/usr/include/ctype.h" 3 4
5544 }
5545 # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 2 3
5546 # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype" 3
5547 namespace std
5548 {
5549 using ::isalnum;
5550 using ::isalpha;
5551 using ::iscntrl;
5552 using ::isdigit;
5553 using ::isgraph;
5554 using ::islower;
5555 using ::isprint;
5556 using ::ispunct;
5557 using ::isspace;
5558 using ::isupper;
5559 using ::isxdigit;
5560 using ::tolower;
5561 using ::toupper;
5562 }
5563 # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
5564 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h" 1 3
5565 # 42 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h" 3
5566
5567 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h" 3
5568
5569
5570
5571 namespace std
5572 {
5573 template<typename _Alloc>
5574 class allocator;
5575
5576 template<class _CharT>
5577 struct char_traits;
5578
5579 template<typename _CharT, typename _Traits = char_traits<_CharT>,
5580 typename _Alloc = allocator<_CharT> >
5581 class basic_string;
5582
5583 template<> struct char_traits<char>;
5584
5585 typedef basic_string<char> string;
5586
5587
5588 template<> struct char_traits<wchar_t>;
5589
5590 typedef basic_string<wchar_t> wstring;
5591
5592 }
5593 # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
5594 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 1 3
5595 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
5596
5597 # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
5598
5599 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 1 3
5600 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
5601
5602 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
5603
5604
5605
5606 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 1 3
5607 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 3
5608
5609 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 3
5610 # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime" 3
5611 namespace std
5612 {
5613 using ::clock_t;
5614 using ::time_t;
5615 using ::tm;
5616
5617 using ::clock;
5618 using ::difftime;
5619 using ::mktime;
5620 using ::time;
5621 using ::asctime;
5622 using ::ctime;
5623 using ::gmtime;
5624 using ::localtime;
5625 using ::strftime;
5626 }
5627 # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 2 3
5628
5629
5630 # 1 "/usr/include/wchar.h" 1 3 4
5631 # 40 "/usr/include/wchar.h" 3 4
5632 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 1 3 4
5633 # 41 "/usr/include/wchar.h" 2 3 4
5634
5635
5636
5637
5638
5639
5640
5641 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
5642 # 49 "/usr/include/wchar.h" 2 3 4
5643 # 93 "/usr/include/wchar.h" 3 4
5644
5645
5646 typedef __mbstate_t mbstate_t;
5647
5648
5649
5650 # 118 "/usr/include/wchar.h" 3 4
5651 extern "C" {
5652
5653
5654
5655
5656 struct tm;
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
5667 __const wchar_t *__restrict __src) throw ();
5668
5669 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
5670 __const wchar_t *__restrict __src, size_t __n)
5671 throw ();
5672
5673
5674 extern wchar_t *wcscat (wchar_t *__restrict __dest,
5675 __const wchar_t *__restrict __src) throw ();
5676
5677 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
5678 __const wchar_t *__restrict __src, size_t __n)
5679 throw ();
5680
5681
5682 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
5683 throw () __attribute__ ((__pure__));
5684
5685 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
5686 throw () __attribute__ ((__pure__));
5687
5688
5689
5690
5691 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
5692
5693
5694 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
5695 size_t __n) throw ();
5696
5697
5698
5699
5700
5701 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
5702 __locale_t __loc) throw ();
5703
5704 extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
5705 size_t __n, __locale_t __loc) throw ();
5706
5707
5708
5709
5710
5711 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
5712
5713
5714
5715 extern size_t wcsxfrm (wchar_t *__restrict __s1,
5716 __const wchar_t *__restrict __s2, size_t __n) throw ();
5717
5718
5719
5720
5721
5722
5723
5724
5725 extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
5726 __locale_t __loc) throw ();
5727
5728
5729
5730
5731 extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
5732 size_t __n, __locale_t __loc) throw ();
5733
5734
5735 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
5736
5737
5738
5739
5740 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
5741 throw () __attribute__ ((__pure__));
5742
5743 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
5744 throw () __attribute__ ((__pure__));
5745
5746
5747
5748
5749
5750 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
5751 throw () __attribute__ ((__pure__));
5752
5753
5754
5755
5756
5757 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
5758 throw () __attribute__ ((__pure__));
5759
5760
5761 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
5762 throw () __attribute__ ((__pure__));
5763
5764 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
5765 throw () __attribute__ ((__pure__));
5766
5767 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
5768 throw () __attribute__ ((__pure__));
5769
5770
5771 extern wchar_t *wcstok (wchar_t *__restrict __s,
5772 __const wchar_t *__restrict __delim,
5773 wchar_t **__restrict __ptr) throw ();
5774
5775
5776 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
5777
5778
5779
5780
5781 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
5782 throw () __attribute__ ((__pure__));
5783
5784
5785
5786
5787 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
5788 throw () __attribute__ ((__pure__));
5789
5790
5791
5792
5793
5794 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
5795 throw () __attribute__ ((__pure__));
5796
5797
5798 extern int wmemcmp (__const wchar_t *__restrict __s1,
5799 __const wchar_t *__restrict __s2, size_t __n)
5800 throw () __attribute__ ((__pure__));
5801
5802
5803 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
5804 __const wchar_t *__restrict __s2, size_t __n) throw ();
5805
5806
5807
5808 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
5809 throw ();
5810
5811
5812 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
5813
5814
5815
5816
5817
5818 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
5819 __const wchar_t *__restrict __s2, size_t __n)
5820 throw ();
5821
5822
5823
5824
5825
5826
5827 extern wint_t btowc (int __c) throw ();
5828
5829
5830
5831 extern int wctob (wint_t __c) throw ();
5832
5833
5834
5835 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
5836
5837
5838
5839 extern size_t mbrtowc (wchar_t *__restrict __pwc,
5840 __const char *__restrict __s, size_t __n,
5841 mbstate_t *__p) throw ();
5842
5843
5844 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
5845 mbstate_t *__restrict __ps) throw ();
5846
5847
5848 extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
5849 mbstate_t *__restrict __ps) throw ();
5850 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
5851 mbstate_t *__restrict __ps) throw ();
5852
5853 # 330 "/usr/include/wchar.h" 3 4
5854
5855
5856
5857 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
5858 __const char **__restrict __src, size_t __len,
5859 mbstate_t *__restrict __ps) throw ();
5860
5861
5862
5863 extern size_t wcsrtombs (char *__restrict __dst,
5864 __const wchar_t **__restrict __src, size_t __len,
5865 mbstate_t *__restrict __ps) throw ();
5866
5867
5868
5869
5870
5871
5872 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
5873 __const char **__restrict __src, size_t __nmc,
5874 size_t __len, mbstate_t *__restrict __ps) throw ();
5875
5876
5877
5878 extern size_t wcsnrtombs (char *__restrict __dst,
5879 __const wchar_t **__restrict __src,
5880 size_t __nwc, size_t __len,
5881 mbstate_t *__restrict __ps) throw ();
5882
5883
5884
5885
5886
5887
5888 extern int wcwidth (wchar_t __c) throw ();
5889
5890
5891
5892 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
5893
5894
5895
5896
5897
5898
5899 extern double wcstod (__const wchar_t *__restrict __nptr,
5900 wchar_t **__restrict __endptr) throw ();
5901
5902
5903
5904 extern float wcstof (__const wchar_t *__restrict __nptr,
5905 wchar_t **__restrict __endptr) throw ();
5906 extern long double wcstold (__const wchar_t *__restrict __nptr,
5907 wchar_t **__restrict __endptr) throw ();
5908
5909
5910
5911
5912
5913 extern long int wcstol (__const wchar_t *__restrict __nptr,
5914 wchar_t **__restrict __endptr, int __base) throw ();
5915
5916
5917
5918 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
5919 wchar_t **__restrict __endptr, int __base)
5920 throw ();
5921
5922
5923
5924
5925 __extension__
5926 extern long long int wcstoll (__const wchar_t *__restrict __nptr,
5927 wchar_t **__restrict __endptr, int __base)
5928 throw ();
5929
5930
5931
5932 __extension__
5933 extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
5934 wchar_t **__restrict __endptr,
5935 int __base) throw ();
5936
5937
5938
5939
5940
5941
5942 __extension__
5943 extern long long int wcstoq (__const wchar_t *__restrict __nptr,
5944 wchar_t **__restrict __endptr, int __base)
5945 throw ();
5946
5947
5948
5949 __extension__
5950 extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
5951 wchar_t **__restrict __endptr,
5952 int __base) throw ();
5953 # 449 "/usr/include/wchar.h" 3 4
5954 extern long int wcstol_l (__const wchar_t *__restrict __nptr,
5955 wchar_t **__restrict __endptr, int __base,
5956 __locale_t __loc) throw ();
5957
5958 extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
5959 wchar_t **__restrict __endptr,
5960 int __base, __locale_t __loc) throw ();
5961
5962 __extension__
5963 extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
5964 wchar_t **__restrict __endptr,
5965 int __base, __locale_t __loc) throw ();
5966
5967 __extension__
5968 extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
5969 wchar_t **__restrict __endptr,
5970 int __base, __locale_t __loc)
5971 throw ();
5972
5973 extern double wcstod_l (__const wchar_t *__restrict __nptr,
5974 wchar_t **__restrict __endptr, __locale_t __loc)
5975 throw ();
5976
5977 extern float wcstof_l (__const wchar_t *__restrict __nptr,
5978 wchar_t **__restrict __endptr, __locale_t __loc)
5979 throw ();
5980
5981 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
5982 wchar_t **__restrict __endptr,
5983 __locale_t __loc) throw ();
5984
5985
5986
5987
5988
5989 extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
5990 wchar_t **__restrict __endptr, int __group)
5991 throw ();
5992 extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
5993 wchar_t **__restrict __endptr, int __group)
5994 throw ();
5995 extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
5996 wchar_t **__restrict __endptr,
5997 int __group) throw ();
5998 # 575 "/usr/include/wchar.h" 3 4
5999 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
6000
6001
6002
6003 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
6004 throw ();
6005
6006
6007
6008
6009
6010
6011
6012
6013 extern int fwide (__FILE *__fp, int __mode) throw ();
6014
6015
6016
6017
6018
6019
6020 extern int fwprintf (__FILE *__restrict __stream,
6021 __const wchar_t *__restrict __format, ...)
6022 ;
6023
6024
6025
6026
6027 extern int wprintf (__const wchar_t *__restrict __format, ...)
6028 ;
6029
6030 extern int swprintf (wchar_t *__restrict __s, size_t __n,
6031 __const wchar_t *__restrict __format, ...)
6032 throw () ;
6033
6034
6035
6036
6037
6038 extern int vfwprintf (__FILE *__restrict __s,
6039 __const wchar_t *__restrict __format,
6040 __gnuc_va_list __arg)
6041 ;
6042
6043
6044
6045
6046 extern int vwprintf (__const wchar_t *__restrict __format,
6047 __gnuc_va_list __arg)
6048 ;
6049
6050
6051 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
6052 __const wchar_t *__restrict __format,
6053 __gnuc_va_list __arg)
6054 throw () ;
6055
6056
6057
6058
6059
6060
6061 extern int fwscanf (__FILE *__restrict __stream,
6062 __const wchar_t *__restrict __format, ...)
6063 ;
6064
6065
6066
6067
6068 extern int wscanf (__const wchar_t *__restrict __format, ...)
6069 ;
6070
6071 extern int swscanf (__const wchar_t *__restrict __s,
6072 __const wchar_t *__restrict __format, ...)
6073 throw () ;
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085 extern int vfwscanf (__FILE *__restrict __s,
6086 __const wchar_t *__restrict __format,
6087 __gnuc_va_list __arg)
6088 ;
6089
6090
6091
6092
6093 extern int vwscanf (__const wchar_t *__restrict __format,
6094 __gnuc_va_list __arg)
6095 ;
6096
6097 extern int vswscanf (__const wchar_t *__restrict __s,
6098 __const wchar_t *__restrict __format,
6099 __gnuc_va_list __arg)
6100 throw () ;
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111 extern wint_t fgetwc (__FILE *__stream);
6112 extern wint_t getwc (__FILE *__stream);
6113
6114
6115
6116
6117
6118 extern wint_t getwchar (void);
6119
6120
6121
6122
6123
6124
6125 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
6126 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
6127
6128
6129
6130
6131
6132 extern wint_t putwchar (wchar_t __wc);
6133
6134
6135
6136
6137
6138
6139
6140 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
6141 __FILE *__restrict __stream);
6142
6143
6144
6145
6146
6147 extern int fputws (__const wchar_t *__restrict __ws,
6148 __FILE *__restrict __stream);
6149
6150
6151
6152
6153
6154
6155 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
6156
6157 # 743 "/usr/include/wchar.h" 3 4
6158 extern wint_t getwc_unlocked (__FILE *__stream);
6159 extern wint_t getwchar_unlocked (void);
6160
6161
6162
6163
6164
6165
6166
6167 extern wint_t fgetwc_unlocked (__FILE *__stream);
6168
6169
6170
6171
6172
6173
6174
6175 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
6176 # 769 "/usr/include/wchar.h" 3 4
6177 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
6178 extern wint_t putwchar_unlocked (wchar_t __wc);
6179 # 779 "/usr/include/wchar.h" 3 4
6180 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
6181 __FILE *__restrict __stream);
6182
6183
6184
6185
6186
6187
6188
6189 extern int fputws_unlocked (__const wchar_t *__restrict __ws,
6190 __FILE *__restrict __stream);
6191
6192
6193
6194
6195
6196
6197
6198 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
6199 __const wchar_t *__restrict __format,
6200 __const struct tm *__restrict __tp) throw ();
6201
6202
6203
6204
6205
6206
6207
6208 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
6209 __const wchar_t *__restrict __format,
6210 __const struct tm *__restrict __tp,
6211 __locale_t __loc) throw ();
6212 # 824 "/usr/include/wchar.h" 3 4
6213 }
6214 # 55 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 2 3
6215 # 69 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
6216 namespace std
6217 {
6218 using ::mbstate_t;
6219 }
6220 # 141 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
6221 namespace std
6222 {
6223 using ::wint_t;
6224
6225 using ::btowc;
6226 using ::fgetwc;
6227 using ::fgetws;
6228 using ::fputwc;
6229 using ::fputws;
6230 using ::fwide;
6231 using ::fwprintf;
6232 using ::fwscanf;
6233 using ::getwc;
6234 using ::getwchar;
6235 using ::mbrlen;
6236 using ::mbrtowc;
6237 using ::mbsinit;
6238 using ::mbsrtowcs;
6239 using ::putwc;
6240 using ::putwchar;
6241 using ::swprintf;
6242 using ::swscanf;
6243 using ::ungetwc;
6244 using ::vfwprintf;
6245
6246 using ::vfwscanf;
6247
6248 using ::vswprintf;
6249
6250 using ::vswscanf;
6251
6252 using ::vwprintf;
6253
6254 using ::vwscanf;
6255
6256 using ::wcrtomb;
6257 using ::wcscat;
6258 using ::wcscmp;
6259 using ::wcscoll;
6260 using ::wcscpy;
6261 using ::wcscspn;
6262 using ::wcsftime;
6263 using ::wcslen;
6264 using ::wcsncat;
6265 using ::wcsncmp;
6266 using ::wcsncpy;
6267 using ::wcsrtombs;
6268 using ::wcsspn;
6269 using ::wcstod;
6270
6271 using ::wcstof;
6272
6273 using ::wcstok;
6274 using ::wcstol;
6275 using ::wcstoul;
6276 using ::wcsxfrm;
6277 using ::wctob;
6278 using ::wmemcmp;
6279 using ::wmemcpy;
6280 using ::wmemmove;
6281 using ::wmemset;
6282 using ::wprintf;
6283 using ::wscanf;
6284
6285 using ::wcschr;
6286
6287 inline wchar_t*
6288 wcschr(wchar_t* __p, wchar_t __c)
6289 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
6290
6291 using ::wcspbrk;
6292
6293 inline wchar_t*
6294 wcspbrk(wchar_t* __s1, wchar_t* __s2)
6295 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
6296
6297 using ::wcsrchr;
6298
6299 inline wchar_t*
6300 wcsrchr(wchar_t* __p, wchar_t __c)
6301 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
6302
6303 using ::wcsstr;
6304
6305 inline wchar_t*
6306 wcsstr(wchar_t* __s1, const wchar_t* __s2)
6307 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
6308
6309 using ::wmemchr;
6310
6311 inline wchar_t*
6312 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
6313 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
6314 }
6315
6316
6317
6318
6319
6320
6321
6322 namespace __gnu_cxx
6323 {
6324
6325
6326
6327
6328
6329 using ::wcstold;
6330 # 258 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar" 3
6331 using ::wcstoll;
6332 using ::wcstoull;
6333
6334 }
6335
6336 namespace std
6337 {
6338 using __gnu_cxx::wcstold;
6339 using __gnu_cxx::wcstoll;
6340 using __gnu_cxx::wcstoull;
6341 }
6342 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 2 3
6343
6344
6345 # 1 "/usr/include/stdint.h" 1 3 4
6346 # 28 "/usr/include/stdint.h" 3 4
6347 # 1 "/usr/include/bits/wordsize.h" 1 3 4
6348 # 29 "/usr/include/stdint.h" 2 3 4
6349 # 37 "/usr/include/stdint.h" 3 4
6350 typedef signed char int8_t;
6351 typedef short int int16_t;
6352 typedef int int32_t;
6353
6354
6355
6356 __extension__
6357 typedef long long int int64_t;
6358
6359
6360
6361
6362 typedef unsigned char uint8_t;
6363 typedef unsigned short int uint16_t;
6364
6365 typedef unsigned int uint32_t;
6366
6367
6368
6369
6370
6371 __extension__
6372 typedef unsigned long long int uint64_t;
6373
6374
6375
6376
6377
6378
6379 typedef signed char int_least8_t;
6380 typedef short int int_least16_t;
6381 typedef int int_least32_t;
6382
6383
6384
6385 __extension__
6386 typedef long long int int_least64_t;
6387
6388
6389
6390 typedef unsigned char uint_least8_t;
6391 typedef unsigned short int uint_least16_t;
6392 typedef unsigned int uint_least32_t;
6393
6394
6395
6396 __extension__
6397 typedef unsigned long long int uint_least64_t;
6398
6399
6400
6401
6402
6403
6404 typedef signed char int_fast8_t;
6405
6406
6407
6408
6409
6410 typedef int int_fast16_t;
6411 typedef int int_fast32_t;
6412 __extension__
6413 typedef long long int int_fast64_t;
6414
6415
6416
6417 typedef unsigned char uint_fast8_t;
6418
6419
6420
6421
6422
6423 typedef unsigned int uint_fast16_t;
6424 typedef unsigned int uint_fast32_t;
6425 __extension__
6426 typedef unsigned long long int uint_fast64_t;
6427 # 129 "/usr/include/stdint.h" 3 4
6428 typedef unsigned int uintptr_t;
6429 # 138 "/usr/include/stdint.h" 3 4
6430 __extension__
6431 typedef long long int intmax_t;
6432 __extension__
6433 typedef unsigned long long int uintmax_t;
6434 # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 2 3
6435
6436
6437 namespace std
6438 {
6439 # 72 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
6440 typedef int64_t streamoff;
6441
6442
6443
6444
6445
6446 typedef ptrdiff_t streamsize;
6447
6448 template<typename _StateT>
6449 class fpos;
6450 # 94 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
6451 template<typename _StateT>
6452 class fpos
6453 {
6454 private:
6455 streamoff _M_off;
6456 _StateT _M_state;
6457
6458 public:
6459
6460
6461
6462
6463 fpos()
6464 : _M_off(0), _M_state() { }
6465 # 116 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h" 3
6466 fpos(streamoff __off)
6467 : _M_off(__off), _M_state() { }
6468
6469
6470 operator streamoff() const { return _M_off; }
6471
6472
6473 void
6474 state(_StateT __st)
6475 { _M_state = __st; }
6476
6477
6478 _StateT
6479 state() const
6480 { return _M_state; }
6481
6482
6483
6484
6485
6486
6487 bool
6488 operator==(const fpos& __other) const
6489 { return _M_off == __other._M_off; }
6490
6491
6492 bool
6493 operator!=(const fpos& __other) const
6494 { return _M_off != __other._M_off; }
6495
6496
6497
6498
6499
6500 fpos&
6501 operator+=(streamoff __off)
6502 {
6503 _M_off += __off;
6504 return *this;
6505 }
6506
6507
6508
6509
6510
6511 fpos&
6512 operator-=(streamoff __off)
6513 {
6514 _M_off -= __off;
6515 return *this;
6516 }
6517
6518
6519
6520
6521
6522
6523
6524 fpos
6525 operator+(streamoff __off) const
6526 {
6527 fpos __pos(*this);
6528 __pos += __off;
6529 return __pos;
6530 }
6531
6532
6533
6534
6535
6536
6537
6538 fpos
6539 operator-(streamoff __off) const
6540 {
6541 fpos __pos(*this);
6542 __pos -= __off;
6543 return __pos;
6544 }
6545
6546
6547
6548
6549
6550
6551 streamoff
6552 operator-(const fpos& __other) const
6553 { return _M_off - __other._M_off; }
6554 };
6555
6556
6557
6558
6559
6560 typedef fpos<mbstate_t> streampos;
6561
6562 typedef fpos<mbstate_t> wstreampos;
6563 }
6564 # 51 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
6565 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h" 1 3
6566 # 34 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h" 3
6567 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception_defines.h" 1 3
6568 # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h" 2 3
6569
6570 namespace std
6571 {
6572
6573 void
6574 __throw_bad_exception(void);
6575
6576
6577 void
6578 __throw_bad_alloc(void);
6579
6580
6581 void
6582 __throw_bad_cast(void);
6583
6584 void
6585 __throw_bad_typeid(void);
6586
6587
6588 void
6589 __throw_logic_error(const char* __s);
6590
6591 void
6592 __throw_domain_error(const char* __s);
6593
6594 void
6595 __throw_invalid_argument(const char* __s);
6596
6597 void
6598 __throw_length_error(const char* __s);
6599
6600 void
6601 __throw_out_of_range(const char* __s);
6602
6603 void
6604 __throw_runtime_error(const char* __s);
6605
6606 void
6607 __throw_range_error(const char* __s);
6608
6609 void
6610 __throw_overflow_error(const char* __s);
6611
6612 void
6613 __throw_underflow_error(const char* __s);
6614
6615
6616 void
6617 __throw_ios_failure(const char* __s);
6618 }
6619 # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 2 3
6620
6621 namespace std
6622 {
6623 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6624 class basic_ios;
6625
6626 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6627 class basic_streambuf;
6628
6629 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6630 class basic_istream;
6631
6632 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6633 class basic_ostream;
6634
6635 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6636 class basic_iostream;
6637
6638 template<typename _CharT, typename _Traits = char_traits<_CharT>,
6639 typename _Alloc = allocator<_CharT> >
6640 class basic_stringbuf;
6641
6642 template<typename _CharT, typename _Traits = char_traits<_CharT>,
6643 typename _Alloc = allocator<_CharT> >
6644 class basic_istringstream;
6645
6646 template<typename _CharT, typename _Traits = char_traits<_CharT>,
6647 typename _Alloc = allocator<_CharT> >
6648 class basic_ostringstream;
6649
6650 template<typename _CharT, typename _Traits = char_traits<_CharT>,
6651 typename _Alloc = allocator<_CharT> >
6652 class basic_stringstream;
6653
6654 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6655 class basic_filebuf;
6656
6657 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6658 class basic_ifstream;
6659
6660 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6661 class basic_ofstream;
6662
6663 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6664 class basic_fstream;
6665
6666 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6667 class istreambuf_iterator;
6668
6669 template<typename _CharT, typename _Traits = char_traits<_CharT> >
6670 class ostreambuf_iterator;
6671
6672
6673
6674 class ios_base;
6675 # 136 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd" 3
6676 typedef basic_ios<char> ios;
6677 typedef basic_streambuf<char> streambuf;
6678 typedef basic_istream<char> istream;
6679 typedef basic_ostream<char> ostream;
6680 typedef basic_iostream<char> iostream;
6681 typedef basic_stringbuf<char> stringbuf;
6682 typedef basic_istringstream<char> istringstream;
6683 typedef basic_ostringstream<char> ostringstream;
6684 typedef basic_stringstream<char> stringstream;
6685 typedef basic_filebuf<char> filebuf;
6686 typedef basic_ifstream<char> ifstream;
6687 typedef basic_ofstream<char> ofstream;
6688 typedef basic_fstream<char> fstream;
6689
6690
6691 typedef basic_ios<wchar_t> wios;
6692 typedef basic_streambuf<wchar_t> wstreambuf;
6693 typedef basic_istream<wchar_t> wistream;
6694 typedef basic_ostream<wchar_t> wostream;
6695 typedef basic_iostream<wchar_t> wiostream;
6696 typedef basic_stringbuf<wchar_t> wstringbuf;
6697 typedef basic_istringstream<wchar_t> wistringstream;
6698 typedef basic_ostringstream<wchar_t> wostringstream;
6699 typedef basic_stringstream<wchar_t> wstringstream;
6700 typedef basic_filebuf<wchar_t> wfilebuf;
6701 typedef basic_ifstream<wchar_t> wifstream;
6702 typedef basic_ofstream<wchar_t> wofstream;
6703 typedef basic_fstream<wchar_t> wfstream;
6704
6705
6706 }
6707 # 34 "/cern/ROOT/include/Riosfwd.h" 2
6708
6709 using std::istream;
6710 using std::ostream;
6711 using std::fstream;
6712 using std::ifstream;
6713 using std::ofstream;
6714 # 37 "/cern/ROOT/include/TString.h" 2
6715
6716
6717
6718 # 1 "/cern/ROOT/include/TMathBase.h" 1
6719 # 33 "/cern/ROOT/include/TMathBase.h"
6720 namespace TMath {
6721
6722
6723 inline Short_t Abs(Short_t d);
6724 inline Int_t Abs(Int_t d);
6725 inline Long_t Abs(Long_t d);
6726 inline Long64_t Abs(Long64_t d);
6727 inline Float_t Abs(Float_t d);
6728 inline Double_t Abs(Double_t d);
6729
6730
6731 inline Bool_t Even(Long_t a);
6732 inline Bool_t Odd(Long_t a);
6733
6734
6735 inline Short_t Sign(Short_t a, Short_t b);
6736 inline Int_t Sign(Int_t a, Int_t b);
6737 inline Long_t Sign(Long_t a, Long_t b);
6738 inline Long64_t Sign(Long64_t a, Long64_t b);
6739 inline Float_t Sign(Float_t a, Float_t b);
6740 inline Double_t Sign(Double_t a, Double_t b);
6741
6742
6743 inline Short_t Min(Short_t a, Short_t b);
6744 inline UShort_t Min(UShort_t a, UShort_t b);
6745 inline Int_t Min(Int_t a, Int_t b);
6746 inline UInt_t Min(UInt_t a, UInt_t b);
6747 inline Long_t Min(Long_t a, Long_t b);
6748 inline ULong_t Min(ULong_t a, ULong_t b);
6749 inline Long64_t Min(Long64_t a, Long64_t b);
6750 inline ULong64_t Min(ULong64_t a, ULong64_t b);
6751 inline Float_t Min(Float_t a, Float_t b);
6752 inline Double_t Min(Double_t a, Double_t b);
6753
6754 inline Short_t Max(Short_t a, Short_t b);
6755 inline UShort_t Max(UShort_t a, UShort_t b);
6756 inline Int_t Max(Int_t a, Int_t b);
6757 inline UInt_t Max(UInt_t a, UInt_t b);
6758 inline Long_t Max(Long_t a, Long_t b);
6759 inline ULong_t Max(ULong_t a, ULong_t b);
6760 inline Long64_t Max(Long64_t a, Long64_t b);
6761 inline ULong64_t Max(ULong64_t a, ULong64_t b);
6762 inline Float_t Max(Float_t a, Float_t b);
6763 inline Double_t Max(Double_t a, Double_t b);
6764
6765
6766 inline Short_t Range(Short_t lb, Short_t ub, Short_t x);
6767 inline Int_t Range(Int_t lb, Int_t ub, Int_t x);
6768 inline Long_t Range(Long_t lb, Long_t ub, Long_t x);
6769 inline ULong_t Range(ULong_t lb, ULong_t ub, ULong_t x);
6770 inline Double_t Range(Double_t lb, Double_t ub, Double_t x);
6771
6772
6773 Long_t NextPrime(Long_t x);
6774 }
6775
6776
6777
6778
6779 inline Bool_t TMath::Even(Long_t a)
6780 { return ! (a & 1); }
6781
6782 inline Bool_t TMath::Odd(Long_t a)
6783 { return (a & 1); }
6784
6785
6786
6787 inline Short_t TMath::Abs(Short_t d)
6788 { return (d >= 0) ? d : -d; }
6789
6790 inline Int_t TMath::Abs(Int_t d)
6791 { return (d >= 0) ? d : -d; }
6792
6793 inline Long_t TMath::Abs(Long_t d)
6794 { return (d >= 0) ? d : -d; }
6795
6796 inline Long64_t TMath::Abs(Long64_t d)
6797 { return (d >= 0) ? d : -d; }
6798
6799 inline Float_t TMath::Abs(Float_t d)
6800 { return (d >= 0) ? d : -d; }
6801
6802 inline Double_t TMath::Abs(Double_t d)
6803 { return (d >= 0) ? d : -d; }
6804
6805
6806
6807 inline Short_t TMath::Sign(Short_t a, Short_t b)
6808 { return (b >= 0) ? Abs(a) : -Abs(a); }
6809
6810 inline Int_t TMath::Sign(Int_t a, Int_t b)
6811 { return (b >= 0) ? Abs(a) : -Abs(a); }
6812
6813 inline Long_t TMath::Sign(Long_t a, Long_t b)
6814 { return (b >= 0) ? Abs(a) : -Abs(a); }
6815
6816 inline Long64_t TMath::Sign(Long64_t a, Long64_t b)
6817 { return (b >= 0) ? Abs(a) : -Abs(a); }
6818
6819 inline Float_t TMath::Sign(Float_t a, Float_t b)
6820 { return (b >= 0) ? Abs(a) : -Abs(a); }
6821
6822 inline Double_t TMath::Sign(Double_t a, Double_t b)
6823 { return (b >= 0) ? Abs(a) : -Abs(a); }
6824
6825
6826
6827 inline Short_t TMath::Min(Short_t a, Short_t b)
6828 { return a <= b ? a : b; }
6829
6830 inline UShort_t TMath::Min(UShort_t a, UShort_t b)
6831 { return a <= b ? a : b; }
6832
6833 inline Int_t TMath::Min(Int_t a, Int_t b)
6834 { return a <= b ? a : b; }
6835
6836 inline UInt_t TMath::Min(UInt_t a, UInt_t b)
6837 { return a <= b ? a : b; }
6838
6839 inline Long_t TMath::Min(Long_t a, Long_t b)
6840 { return a <= b ? a : b; }
6841
6842 inline ULong_t TMath::Min(ULong_t a, ULong_t b)
6843 { return a <= b ? a : b; }
6844
6845 inline Long64_t TMath::Min(Long64_t a, Long64_t b)
6846 { return a <= b ? a : b; }
6847
6848 inline ULong64_t TMath::Min(ULong64_t a, ULong64_t b)
6849 { return a <= b ? a : b; }
6850
6851 inline Float_t TMath::Min(Float_t a, Float_t b)
6852 { return a <= b ? a : b; }
6853
6854 inline Double_t TMath::Min(Double_t a, Double_t b)
6855 { return a <= b ? a : b; }
6856
6857
6858
6859 inline Short_t TMath::Max(Short_t a, Short_t b)
6860 { return a >= b ? a : b; }
6861
6862 inline UShort_t TMath::Max(UShort_t a, UShort_t b)
6863 { return a >= b ? a : b; }
6864
6865 inline Int_t TMath::Max(Int_t a, Int_t b)
6866 { return a >= b ? a : b; }
6867
6868 inline UInt_t TMath::Max(UInt_t a, UInt_t b)
6869 { return a >= b ? a : b; }
6870
6871 inline Long_t TMath::Max(Long_t a, Long_t b)
6872 { return a >= b ? a : b; }
6873
6874 inline ULong_t TMath::Max(ULong_t a, ULong_t b)
6875 { return a >= b ? a : b; }
6876
6877 inline Long64_t TMath::Max(Long64_t a, Long64_t b)
6878 { return a >= b ? a : b; }
6879
6880 inline ULong64_t TMath::Max(ULong64_t a, ULong64_t b)
6881 { return a >= b ? a : b; }
6882
6883 inline Float_t TMath::Max(Float_t a, Float_t b)
6884 { return a >= b ? a : b; }
6885
6886 inline Double_t TMath::Max(Double_t a, Double_t b)
6887 { return a >= b ? a : b; }
6888
6889
6890
6891 inline Short_t TMath::Range(Short_t lb, Short_t ub, Short_t x)
6892 { return x < lb ? lb : (x > ub ? ub : x); }
6893
6894 inline Int_t TMath::Range(Int_t lb, Int_t ub, Int_t x)
6895 { return x < lb ? lb : (x > ub ? ub : x); }
6896
6897 inline Long_t TMath::Range(Long_t lb, Long_t ub, Long_t x)
6898 { return x < lb ? lb : (x > ub ? ub : x); }
6899
6900 inline ULong_t TMath::Range(ULong_t lb, ULong_t ub, ULong_t x)
6901 { return x < lb ? lb : (x > ub ? ub : x); }
6902
6903 inline Double_t TMath::Range(Double_t lb, Double_t ub, Double_t x)
6904 { return x < lb ? lb : (x > ub ? ub : x); }
6905 # 41 "/cern/ROOT/include/TString.h" 2
6906
6907
6908 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h" 1 3 4
6909 # 44 "/cern/ROOT/include/TString.h" 2
6910 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 1 3
6911 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 3
6912
6913 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 3
6914
6915
6916
6917 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 1 3
6918 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
6919
6920 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
6921
6922
6923 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 1 3
6924 # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
6925 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 1 3
6926 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 3
6927
6928 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 3
6929
6930 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 1 3 4
6931 # 11 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 3 4
6932 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h" 1 3 4
6933
6934
6935
6936
6937
6938
6939 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 1 3 4
6940 # 122 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 3 4
6941 # 1 "/usr/include/limits.h" 1 3 4
6942 # 144 "/usr/include/limits.h" 3 4
6943 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
6944 # 153 "/usr/include/bits/posix1_lim.h" 3 4
6945 # 1 "/usr/include/bits/local_lim.h" 1 3 4
6946 # 36 "/usr/include/bits/local_lim.h" 3 4
6947 # 1 "/usr/include/linux/limits.h" 1 3 4
6948 # 37 "/usr/include/bits/local_lim.h" 2 3 4
6949 # 154 "/usr/include/bits/posix1_lim.h" 2 3 4
6950 # 145 "/usr/include/limits.h" 2 3 4
6951
6952
6953
6954 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
6955 # 149 "/usr/include/limits.h" 2 3 4
6956
6957
6958
6959 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
6960 # 34 "/usr/include/bits/xopen_lim.h" 3 4
6961 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
6962 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4
6963 # 153 "/usr/include/limits.h" 2 3 4
6964 # 123 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 2 3 4
6965 # 8 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h" 2 3 4
6966 # 12 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h" 2 3 4
6967 # 50 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits" 2 3
6968 # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
6969 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 1 3
6970 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
6971
6972 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
6973
6974
6975
6976
6977 # 1 "/usr/include/stdlib.h" 1 3 4
6978 # 33 "/usr/include/stdlib.h" 3 4
6979 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
6980 # 34 "/usr/include/stdlib.h" 2 3 4
6981
6982 extern "C" {
6983
6984
6985
6986
6987
6988
6989 # 1 "/usr/include/bits/waitflags.h" 1 3 4
6990 # 43 "/usr/include/stdlib.h" 2 3 4
6991 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
6992 # 67 "/usr/include/bits/waitstatus.h" 3 4
6993 union wait
6994 {
6995 int w_status;
6996 struct
6997 {
6998
6999 unsigned int __w_termsig:7;
7000 unsigned int __w_coredump:1;
7001 unsigned int __w_retcode:8;
7002 unsigned int:16;
7003
7004
7005
7006
7007
7008
7009
7010 } __wait_terminated;
7011 struct
7012 {
7013
7014 unsigned int __w_stopval:8;
7015 unsigned int __w_stopsig:8;
7016 unsigned int:16;
7017
7018
7019
7020
7021
7022
7023 } __wait_stopped;
7024 };
7025 # 44 "/usr/include/stdlib.h" 2 3 4
7026 # 96 "/usr/include/stdlib.h" 3 4
7027
7028
7029 typedef struct
7030 {
7031 int quot;
7032 int rem;
7033 } div_t;
7034
7035
7036
7037 typedef struct
7038 {
7039 long int quot;
7040 long int rem;
7041 } ldiv_t;
7042
7043
7044
7045
7046
7047
7048
7049 __extension__ typedef struct
7050 {
7051 long long int quot;
7052 long long int rem;
7053 } lldiv_t;
7054
7055
7056 # 140 "/usr/include/stdlib.h" 3 4
7057 extern size_t __ctype_get_mb_cur_max (void) throw ();
7058
7059
7060
7061
7062 extern double atof (__const char *__nptr)
7063 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7064
7065 extern int atoi (__const char *__nptr)
7066 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7067
7068 extern long int atol (__const char *__nptr)
7069 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7070
7071
7072
7073
7074
7075 __extension__ extern long long int atoll (__const char *__nptr)
7076 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7077
7078
7079
7080
7081
7082 extern double strtod (__const char *__restrict __nptr,
7083 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
7084
7085
7086
7087
7088
7089 extern float strtof (__const char *__restrict __nptr,
7090 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
7091
7092 extern long double strtold (__const char *__restrict __nptr,
7093 char **__restrict __endptr)
7094 throw () __attribute__ ((__nonnull__ (1)));
7095
7096
7097
7098
7099
7100 extern long int strtol (__const char *__restrict __nptr,
7101 char **__restrict __endptr, int __base)
7102 throw () __attribute__ ((__nonnull__ (1)));
7103
7104 extern unsigned long int strtoul (__const char *__restrict __nptr,
7105 char **__restrict __endptr, int __base)
7106 throw () __attribute__ ((__nonnull__ (1)));
7107
7108
7109
7110
7111 __extension__
7112 extern long long int strtoq (__const char *__restrict __nptr,
7113 char **__restrict __endptr, int __base)
7114 throw () __attribute__ ((__nonnull__ (1)));
7115
7116 __extension__
7117 extern unsigned long long int strtouq (__const char *__restrict __nptr,
7118 char **__restrict __endptr, int __base)
7119 throw () __attribute__ ((__nonnull__ (1)));
7120
7121
7122
7123
7124
7125 __extension__
7126 extern long long int strtoll (__const char *__restrict __nptr,
7127 char **__restrict __endptr, int __base)
7128 throw () __attribute__ ((__nonnull__ (1)));
7129
7130 __extension__
7131 extern unsigned long long int strtoull (__const char *__restrict __nptr,
7132 char **__restrict __endptr, int __base)
7133 throw () __attribute__ ((__nonnull__ (1)));
7134
7135 # 239 "/usr/include/stdlib.h" 3 4
7136 extern long int strtol_l (__const char *__restrict __nptr,
7137 char **__restrict __endptr, int __base,
7138 __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4)));
7139
7140 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
7141 char **__restrict __endptr,
7142 int __base, __locale_t __loc)
7143 throw () __attribute__ ((__nonnull__ (1, 4)));
7144
7145 __extension__
7146 extern long long int strtoll_l (__const char *__restrict __nptr,
7147 char **__restrict __endptr, int __base,
7148 __locale_t __loc)
7149 throw () __attribute__ ((__nonnull__ (1, 4)));
7150
7151 __extension__
7152 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
7153 char **__restrict __endptr,
7154 int __base, __locale_t __loc)
7155 throw () __attribute__ ((__nonnull__ (1, 4)));
7156
7157 extern double strtod_l (__const char *__restrict __nptr,
7158 char **__restrict __endptr, __locale_t __loc)
7159 throw () __attribute__ ((__nonnull__ (1, 3)));
7160
7161 extern float strtof_l (__const char *__restrict __nptr,
7162 char **__restrict __endptr, __locale_t __loc)
7163 throw () __attribute__ ((__nonnull__ (1, 3)));
7164
7165 extern long double strtold_l (__const char *__restrict __nptr,
7166 char **__restrict __endptr,
7167 __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 3)));
7168
7169
7170
7171
7172
7173
7174 extern double __strtod_internal (__const char *__restrict __nptr,
7175 char **__restrict __endptr, int __group)
7176 throw () __attribute__ ((__nonnull__ (1)));
7177 extern float __strtof_internal (__const char *__restrict __nptr,
7178 char **__restrict __endptr, int __group)
7179 throw () __attribute__ ((__nonnull__ (1)));
7180 extern long double __strtold_internal (__const char *__restrict __nptr,
7181 char **__restrict __endptr,
7182 int __group) throw () __attribute__ ((__nonnull__ (1)));
7183
7184 extern long int __strtol_internal (__const char *__restrict __nptr,
7185 char **__restrict __endptr,
7186 int __base, int __group)
7187 throw () __attribute__ ((__nonnull__ (1)));
7188
7189
7190
7191 extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
7192 char **__restrict __endptr,
7193 int __base, int __group)
7194 throw () __attribute__ ((__nonnull__ (1)));
7195
7196
7197
7198
7199 __extension__
7200 extern long long int __strtoll_internal (__const char *__restrict __nptr,
7201 char **__restrict __endptr,
7202 int __base, int __group)
7203 throw () __attribute__ ((__nonnull__ (1)));
7204
7205
7206
7207 __extension__
7208 extern unsigned long long int __strtoull_internal (__const char *
7209 __restrict __nptr,
7210 char **__restrict __endptr,
7211 int __base, int __group)
7212 throw () __attribute__ ((__nonnull__ (1)));
7213 # 424 "/usr/include/stdlib.h" 3 4
7214 extern char *l64a (long int __n) throw ();
7215
7216
7217 extern long int a64l (__const char *__s)
7218 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
7219
7220
7221
7222
7223 # 1 "/usr/include/sys/types.h" 1 3 4
7224 # 29 "/usr/include/sys/types.h" 3 4
7225 extern "C" {
7226
7227
7228
7229
7230
7231 typedef __u_char u_char;
7232 typedef __u_short u_short;
7233 typedef __u_int u_int;
7234 typedef __u_long u_long;
7235 typedef __quad_t quad_t;
7236 typedef __u_quad_t u_quad_t;
7237 typedef __fsid_t fsid_t;
7238
7239
7240
7241
7242 typedef __loff_t loff_t;
7243
7244
7245
7246 typedef __ino_t ino_t;
7247
7248
7249
7250
7251
7252
7253 typedef __ino64_t ino64_t;
7254
7255
7256
7257
7258 typedef __dev_t dev_t;
7259 # 72 "/usr/include/sys/types.h" 3 4
7260 typedef __mode_t mode_t;
7261
7262
7263
7264
7265 typedef __nlink_t nlink_t;
7266 # 105 "/usr/include/sys/types.h" 3 4
7267 typedef __id_t id_t;
7268 # 116 "/usr/include/sys/types.h" 3 4
7269 typedef __daddr_t daddr_t;
7270 typedef __caddr_t caddr_t;
7271
7272
7273
7274
7275
7276 typedef __key_t key_t;
7277 # 141 "/usr/include/sys/types.h" 3 4
7278 typedef __suseconds_t suseconds_t;
7279
7280
7281
7282
7283
7284 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
7285 # 148 "/usr/include/sys/types.h" 2 3 4
7286
7287
7288
7289 typedef unsigned long int ulong;
7290 typedef unsigned short int ushort;
7291 typedef unsigned int uint;
7292 # 197 "/usr/include/sys/types.h" 3 4
7293 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
7294 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
7295 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
7296 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
7297
7298 typedef int register_t __attribute__ ((__mode__ (__word__)));
7299 # 216 "/usr/include/sys/types.h" 3 4
7300 # 1 "/usr/include/sys/select.h" 1 3 4
7301 # 31 "/usr/include/sys/select.h" 3 4
7302 # 1 "/usr/include/bits/select.h" 1 3 4
7303 # 32 "/usr/include/sys/select.h" 2 3 4
7304
7305
7306 # 1 "/usr/include/bits/sigset.h" 1 3 4
7307 # 35 "/usr/include/sys/select.h" 2 3 4
7308 # 46 "/usr/include/sys/select.h" 3 4
7309 # 1 "/usr/include/bits/time.h" 1 3 4
7310 # 69 "/usr/include/bits/time.h" 3 4
7311 struct timeval
7312 {
7313 __time_t tv_sec;
7314 __suseconds_t tv_usec;
7315 };
7316 # 47 "/usr/include/sys/select.h" 2 3 4
7317 # 55 "/usr/include/sys/select.h" 3 4
7318 typedef long int __fd_mask;
7319 # 67 "/usr/include/sys/select.h" 3 4
7320 typedef struct
7321 {
7322
7323
7324
7325 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
7326
7327
7328
7329
7330
7331 } fd_set;
7332
7333
7334
7335
7336
7337
7338 typedef __fd_mask fd_mask;
7339 # 99 "/usr/include/sys/select.h" 3 4
7340 extern "C" {
7341 # 109 "/usr/include/sys/select.h" 3 4
7342 extern int select (int __nfds, fd_set *__restrict __readfds,
7343 fd_set *__restrict __writefds,
7344 fd_set *__restrict __exceptfds,
7345 struct timeval *__restrict __timeout);
7346 # 121 "/usr/include/sys/select.h" 3 4
7347 extern int pselect (int __nfds, fd_set *__restrict __readfds,
7348 fd_set *__restrict __writefds,
7349 fd_set *__restrict __exceptfds,
7350 const struct timespec *__restrict __timeout,
7351 const __sigset_t *__restrict __sigmask);
7352
7353
7354 }
7355 # 217 "/usr/include/sys/types.h" 2 3 4
7356
7357
7358 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
7359 # 29 "/usr/include/sys/sysmacros.h" 3 4
7360 __extension__
7361 extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
7362 throw ();
7363 __extension__
7364 extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
7365 throw ();
7366 __extension__
7367 extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
7368 unsigned int __minor)
7369 throw ();
7370
7371
7372 __extension__ extern __inline unsigned int
7373 gnu_dev_major (unsigned long long int __dev) throw ()
7374 {
7375 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
7376 }
7377
7378 __extension__ extern __inline unsigned int
7379 gnu_dev_minor (unsigned long long int __dev) throw ()
7380 {
7381 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
7382 }
7383
7384 __extension__ extern __inline unsigned long long int
7385 gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
7386 {
7387 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
7388 | (((unsigned long long int) (__minor & ~0xff)) << 12)
7389 | (((unsigned long long int) (__major & ~0xfff)) << 32));
7390 }
7391 # 220 "/usr/include/sys/types.h" 2 3 4
7392
7393
7394
7395
7396 typedef __blksize_t blksize_t;
7397
7398
7399
7400
7401
7402
7403 typedef __blkcnt_t blkcnt_t;
7404
7405
7406
7407 typedef __fsblkcnt_t fsblkcnt_t;
7408
7409
7410
7411 typedef __fsfilcnt_t fsfilcnt_t;
7412 # 258 "/usr/include/sys/types.h" 3 4
7413 typedef __blkcnt64_t blkcnt64_t;
7414 typedef __fsblkcnt64_t fsblkcnt64_t;
7415 typedef __fsfilcnt64_t fsfilcnt64_t;
7416
7417
7418
7419
7420
7421 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
7422 # 267 "/usr/include/sys/types.h" 2 3 4
7423
7424
7425 }
7426 # 434 "/usr/include/stdlib.h" 2 3 4
7427
7428
7429
7430
7431
7432
7433 extern long int random (void) throw ();
7434
7435
7436 extern void srandom (unsigned int __seed) throw ();
7437
7438
7439
7440
7441
7442 extern char *initstate (unsigned int __seed, char *__statebuf,
7443 size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
7444
7445
7446
7447 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
7448
7449
7450
7451
7452
7453
7454
7455 struct random_data
7456 {
7457 int32_t *fptr;
7458 int32_t *rptr;
7459 int32_t *state;
7460 int rand_type;
7461 int rand_deg;
7462 int rand_sep;
7463 int32_t *end_ptr;
7464 };
7465
7466 extern int random_r (struct random_data *__restrict __buf,
7467 int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
7468
7469 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
7470 throw () __attribute__ ((__nonnull__ (2)));
7471
7472 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
7473 size_t __statelen,
7474 struct random_data *__restrict __buf)
7475 throw () __attribute__ ((__nonnull__ (2, 4)));
7476
7477 extern int setstate_r (char *__restrict __statebuf,
7478 struct random_data *__restrict __buf)
7479 throw () __attribute__ ((__nonnull__ (1, 2)));
7480
7481
7482
7483
7484
7485
7486 extern int rand (void) throw ();
7487
7488 extern void srand (unsigned int __seed) throw ();
7489
7490
7491
7492
7493 extern int rand_r (unsigned int *__seed) throw ();
7494
7495
7496
7497
7498
7499
7500
7501 extern double drand48 (void) throw ();
7502 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
7503
7504
7505 extern long int lrand48 (void) throw ();
7506 extern long int nrand48 (unsigned short int __xsubi[3])
7507 throw () __attribute__ ((__nonnull__ (1)));
7508
7509
7510 extern long int mrand48 (void) throw ();
7511 extern long int jrand48 (unsigned short int __xsubi[3])
7512 throw () __attribute__ ((__nonnull__ (1)));
7513
7514
7515 extern void srand48 (long int __seedval) throw ();
7516 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
7517 throw () __attribute__ ((__nonnull__ (1)));
7518 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
7519
7520
7521
7522
7523
7524 struct drand48_data
7525 {
7526 unsigned short int __x[3];
7527 unsigned short int __old_x[3];
7528 unsigned short int __c;
7529 unsigned short int __init;
7530 unsigned long long int __a;
7531 };
7532
7533
7534 extern int drand48_r (struct drand48_data *__restrict __buffer,
7535 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
7536 extern int erand48_r (unsigned short int __xsubi[3],
7537 struct drand48_data *__restrict __buffer,
7538 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
7539
7540
7541 extern int lrand48_r (struct drand48_data *__restrict __buffer,
7542 long int *__restrict __result)
7543 throw () __attribute__ ((__nonnull__ (1, 2)));
7544 extern int nrand48_r (unsigned short int __xsubi[3],
7545 struct drand48_data *__restrict __buffer,
7546 long int *__restrict __result)
7547 throw () __attribute__ ((__nonnull__ (1, 2)));
7548
7549
7550 extern int mrand48_r (struct drand48_data *__restrict __buffer,
7551 long int *__restrict __result)
7552 throw () __attribute__ ((__nonnull__ (1, 2)));
7553 extern int jrand48_r (unsigned short int __xsubi[3],
7554 struct drand48_data *__restrict __buffer,
7555 long int *__restrict __result)
7556 throw () __attribute__ ((__nonnull__ (1, 2)));
7557
7558
7559 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
7560 throw () __attribute__ ((__nonnull__ (2)));
7561
7562 extern int seed48_r (unsigned short int __seed16v[3],
7563 struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
7564
7565 extern int lcong48_r (unsigned short int __param[7],
7566 struct drand48_data *__buffer)
7567 throw () __attribute__ ((__nonnull__ (1, 2)));
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__));
7578
7579 extern void *calloc (size_t __nmemb, size_t __size)
7580 throw () __attribute__ ((__malloc__));
7581
7582
7583
7584
7585
7586
7587
7588 extern void *realloc (void *__ptr, size_t __size) throw () __attribute__ ((__malloc__));
7589
7590 extern void free (void *__ptr) throw ();
7591
7592
7593
7594
7595 extern void cfree (void *__ptr) throw ();
7596
7597
7598
7599 # 1 "/usr/include/alloca.h" 1 3 4
7600 # 25 "/usr/include/alloca.h" 3 4
7601 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
7602 # 26 "/usr/include/alloca.h" 2 3 4
7603
7604 extern "C" {
7605
7606
7607
7608
7609
7610 extern void *alloca (size_t __size) throw ();
7611
7612
7613
7614
7615
7616 }
7617 # 607 "/usr/include/stdlib.h" 2 3 4
7618
7619
7620
7621
7622 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__));
7623
7624
7625
7626
7627 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
7628 throw () __attribute__ ((__nonnull__ (1)));
7629
7630
7631
7632
7633 extern void abort (void) throw () __attribute__ ((__noreturn__));
7634
7635
7636
7637 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
7638
7639
7640
7641
7642
7643 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
7644 throw () __attribute__ ((__nonnull__ (1)));
7645
7646
7647
7648
7649
7650
7651 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
7652
7653
7654
7655
7656
7657
7658 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
7659
7660
7661
7662
7663
7664
7665 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
7666
7667
7668
7669
7670 extern char *__secure_getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
7671
7672
7673
7674
7675
7676 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
7677
7678
7679
7680
7681
7682 extern int setenv (__const char *__name, __const char *__value, int __replace)
7683 throw () __attribute__ ((__nonnull__ (2)));
7684
7685
7686 extern int unsetenv (__const char *__name) throw ();
7687
7688
7689
7690
7691
7692
7693 extern int clearenv (void) throw ();
7694 # 691 "/usr/include/stdlib.h" 3 4
7695 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
7696 # 702 "/usr/include/stdlib.h" 3 4
7697 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1)));
7698 # 711 "/usr/include/stdlib.h" 3 4
7699 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1)));
7700 # 721 "/usr/include/stdlib.h" 3 4
7701 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
7702
7703
7704
7705
7706
7707
7708
7709
7710 extern int system (__const char *__command);
7711
7712
7713
7714
7715
7716
7717
7718 extern char *canonicalize_file_name (__const char *__name)
7719 throw () __attribute__ ((__nonnull__ (1)));
7720 # 749 "/usr/include/stdlib.h" 3 4
7721 extern char *realpath (__const char *__restrict __name,
7722 char *__restrict __resolved) throw ();
7723
7724
7725
7726
7727
7728
7729 typedef int (*__compar_fn_t) (__const void *, __const void *);
7730
7731
7732 typedef __compar_fn_t comparison_fn_t;
7733
7734
7735
7736
7737
7738
7739 extern void *bsearch (__const void *__key, __const void *__base,
7740 size_t __nmemb, size_t __size, __compar_fn_t __compar)
7741 __attribute__ ((__nonnull__ (1, 2, 5)));
7742
7743
7744
7745 extern void qsort (void *__base, size_t __nmemb, size_t __size,
7746 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
7747
7748
7749
7750 extern int abs (int __x) throw () __attribute__ ((__const__));
7751 extern long int labs (long int __x) throw () __attribute__ ((__const__));
7752
7753
7754
7755 __extension__ extern long long int llabs (long long int __x)
7756 throw () __attribute__ ((__const__));
7757
7758
7759
7760
7761
7762
7763
7764 extern div_t div (int __numer, int __denom)
7765 throw () __attribute__ ((__const__));
7766 extern ldiv_t ldiv (long int __numer, long int __denom)
7767 throw () __attribute__ ((__const__));
7768
7769
7770
7771
7772 __extension__ extern lldiv_t lldiv (long long int __numer,
7773 long long int __denom)
7774 throw () __attribute__ ((__const__));
7775
7776 # 814 "/usr/include/stdlib.h" 3 4
7777 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
7778 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4)));
7779
7780
7781
7782
7783 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
7784 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4)));
7785
7786
7787
7788
7789 extern char *gcvt (double __value, int __ndigit, char *__buf)
7790 throw () __attribute__ ((__nonnull__ (3)));
7791
7792
7793
7794
7795 extern char *qecvt (long double __value, int __ndigit,
7796 int *__restrict __decpt, int *__restrict __sign)
7797 throw () __attribute__ ((__nonnull__ (3, 4)));
7798 extern char *qfcvt (long double __value, int __ndigit,
7799 int *__restrict __decpt, int *__restrict __sign)
7800 throw () __attribute__ ((__nonnull__ (3, 4)));
7801 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
7802 throw () __attribute__ ((__nonnull__ (3)));
7803
7804
7805
7806
7807 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
7808 int *__restrict __sign, char *__restrict __buf,
7809 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7810 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
7811 int *__restrict __sign, char *__restrict __buf,
7812 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7813
7814 extern int qecvt_r (long double __value, int __ndigit,
7815 int *__restrict __decpt, int *__restrict __sign,
7816 char *__restrict __buf, size_t __len)
7817 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7818 extern int qfcvt_r (long double __value, int __ndigit,
7819 int *__restrict __decpt, int *__restrict __sign,
7820 char *__restrict __buf, size_t __len)
7821 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
7822
7823
7824
7825
7826
7827
7828
7829 extern int mblen (__const char *__s, size_t __n) throw ();
7830
7831
7832 extern int mbtowc (wchar_t *__restrict __pwc,
7833 __const char *__restrict __s, size_t __n) throw ();
7834
7835
7836 extern int wctomb (char *__s, wchar_t __wchar) throw ();
7837
7838
7839
7840 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
7841 __const char *__restrict __s, size_t __n) throw ();
7842
7843 extern size_t wcstombs (char *__restrict __s,
7844 __const wchar_t *__restrict __pwcs, size_t __n)
7845 throw ();
7846
7847
7848
7849
7850
7851
7852
7853
7854 extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1)));
7855 # 902 "/usr/include/stdlib.h" 3 4
7856 extern int getsubopt (char **__restrict __optionp,
7857 char *__const *__restrict __tokens,
7858 char **__restrict __valuep)
7859 throw () __attribute__ ((__nonnull__ (1, 2, 3)));
7860
7861
7862
7863
7864
7865 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
7866
7867
7868
7869
7870
7871
7872
7873 extern int posix_openpt (int __oflag);
7874
7875
7876
7877
7878
7879
7880
7881 extern int grantpt (int __fd) throw ();
7882
7883
7884
7885 extern int unlockpt (int __fd) throw ();
7886
7887
7888
7889
7890 extern char *ptsname (int __fd) throw ();
7891
7892
7893
7894
7895
7896
7897 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
7898 throw () __attribute__ ((__nonnull__ (2)));
7899
7900
7901 extern int getpt (void);
7902
7903
7904
7905
7906
7907
7908 extern int getloadavg (double __loadavg[], int __nelem)
7909 throw () __attribute__ ((__nonnull__ (1)));
7910
7911
7912
7913
7914
7915 }
7916 # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 2 3
7917 # 84 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
7918 namespace std
7919 {
7920 using ::div_t;
7921 using ::ldiv_t;
7922
7923 using ::abort;
7924 using ::abs;
7925 using ::atexit;
7926 using ::atof;
7927 using ::atoi;
7928 using ::atol;
7929 using ::bsearch;
7930 using ::calloc;
7931 using ::div;
7932 using ::exit;
7933 using ::free;
7934 using ::getenv;
7935 using ::labs;
7936 using ::ldiv;
7937 using ::malloc;
7938
7939 using ::mblen;
7940 using ::mbstowcs;
7941 using ::mbtowc;
7942
7943 using ::qsort;
7944 using ::rand;
7945 using ::realloc;
7946 using ::srand;
7947 using ::strtod;
7948 using ::strtol;
7949 using ::strtoul;
7950 using ::system;
7951
7952 using ::wcstombs;
7953 using ::wctomb;
7954
7955
7956 inline long
7957 abs(long __i) { return labs(__i); }
7958
7959 inline ldiv_t
7960 div(long __i, long __j) { return ldiv(__i, __j); }
7961 }
7962 # 140 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
7963 namespace __gnu_cxx
7964 {
7965
7966 using ::lldiv_t;
7967
7968
7969
7970
7971
7972 using ::_Exit;
7973
7974
7975 inline long long
7976 abs(long long __x) { return __x >= 0 ? __x : -__x; }
7977
7978 inline long long
7979 llabs(long long __x) { return __x >= 0 ? __x : -__x; }
7980
7981
7982 inline lldiv_t
7983 div(long long __n, long long __d)
7984 { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
7985
7986 inline lldiv_t
7987 lldiv(long long __n, long long __d)
7988 { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
7989 # 176 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib" 3
7990 using ::atoll;
7991 using ::strtoll;
7992 using ::strtoull;
7993
7994 using ::strtof;
7995 using ::strtold;
7996 }
7997
7998 namespace std
7999 {
8000
8001 using __gnu_cxx::lldiv_t;
8002
8003 using __gnu_cxx::_Exit;
8004 using __gnu_cxx::abs;
8005 using __gnu_cxx::llabs;
8006
8007 using __gnu_cxx::div;
8008 using __gnu_cxx::lldiv;
8009
8010 using __gnu_cxx::atoll;
8011 using __gnu_cxx::strtof;
8012 using __gnu_cxx::strtoll;
8013 using __gnu_cxx::strtoull;
8014 using __gnu_cxx::strtold;
8015 }
8016 # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8017
8018 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new" 1 3
8019 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new" 3
8020 extern "C++" {
8021
8022 namespace std
8023 {
8024
8025
8026
8027
8028
8029 class bad_alloc : public exception
8030 {
8031 public:
8032 bad_alloc() throw() { }
8033
8034
8035 virtual ~bad_alloc() throw();
8036 };
8037
8038 struct nothrow_t { };
8039 extern const nothrow_t nothrow;
8040
8041
8042 typedef void (*new_handler)();
8043
8044 new_handler set_new_handler(new_handler) throw();
8045 }
8046 # 82 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new" 3
8047 void* operator new(std::size_t) throw (std::bad_alloc);
8048 void* operator new[](std::size_t) throw (std::bad_alloc);
8049 void operator delete(void*) throw();
8050 void operator delete[](void*) throw();
8051 void* operator new(std::size_t, const std::nothrow_t&) throw();
8052 void* operator new[](std::size_t, const std::nothrow_t&) throw();
8053 void operator delete(void*, const std::nothrow_t&) throw();
8054 void operator delete[](void*, const std::nothrow_t&) throw();
8055
8056
8057 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
8058 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
8059
8060
8061 inline void operator delete (void*, void*) throw() { }
8062 inline void operator delete[](void*, void*) throw() { }
8063
8064 }
8065 # 70 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8066
8067 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h" 1 3
8068 # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h" 3
8069 namespace std
8070 {
8071
8072 template<class _T1, class _T2>
8073 struct pair
8074 {
8075 typedef _T1 first_type;
8076 typedef _T2 second_type;
8077
8078 _T1 first;
8079 _T2 second;
8080
8081
8082
8083
8084
8085 pair()
8086 : first(), second() { }
8087
8088
8089 pair(const _T1& __a, const _T2& __b)
8090 : first(__a), second(__b) { }
8091
8092
8093 template<class _U1, class _U2>
8094 pair(const pair<_U1, _U2>& __p)
8095 : first(__p.first), second(__p.second) { }
8096 };
8097
8098
8099 template<class _T1, class _T2>
8100 inline bool
8101 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8102 { return __x.first == __y.first && __x.second == __y.second; }
8103
8104
8105 template<class _T1, class _T2>
8106 inline bool
8107 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8108 { return __x.first < __y.first
8109 || (!(__y.first < __x.first) && __x.second < __y.second); }
8110
8111
8112 template<class _T1, class _T2>
8113 inline bool
8114 operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8115 { return !(__x == __y); }
8116
8117
8118 template<class _T1, class _T2>
8119 inline bool
8120 operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8121 { return __y < __x; }
8122
8123
8124 template<class _T1, class _T2>
8125 inline bool
8126 operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8127 { return !(__y < __x); }
8128
8129
8130 template<class _T1, class _T2>
8131 inline bool
8132 operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
8133 { return !(__x < __y); }
8134 # 142 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h" 3
8135 template<class _T1, class _T2>
8136 inline pair<_T1, _T2>
8137 make_pair(_T1 __x, _T2 __y) { return pair<_T1, _T2>(__x, __y); }
8138 }
8139 # 72 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8140 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 1 3
8141 # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8142
8143 # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8144 # 90 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8145 struct __true_type {};
8146 struct __false_type {};
8147
8148 template <class _Tp>
8149 struct __type_traits
8150 {
8151 typedef __true_type this_dummy_member_must_be_first;
8152 # 114 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h" 3
8153 typedef __false_type has_trivial_default_constructor;
8154 typedef __false_type has_trivial_copy_constructor;
8155 typedef __false_type has_trivial_assignment_operator;
8156 typedef __false_type has_trivial_destructor;
8157 typedef __false_type is_POD_type;
8158 };
8159
8160
8161
8162
8163 template<>
8164 struct __type_traits<bool>
8165 {
8166 typedef __true_type has_trivial_default_constructor;
8167 typedef __true_type has_trivial_copy_constructor;
8168 typedef __true_type has_trivial_assignment_operator;
8169 typedef __true_type has_trivial_destructor;
8170 typedef __true_type is_POD_type;
8171 };
8172
8173 template<>
8174 struct __type_traits<char>
8175 {
8176 typedef __true_type has_trivial_default_constructor;
8177 typedef __true_type has_trivial_copy_constructor;
8178 typedef __true_type has_trivial_assignment_operator;
8179 typedef __true_type has_trivial_destructor;
8180 typedef __true_type is_POD_type;
8181 };
8182
8183 template<>
8184 struct __type_traits<signed char>
8185 {
8186 typedef __true_type has_trivial_default_constructor;
8187 typedef __true_type has_trivial_copy_constructor;
8188 typedef __true_type has_trivial_assignment_operator;
8189 typedef __true_type has_trivial_destructor;
8190 typedef __true_type is_POD_type;
8191 };
8192
8193 template<>
8194 struct __type_traits<unsigned char>
8195 {
8196 typedef __true_type has_trivial_default_constructor;
8197 typedef __true_type has_trivial_copy_constructor;
8198 typedef __true_type has_trivial_assignment_operator;
8199 typedef __true_type has_trivial_destructor;
8200 typedef __true_type is_POD_type;
8201 };
8202
8203 template<>
8204 struct __type_traits<wchar_t>
8205 {
8206 typedef __true_type has_trivial_default_constructor;
8207 typedef __true_type has_trivial_copy_constructor;
8208 typedef __true_type has_trivial_assignment_operator;
8209 typedef __true_type has_trivial_destructor;
8210 typedef __true_type is_POD_type;
8211 };
8212
8213 template<>
8214 struct __type_traits<short>
8215 {
8216 typedef __true_type has_trivial_default_constructor;
8217 typedef __true_type has_trivial_copy_constructor;
8218 typedef __true_type has_trivial_assignment_operator;
8219 typedef __true_type has_trivial_destructor;
8220 typedef __true_type is_POD_type;
8221 };
8222
8223 template<>
8224 struct __type_traits<unsigned short>
8225 {
8226 typedef __true_type has_trivial_default_constructor;
8227 typedef __true_type has_trivial_copy_constructor;
8228 typedef __true_type has_trivial_assignment_operator;
8229 typedef __true_type has_trivial_destructor;
8230 typedef __true_type is_POD_type;
8231 };
8232
8233 template<>
8234 struct __type_traits<int>
8235 {
8236 typedef __true_type has_trivial_default_constructor;
8237 typedef __true_type has_trivial_copy_constructor;
8238 typedef __true_type has_trivial_assignment_operator;
8239 typedef __true_type has_trivial_destructor;
8240 typedef __true_type is_POD_type;
8241 };
8242
8243 template<>
8244 struct __type_traits<unsigned int>
8245 {
8246 typedef __true_type has_trivial_default_constructor;
8247 typedef __true_type has_trivial_copy_constructor;
8248 typedef __true_type has_trivial_assignment_operator;
8249 typedef __true_type has_trivial_destructor;
8250 typedef __true_type is_POD_type;
8251 };
8252
8253 template<>
8254 struct __type_traits<long>
8255 {
8256 typedef __true_type has_trivial_default_constructor;
8257 typedef __true_type has_trivial_copy_constructor;
8258 typedef __true_type has_trivial_assignment_operator;
8259 typedef __true_type has_trivial_destructor;
8260 typedef __true_type is_POD_type;
8261 };
8262
8263 template<>
8264 struct __type_traits<unsigned long>
8265 {
8266 typedef __true_type has_trivial_default_constructor;
8267 typedef __true_type has_trivial_copy_constructor;
8268 typedef __true_type has_trivial_assignment_operator;
8269 typedef __true_type has_trivial_destructor;
8270 typedef __true_type is_POD_type;
8271 };
8272
8273 template<>
8274 struct __type_traits<long long>
8275 {
8276 typedef __true_type has_trivial_default_constructor;
8277 typedef __true_type has_trivial_copy_constructor;
8278 typedef __true_type has_trivial_assignment_operator;
8279 typedef __true_type has_trivial_destructor;
8280 typedef __true_type is_POD_type;
8281 };
8282
8283 template<>
8284 struct __type_traits<unsigned long long>
8285 {
8286 typedef __true_type has_trivial_default_constructor;
8287 typedef __true_type has_trivial_copy_constructor;
8288 typedef __true_type has_trivial_assignment_operator;
8289 typedef __true_type has_trivial_destructor;
8290 typedef __true_type is_POD_type;
8291 };
8292
8293 template<>
8294 struct __type_traits<float>
8295 {
8296 typedef __true_type has_trivial_default_constructor;
8297 typedef __true_type has_trivial_copy_constructor;
8298 typedef __true_type has_trivial_assignment_operator;
8299 typedef __true_type has_trivial_destructor;
8300 typedef __true_type is_POD_type;
8301 };
8302
8303 template<>
8304 struct __type_traits<double>
8305 {
8306 typedef __true_type has_trivial_default_constructor;
8307 typedef __true_type has_trivial_copy_constructor;
8308 typedef __true_type has_trivial_assignment_operator;
8309 typedef __true_type has_trivial_destructor;
8310 typedef __true_type is_POD_type;
8311 };
8312
8313 template<>
8314 struct __type_traits<long double>
8315 {
8316 typedef __true_type has_trivial_default_constructor;
8317 typedef __true_type has_trivial_copy_constructor;
8318 typedef __true_type has_trivial_assignment_operator;
8319 typedef __true_type has_trivial_destructor;
8320 typedef __true_type is_POD_type;
8321 };
8322
8323 template <class _Tp>
8324 struct __type_traits<_Tp*>
8325 {
8326 typedef __true_type has_trivial_default_constructor;
8327 typedef __true_type has_trivial_copy_constructor;
8328 typedef __true_type has_trivial_assignment_operator;
8329 typedef __true_type has_trivial_destructor;
8330 typedef __true_type is_POD_type;
8331 };
8332
8333
8334
8335
8336 template <class _Tp>
8337 struct _Is_integer
8338 {
8339 typedef __false_type _Integral;
8340 };
8341
8342 template<>
8343 struct _Is_integer<bool>
8344 {
8345 typedef __true_type _Integral;
8346 };
8347
8348 template<>
8349 struct _Is_integer<char>
8350 {
8351 typedef __true_type _Integral;
8352 };
8353
8354 template<>
8355 struct _Is_integer<signed char>
8356 {
8357 typedef __true_type _Integral;
8358 };
8359
8360 template<>
8361 struct _Is_integer<unsigned char>
8362 {
8363 typedef __true_type _Integral;
8364 };
8365
8366 template<>
8367 struct _Is_integer<wchar_t>
8368 {
8369 typedef __true_type _Integral;
8370 };
8371
8372 template<>
8373 struct _Is_integer<short>
8374 {
8375 typedef __true_type _Integral;
8376 };
8377
8378 template<>
8379 struct _Is_integer<unsigned short>
8380 {
8381 typedef __true_type _Integral;
8382 };
8383
8384 template<>
8385 struct _Is_integer<int>
8386 {
8387 typedef __true_type _Integral;
8388 };
8389
8390 template<>
8391 struct _Is_integer<unsigned int>
8392 {
8393 typedef __true_type _Integral;
8394 };
8395
8396 template<>
8397 struct _Is_integer<long>
8398 {
8399 typedef __true_type _Integral;
8400 };
8401
8402 template<>
8403 struct _Is_integer<unsigned long>
8404 {
8405 typedef __true_type _Integral;
8406 };
8407
8408 template<>
8409 struct _Is_integer<long long>
8410 {
8411 typedef __true_type _Integral;
8412 };
8413
8414 template<>
8415 struct _Is_integer<unsigned long long>
8416 {
8417 typedef __true_type _Integral;
8418 };
8419
8420 template<typename _Tp>
8421 struct _Is_normal_iterator
8422 {
8423 typedef __false_type _Normal;
8424 };
8425
8426
8427 namespace __gnu_cxx
8428 {
8429 template<typename _Iterator, typename _Container>
8430 class __normal_iterator;
8431 }
8432
8433 template<typename _Iterator, typename _Container>
8434 struct _Is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
8435 _Container> >
8436 {
8437 typedef __true_type _Normal;
8438 };
8439 # 73 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8440 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 1 3
8441 # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8442
8443 # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8444
8445 namespace std
8446 {
8447 # 80 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8448 struct input_iterator_tag {};
8449
8450 struct output_iterator_tag {};
8451
8452 struct forward_iterator_tag : public input_iterator_tag {};
8453
8454
8455 struct bidirectional_iterator_tag : public forward_iterator_tag {};
8456
8457
8458 struct random_access_iterator_tag : public bidirectional_iterator_tag {};
8459 # 104 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h" 3
8460 template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
8461 typename _Pointer = _Tp*, typename _Reference = _Tp&>
8462 struct iterator
8463 {
8464
8465 typedef _Category iterator_category;
8466
8467 typedef _Tp value_type;
8468
8469 typedef _Distance difference_type;
8470
8471 typedef _Pointer pointer;
8472
8473 typedef _Reference reference;
8474 };
8475
8476
8477
8478
8479
8480
8481
8482 template<typename _Iterator>
8483 struct iterator_traits
8484 {
8485 typedef typename _Iterator::iterator_category iterator_category;
8486 typedef typename _Iterator::value_type value_type;
8487 typedef typename _Iterator::difference_type difference_type;
8488 typedef typename _Iterator::pointer pointer;
8489 typedef typename _Iterator::reference reference;
8490 };
8491
8492 template<typename _Tp>
8493 struct iterator_traits<_Tp*>
8494 {
8495 typedef random_access_iterator_tag iterator_category;
8496 typedef _Tp value_type;
8497 typedef ptrdiff_t difference_type;
8498 typedef _Tp* pointer;
8499 typedef _Tp& reference;
8500 };
8501
8502 template<typename _Tp>
8503 struct iterator_traits<const _Tp*>
8504 {
8505 typedef random_access_iterator_tag iterator_category;
8506 typedef _Tp value_type;
8507 typedef ptrdiff_t difference_type;
8508 typedef const _Tp* pointer;
8509 typedef const _Tp& reference;
8510 };
8511
8512
8513
8514
8515
8516
8517
8518 template<typename _Iter>
8519 inline typename iterator_traits<_Iter>::iterator_category
8520 __iterator_category(const _Iter&)
8521 { return typename iterator_traits<_Iter>::iterator_category(); }
8522
8523 }
8524 # 74 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8525 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 1 3
8526 # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8527
8528 # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8529 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h" 1 3
8530 # 38 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h" 3
8531
8532 # 39 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h" 3
8533 # 69 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 2 3
8534
8535 namespace std
8536 {
8537 template<typename _InputIterator>
8538 inline typename iterator_traits<_InputIterator>::difference_type
8539 __distance(_InputIterator __first, _InputIterator __last,
8540 input_iterator_tag)
8541 {
8542
8543
8544
8545 typename iterator_traits<_InputIterator>::difference_type __n = 0;
8546 while (__first != __last)
8547 {
8548 ++__first;
8549 ++__n;
8550 }
8551 return __n;
8552 }
8553
8554 template<typename _RandomAccessIterator>
8555 inline typename iterator_traits<_RandomAccessIterator>::difference_type
8556 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
8557 random_access_iterator_tag)
8558 {
8559
8560
8561
8562 return __last - __first;
8563 }
8564 # 112 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8565 template<typename _InputIterator>
8566 inline typename iterator_traits<_InputIterator>::difference_type
8567 distance(_InputIterator __first, _InputIterator __last)
8568 {
8569
8570 return std::__distance(__first, __last,
8571 std::__iterator_category(__first));
8572 }
8573
8574 template<typename _InputIterator, typename _Distance>
8575 inline void
8576 __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
8577 {
8578
8579
8580 while (__n--)
8581 ++__i;
8582 }
8583
8584 template<typename _BidirectionalIterator, typename _Distance>
8585 inline void
8586 __advance(_BidirectionalIterator& __i, _Distance __n,
8587 bidirectional_iterator_tag)
8588 {
8589
8590
8591
8592 if (__n > 0)
8593 while (__n--)
8594 ++__i;
8595 else
8596 while (__n++)
8597 --__i;
8598 }
8599
8600 template<typename _RandomAccessIterator, typename _Distance>
8601 inline void
8602 __advance(_RandomAccessIterator& __i, _Distance __n,
8603 random_access_iterator_tag)
8604 {
8605
8606
8607
8608 __i += __n;
8609 }
8610 # 170 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h" 3
8611 template<typename _InputIterator, typename _Distance>
8612 inline void
8613 advance(_InputIterator& __i, _Distance __n)
8614 {
8615
8616 std::__advance(__i, __n, std::__iterator_category(__i));
8617 }
8618 }
8619 # 75 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
8620 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 1 3
8621 # 68 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8622 namespace std
8623 {
8624 # 89 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8625 template<typename _Iterator>
8626 class reverse_iterator
8627 : public iterator<typename iterator_traits<_Iterator>::iterator_category,
8628 typename iterator_traits<_Iterator>::value_type,
8629 typename iterator_traits<_Iterator>::difference_type,
8630 typename iterator_traits<_Iterator>::pointer,
8631 typename iterator_traits<_Iterator>::reference>
8632 {
8633 protected:
8634 _Iterator current;
8635
8636 public:
8637 typedef _Iterator iterator_type;
8638 typedef typename iterator_traits<_Iterator>::difference_type
8639 difference_type;
8640 typedef typename iterator_traits<_Iterator>::reference reference;
8641 typedef typename iterator_traits<_Iterator>::pointer pointer;
8642
8643 public:
8644
8645
8646
8647
8648
8649
8650 reverse_iterator() : current() { }
8651
8652
8653
8654
8655 explicit
8656 reverse_iterator(iterator_type __x) : current(__x) { }
8657
8658
8659
8660
8661 reverse_iterator(const reverse_iterator& __x)
8662 : current(__x.current) { }
8663
8664
8665
8666
8667
8668 template<typename _Iter>
8669 reverse_iterator(const reverse_iterator<_Iter>& __x)
8670 : current(__x.base()) { }
8671
8672
8673
8674
8675 iterator_type
8676 base() const
8677 { return current; }
8678
8679
8680
8681
8682
8683
8684 reference
8685 operator*() const
8686 {
8687 _Iterator __tmp = current;
8688 return *--__tmp;
8689 }
8690
8691
8692
8693
8694
8695
8696 pointer
8697 operator->() const
8698 { return &(operator*()); }
8699
8700
8701
8702
8703
8704
8705 reverse_iterator&
8706 operator++()
8707 {
8708 --current;
8709 return *this;
8710 }
8711
8712
8713
8714
8715
8716
8717 reverse_iterator
8718 operator++(int)
8719 {
8720 reverse_iterator __tmp = *this;
8721 --current;
8722 return __tmp;
8723 }
8724
8725
8726
8727
8728
8729
8730 reverse_iterator&
8731 operator--()
8732 {
8733 ++current;
8734 return *this;
8735 }
8736
8737
8738
8739
8740
8741
8742 reverse_iterator operator--(int)
8743 {
8744 reverse_iterator __tmp = *this;
8745 ++current;
8746 return __tmp;
8747 }
8748
8749
8750
8751
8752
8753
8754 reverse_iterator
8755 operator+(difference_type __n) const
8756 { return reverse_iterator(current - __n); }
8757
8758
8759
8760
8761
8762
8763 reverse_iterator&
8764 operator+=(difference_type __n)
8765 {
8766 current -= __n;
8767 return *this;
8768 }
8769
8770
8771
8772
8773
8774
8775 reverse_iterator
8776 operator-(difference_type __n) const
8777 { return reverse_iterator(current + __n); }
8778
8779
8780
8781
8782
8783
8784 reverse_iterator&
8785 operator-=(difference_type __n)
8786 {
8787 current += __n;
8788 return *this;
8789 }
8790
8791
8792
8793
8794
8795
8796 reference
8797 operator[](difference_type __n) const
8798 { return *(*this + __n); }
8799 };
8800 # 275 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8801 template<typename _Iterator>
8802 inline bool
8803 operator==(const reverse_iterator<_Iterator>& __x,
8804 const reverse_iterator<_Iterator>& __y)
8805 { return __x.base() == __y.base(); }
8806
8807 template<typename _Iterator>
8808 inline bool
8809 operator<(const reverse_iterator<_Iterator>& __x,
8810 const reverse_iterator<_Iterator>& __y)
8811 { return __y.base() < __x.base(); }
8812
8813 template<typename _Iterator>
8814 inline bool
8815 operator!=(const reverse_iterator<_Iterator>& __x,
8816 const reverse_iterator<_Iterator>& __y)
8817 { return !(__x == __y); }
8818
8819 template<typename _Iterator>
8820 inline bool
8821 operator>(const reverse_iterator<_Iterator>& __x,
8822 const reverse_iterator<_Iterator>& __y)
8823 { return __y < __x; }
8824
8825 template<typename _Iterator>
8826 inline bool
8827 operator<=(const reverse_iterator<_Iterator>& __x,
8828 const reverse_iterator<_Iterator>& __y)
8829 { return !(__y < __x); }
8830
8831 template<typename _Iterator>
8832 inline bool
8833 operator>=(const reverse_iterator<_Iterator>& __x,
8834 const reverse_iterator<_Iterator>& __y)
8835 { return !(__x < __y); }
8836
8837 template<typename _Iterator>
8838 inline typename reverse_iterator<_Iterator>::difference_type
8839 operator-(const reverse_iterator<_Iterator>& __x,
8840 const reverse_iterator<_Iterator>& __y)
8841 { return __y.base() - __x.base(); }
8842
8843 template<typename _Iterator>
8844 inline reverse_iterator<_Iterator>
8845 operator+(typename reverse_iterator<_Iterator>::difference_type __n,
8846 const reverse_iterator<_Iterator>& __x)
8847 { return reverse_iterator<_Iterator>(__x.base() - __n); }
8848 # 335 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8849 template<typename _Container>
8850 class back_insert_iterator
8851 : public iterator<output_iterator_tag, void, void, void, void>
8852 {
8853 protected:
8854 _Container* container;
8855
8856 public:
8857
8858 typedef _Container container_type;
8859
8860
8861 explicit
8862 back_insert_iterator(_Container& __x) : container(&__x) { }
8863 # 361 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8864 back_insert_iterator&
8865 operator=(typename _Container::const_reference __value)
8866 {
8867 container->push_back(__value);
8868 return *this;
8869 }
8870
8871
8872 back_insert_iterator&
8873 operator*()
8874 { return *this; }
8875
8876
8877 back_insert_iterator&
8878 operator++()
8879 { return *this; }
8880
8881
8882 back_insert_iterator
8883 operator++(int)
8884 { return *this; }
8885 };
8886 # 395 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8887 template<typename _Container>
8888 inline back_insert_iterator<_Container>
8889 back_inserter(_Container& __x)
8890 { return back_insert_iterator<_Container>(__x); }
8891 # 410 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8892 template<typename _Container>
8893 class front_insert_iterator
8894 : public iterator<output_iterator_tag, void, void, void, void>
8895 {
8896 protected:
8897 _Container* container;
8898
8899 public:
8900
8901 typedef _Container container_type;
8902
8903
8904 explicit front_insert_iterator(_Container& __x) : container(&__x) { }
8905 # 435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8906 front_insert_iterator&
8907 operator=(typename _Container::const_reference __value)
8908 {
8909 container->push_front(__value);
8910 return *this;
8911 }
8912
8913
8914 front_insert_iterator&
8915 operator*()
8916 { return *this; }
8917
8918
8919 front_insert_iterator&
8920 operator++()
8921 { return *this; }
8922
8923
8924 front_insert_iterator
8925 operator++(int)
8926 { return *this; }
8927 };
8928 # 469 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8929 template<typename _Container>
8930 inline front_insert_iterator<_Container>
8931 front_inserter(_Container& __x)
8932 { return front_insert_iterator<_Container>(__x); }
8933 # 488 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8934 template<typename _Container>
8935 class insert_iterator
8936 : public iterator<output_iterator_tag, void, void, void, void>
8937 {
8938 protected:
8939 _Container* container;
8940 typename _Container::iterator iter;
8941
8942 public:
8943
8944 typedef _Container container_type;
8945
8946
8947
8948
8949
8950 insert_iterator(_Container& __x, typename _Container::iterator __i)
8951 : container(&__x), iter(__i) {}
8952 # 530 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8953 insert_iterator&
8954 operator=(const typename _Container::const_reference __value)
8955 {
8956 iter = container->insert(iter, __value);
8957 ++iter;
8958 return *this;
8959 }
8960
8961
8962 insert_iterator&
8963 operator*()
8964 { return *this; }
8965
8966
8967 insert_iterator&
8968 operator++()
8969 { return *this; }
8970
8971
8972 insert_iterator&
8973 operator++(int)
8974 { return *this; }
8975 };
8976 # 565 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
8977 template<typename _Container, typename _Iterator>
8978 inline insert_iterator<_Container>
8979 inserter(_Container& __x, _Iterator __i)
8980 {
8981 return insert_iterator<_Container>(__x,
8982 typename _Container::iterator(__i));
8983 }
8984 }
8985
8986 namespace __gnu_cxx
8987 {
8988
8989
8990
8991
8992
8993
8994
8995 using std::iterator_traits;
8996 using std::iterator;
8997 template<typename _Iterator, typename _Container>
8998 class __normal_iterator
8999 {
9000 protected:
9001 _Iterator _M_current;
9002
9003 public:
9004 typedef typename iterator_traits<_Iterator>::iterator_category
9005 iterator_category;
9006 typedef typename iterator_traits<_Iterator>::value_type value_type;
9007 typedef typename iterator_traits<_Iterator>::difference_type
9008 difference_type;
9009 typedef typename iterator_traits<_Iterator>::reference reference;
9010 typedef typename iterator_traits<_Iterator>::pointer pointer;
9011
9012 __normal_iterator() : _M_current(_Iterator()) { }
9013
9014 explicit
9015 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
9016
9017
9018 template<typename _Iter>
9019 inline __normal_iterator(const __normal_iterator<_Iter,
9020 _Container>& __i)
9021 : _M_current(__i.base()) { }
9022
9023
9024 reference
9025 operator*() const
9026 { return *_M_current; }
9027
9028 pointer
9029 operator->() const
9030 { return _M_current; }
9031
9032 __normal_iterator&
9033 operator++()
9034 {
9035 ++_M_current;
9036 return *this;
9037 }
9038
9039 __normal_iterator
9040 operator++(int)
9041 { return __normal_iterator(_M_current++); }
9042
9043
9044 __normal_iterator&
9045 operator--()
9046 {
9047 --_M_current;
9048 return *this;
9049 }
9050
9051 __normal_iterator
9052 operator--(int)
9053 { return __normal_iterator(_M_current--); }
9054
9055
9056 reference
9057 operator[](const difference_type& __n) const
9058 { return _M_current[__n]; }
9059
9060 __normal_iterator&
9061 operator+=(const difference_type& __n)
9062 { _M_current += __n; return *this; }
9063
9064 __normal_iterator
9065 operator+(const difference_type& __n) const
9066 { return __normal_iterator(_M_current + __n); }
9067
9068 __normal_iterator&
9069 operator-=(const difference_type& __n)
9070 { _M_current -= __n; return *this; }
9071
9072 __normal_iterator
9073 operator-(const difference_type& __n) const
9074 { return __normal_iterator(_M_current - __n); }
9075
9076 const _Iterator&
9077 base() const
9078 { return _M_current; }
9079 };
9080 # 678 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h" 3
9081 template<typename _IteratorL, typename _IteratorR, typename _Container>
9082 inline bool
9083 operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
9084 const __normal_iterator<_IteratorR, _Container>& __rhs)
9085 { return __lhs.base() == __rhs.base(); }
9086
9087 template<typename _Iterator, typename _Container>
9088 inline bool
9089 operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
9090 const __normal_iterator<_Iterator, _Container>& __rhs)
9091 { return __lhs.base() == __rhs.base(); }
9092
9093 template<typename _IteratorL, typename _IteratorR, typename _Container>
9094 inline bool
9095 operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9096 const __normal_iterator<_IteratorR, _Container>& __rhs)
9097 { return __lhs.base() != __rhs.base(); }
9098
9099 template<typename _Iterator, typename _Container>
9100 inline bool
9101 operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
9102 const __normal_iterator<_Iterator, _Container>& __rhs)
9103 { return __lhs.base() != __rhs.base(); }
9104
9105
9106 template<typename _IteratorL, typename _IteratorR, typename _Container>
9107 inline bool
9108 operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
9109 const __normal_iterator<_IteratorR, _Container>& __rhs)
9110 { return __lhs.base() < __rhs.base(); }
9111
9112 template<typename _Iterator, typename _Container>
9113 inline bool
9114 operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
9115 const __normal_iterator<_Iterator, _Container>& __rhs)
9116 { return __lhs.base() < __rhs.base(); }
9117
9118 template<typename _IteratorL, typename _IteratorR, typename _Container>
9119 inline bool
9120 operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
9121 const __normal_iterator<_IteratorR, _Container>& __rhs)
9122 { return __lhs.base() > __rhs.base(); }
9123
9124 template<typename _Iterator, typename _Container>
9125 inline bool
9126 operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
9127 const __normal_iterator<_Iterator, _Container>& __rhs)
9128 { return __lhs.base() > __rhs.base(); }
9129
9130 template<typename _IteratorL, typename _IteratorR, typename _Container>
9131 inline bool
9132 operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9133 const __normal_iterator<_IteratorR, _Container>& __rhs)
9134 { return __lhs.base() <= __rhs.base(); }
9135
9136 template<typename _Iterator, typename _Container>
9137 inline bool
9138 operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
9139 const __normal_iterator<_Iterator, _Container>& __rhs)
9140 { return __lhs.base() <= __rhs.base(); }
9141
9142 template<typename _IteratorL, typename _IteratorR, typename _Container>
9143 inline bool
9144 operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9145 const __normal_iterator<_IteratorR, _Container>& __rhs)
9146 { return __lhs.base() >= __rhs.base(); }
9147
9148 template<typename _Iterator, typename _Container>
9149 inline bool
9150 operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
9151 const __normal_iterator<_Iterator, _Container>& __rhs)
9152 { return __lhs.base() >= __rhs.base(); }
9153
9154
9155
9156
9157
9158 template<typename _IteratorL, typename _IteratorR, typename _Container>
9159 inline typename __normal_iterator<_IteratorL, _Container>::difference_type
9160 operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
9161 const __normal_iterator<_IteratorR, _Container>& __rhs)
9162 { return __lhs.base() - __rhs.base(); }
9163
9164 template<typename _Iterator, typename _Container>
9165 inline __normal_iterator<_Iterator, _Container>
9166 operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
9167 __n, const __normal_iterator<_Iterator, _Container>& __i)
9168 { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
9169 }
9170 # 76 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
9171
9172 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 1 3
9173 # 272 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 3
9174 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 1 3
9175 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 3
9176
9177 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 3
9178
9179 # 1 "/usr/include/assert.h" 1 3 4
9180 # 65 "/usr/include/assert.h" 3 4
9181 extern "C" {
9182
9183
9184 extern void __assert_fail (__const char *__assertion, __const char *__file,
9185 unsigned int __line, __const char *__function)
9186 throw () __attribute__ ((__noreturn__));
9187
9188
9189 extern void __assert_perror_fail (int __errnum, __const char *__file,
9190 unsigned int __line,
9191 __const char *__function)
9192 throw () __attribute__ ((__noreturn__));
9193
9194
9195
9196
9197 extern void __assert (const char *__assertion, const char *__file, int __line)
9198 throw () __attribute__ ((__noreturn__));
9199
9200
9201 }
9202 # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert" 2 3
9203 # 273 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 2 3
9204
9205 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h" 1 3 4
9206 # 275 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h" 2 3
9207
9208
9209
9210 namespace __gnu_debug
9211 {
9212 template<typename _Iterator, typename _Sequence>
9213 class _Safe_iterator;
9214
9215
9216 inline bool
9217 __check_singular_aux(const void*) { return false; }
9218
9219
9220
9221 template<typename _Iterator>
9222 inline bool
9223 __check_singular(_Iterator& __x)
9224 { return __gnu_debug::__check_singular_aux(&__x); }
9225
9226
9227 template<typename _Tp>
9228 inline bool
9229 __check_singular(const _Tp* __ptr)
9230 { return __ptr == 0; }
9231
9232
9233 template<typename _Iterator, typename _Sequence>
9234 inline bool
9235 __check_singular(const _Safe_iterator<_Iterator, _Sequence>& __x)
9236 { return __x._M_singular(); }
9237
9238
9239
9240 template<typename _Iterator>
9241 inline bool
9242 __check_dereferenceable(_Iterator&)
9243 { return true; }
9244
9245
9246 template<typename _Tp>
9247 inline bool
9248 __check_dereferenceable(const _Tp* __ptr)
9249 { return __ptr; }
9250
9251
9252 template<typename _Iterator, typename _Sequence>
9253 inline bool
9254 __check_dereferenceable(const _Safe_iterator<_Iterator, _Sequence>& __x)
9255 { return __x._M_dereferenceable(); }
9256
9257
9258
9259
9260 template<typename _RandomAccessIterator>
9261 inline bool
9262 __valid_range_aux2(const _RandomAccessIterator& __first,
9263 const _RandomAccessIterator& __last,
9264 std::random_access_iterator_tag)
9265 { return __last - __first >= 0; }
9266
9267
9268
9269
9270
9271 template<typename _InputIterator>
9272 inline bool
9273 __valid_range_aux2(const _InputIterator&, const _InputIterator&,
9274 std::input_iterator_tag)
9275 { return true; }
9276
9277
9278
9279
9280
9281 template<typename _Integral>
9282 inline bool
9283 __valid_range_aux(const _Integral&, const _Integral&, __true_type)
9284 { return true; }
9285
9286
9287
9288
9289 template<typename _InputIterator>
9290 inline bool
9291 __valid_range_aux(const _InputIterator& __first,
9292 const _InputIterator& __last, __false_type)
9293 {
9294 typedef typename std::iterator_traits<_InputIterator>::iterator_category
9295 _Category;
9296 return __gnu_debug::__valid_range_aux2(__first, __last, _Category());
9297 }
9298
9299
9300
9301
9302
9303
9304 template<typename _InputIterator>
9305 inline bool
9306 __valid_range(const _InputIterator& __first, const _InputIterator& __last)
9307 {
9308 typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
9309 return __gnu_debug::__valid_range_aux(__first, __last, _Integral());
9310 }
9311
9312
9313 template<typename _Iterator, typename _Sequence>
9314 inline bool
9315 __valid_range(const _Safe_iterator<_Iterator, _Sequence>& __first,
9316 const _Safe_iterator<_Iterator, _Sequence>& __last)
9317 { return __first._M_valid_range(__last); }
9318
9319
9320
9321
9322
9323 template<typename _InputIterator>
9324 inline _InputIterator
9325 __check_valid_range(const _InputIterator& __first,
9326 const _InputIterator& __last)
9327 {
9328 ;
9329 return __first;
9330 }
9331
9332
9333 template<typename _CharT, typename _Integer>
9334 inline const _CharT*
9335 __check_string(const _CharT* __s, const _Integer& __n)
9336 {
9337
9338
9339
9340 return __s;
9341 }
9342
9343
9344 template<typename _CharT>
9345 inline const _CharT*
9346 __check_string(const _CharT* __s)
9347 {
9348
9349
9350
9351 return __s;
9352 }
9353
9354
9355
9356 template<typename _InputIterator>
9357 inline bool
9358 __check_sorted_aux(const _InputIterator&, const _InputIterator&,
9359 std::input_iterator_tag)
9360 { return true; }
9361
9362
9363
9364 template<typename _ForwardIterator>
9365 inline bool
9366 __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
9367 std::forward_iterator_tag)
9368 {
9369 if (__first == __last)
9370 return true;
9371
9372 _ForwardIterator __next = __first;
9373 for (++__next; __next != __last; __first = __next, ++__next) {
9374 if (*__next < *__first)
9375 return false;
9376 }
9377
9378 return true;
9379 }
9380
9381
9382
9383 template<typename _InputIterator, typename _Predicate>
9384 inline bool
9385 __check_sorted_aux(const _InputIterator&, const _InputIterator&,
9386 _Predicate, std::input_iterator_tag)
9387 { return true; }
9388
9389
9390
9391 template<typename _ForwardIterator, typename _Predicate>
9392 inline bool
9393 __check_sorted_aux(_ForwardIterator __first, _ForwardIterator __last,
9394 _Predicate __pred, std::forward_iterator_tag)
9395 {
9396 if (__first == __last)
9397 return true;
9398
9399 _ForwardIterator __next = __first;
9400 for (++__next; __next != __last; __first = __next, ++__next) {
9401 if (__pred(*__next, *__first))
9402 return false;
9403 }
9404
9405 return true;
9406 }
9407
9408
9409 template<typename _InputIterator>
9410 inline bool
9411 __check_sorted(const _InputIterator& __first, const _InputIterator& __last)
9412 {
9413 typedef typename std::iterator_traits<_InputIterator>::iterator_category
9414 _Category;
9415 return __gnu_debug::__check_sorted_aux(__first, __last, _Category());
9416 }
9417
9418 template<typename _InputIterator, typename _Predicate>
9419 inline bool
9420 __check_sorted(const _InputIterator& __first, const _InputIterator& __last,
9421 _Predicate __pred)
9422 {
9423 typedef typename std::iterator_traits<_InputIterator>::iterator_category
9424 _Category;
9425 return __gnu_debug::__check_sorted_aux(__first, __last, __pred,
9426 _Category());
9427 }
9428
9429
9430
9431
9432 template<typename _ForwardIterator, typename _Tp>
9433 inline bool
9434 __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
9435 const _Tp& __value)
9436 {
9437 while (__first != __last && *__first < __value)
9438 ++__first;
9439 while (__first != __last && !(*__first < __value))
9440 ++__first;
9441 return __first == __last;
9442 }
9443
9444
9445 template<typename _ForwardIterator, typename _Tp, typename _Pred>
9446 inline bool
9447 __check_partitioned(_ForwardIterator __first, _ForwardIterator __last,
9448 const _Tp& __value, _Pred __pred)
9449 {
9450 while (__first != __last && __pred(*__first, __value))
9451 ++__first;
9452 while (__first != __last && !__pred(*__first, __value))
9453 ++__first;
9454 return __first == __last;
9455 }
9456 }
9457 # 78 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 2 3
9458
9459 namespace std
9460 {
9461 # 90 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9462 template<typename _ForwardIterator1, typename _ForwardIterator2>
9463 inline void
9464 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9465 {
9466 typedef typename iterator_traits<_ForwardIterator1>::value_type
9467 _ValueType1;
9468 typedef typename iterator_traits<_ForwardIterator2>::value_type
9469 _ValueType2;
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481 const _ValueType1 __tmp = *__a;
9482 *__a = *__b;
9483 *__b = __tmp;
9484 }
9485 # 123 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9486 template<typename _Tp>
9487 inline void
9488 swap(_Tp& __a, _Tp& __b)
9489 {
9490
9491
9492
9493 const _Tp __tmp = __a;
9494 __a = __b;
9495 __b = __tmp;
9496 }
9497 # 148 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9498 template<typename _Tp>
9499 inline const _Tp&
9500 min(const _Tp& __a, const _Tp& __b)
9501 {
9502
9503
9504
9505 if (__b < __a)
9506 return __b;
9507 return __a;
9508 }
9509 # 170 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9510 template<typename _Tp>
9511 inline const _Tp&
9512 max(const _Tp& __a, const _Tp& __b)
9513 {
9514
9515
9516
9517 if (__a < __b)
9518 return __b;
9519 return __a;
9520 }
9521 # 192 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9522 template<typename _Tp, typename _Compare>
9523 inline const _Tp&
9524 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
9525 {
9526
9527 if (__comp(__b, __a))
9528 return __b;
9529 return __a;
9530 }
9531 # 212 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9532 template<typename _Tp, typename _Compare>
9533 inline const _Tp&
9534 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
9535 {
9536
9537 if (__comp(__a, __b))
9538 return __b;
9539 return __a;
9540 }
9541
9542
9543
9544
9545
9546
9547
9548 template<typename _InputIterator, typename _OutputIterator>
9549 inline _OutputIterator
9550 __copy(_InputIterator __first, _InputIterator __last,
9551 _OutputIterator __result, input_iterator_tag)
9552 {
9553 for (; __first != __last; ++__result, ++__first)
9554 *__result = *__first;
9555 return __result;
9556 }
9557
9558 template<typename _RandomAccessIterator, typename _OutputIterator>
9559 inline _OutputIterator
9560 __copy(_RandomAccessIterator __first, _RandomAccessIterator __last,
9561 _OutputIterator __result, random_access_iterator_tag)
9562 {
9563 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
9564 _Distance;
9565 for (_Distance __n = __last - __first; __n > 0; --__n)
9566 {
9567 *__result = *__first;
9568 ++__first;
9569 ++__result;
9570 }
9571 return __result;
9572 }
9573
9574 template<typename _Tp>
9575 inline _Tp*
9576 __copy_trivial(const _Tp* __first, const _Tp* __last, _Tp* __result)
9577 {
9578 std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
9579 return __result + (__last - __first);
9580 }
9581
9582 template<typename _InputIterator, typename _OutputIterator>
9583 inline _OutputIterator
9584 __copy_aux2(_InputIterator __first, _InputIterator __last,
9585 _OutputIterator __result, __false_type)
9586 { return std::__copy(__first, __last, __result,
9587 std::__iterator_category(__first)); }
9588
9589 template<typename _InputIterator, typename _OutputIterator>
9590 inline _OutputIterator
9591 __copy_aux2(_InputIterator __first, _InputIterator __last,
9592 _OutputIterator __result, __true_type)
9593 { return std::__copy(__first, __last, __result,
9594 std::__iterator_category(__first)); }
9595
9596 template<typename _Tp>
9597 inline _Tp*
9598 __copy_aux2(_Tp* __first, _Tp* __last, _Tp* __result, __true_type)
9599 { return std::__copy_trivial(__first, __last, __result); }
9600
9601 template<typename _Tp>
9602 inline _Tp*
9603 __copy_aux2(const _Tp* __first, const _Tp* __last, _Tp* __result,
9604 __true_type)
9605 { return std::__copy_trivial(__first, __last, __result); }
9606
9607 template<typename _InputIterator, typename _OutputIterator>
9608 inline _OutputIterator
9609 __copy_ni2(_InputIterator __first, _InputIterator __last,
9610 _OutputIterator __result, __true_type)
9611 {
9612 typedef typename iterator_traits<_InputIterator>::value_type
9613 _ValueType;
9614 typedef typename __type_traits<
9615 _ValueType>::has_trivial_assignment_operator _Trivial;
9616 return _OutputIterator(std::__copy_aux2(__first, __last, __result.base(),
9617 _Trivial()));
9618 }
9619
9620 template<typename _InputIterator, typename _OutputIterator>
9621 inline _OutputIterator
9622 __copy_ni2(_InputIterator __first, _InputIterator __last,
9623 _OutputIterator __result, __false_type)
9624 {
9625 typedef typename iterator_traits<_InputIterator>::value_type _ValueType;
9626 typedef typename __type_traits<
9627 _ValueType>::has_trivial_assignment_operator _Trivial;
9628 return std::__copy_aux2(__first, __last, __result, _Trivial());
9629 }
9630
9631 template<typename _InputIterator, typename _OutputIterator>
9632 inline _OutputIterator
9633 __copy_ni1(_InputIterator __first, _InputIterator __last,
9634 _OutputIterator __result, __true_type)
9635 {
9636 typedef typename _Is_normal_iterator<_OutputIterator>::_Normal __Normal;
9637 return std::__copy_ni2(__first.base(), __last.base(),
9638 __result, __Normal());
9639 }
9640
9641 template<typename _InputIterator, typename _OutputIterator>
9642 inline _OutputIterator
9643 __copy_ni1(_InputIterator __first, _InputIterator __last,
9644 _OutputIterator __result, __false_type)
9645 {
9646 typedef typename _Is_normal_iterator<_OutputIterator>::_Normal __Normal;
9647 return std::__copy_ni2(__first, __last, __result, __Normal());
9648 }
9649 # 346 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9650 template<typename _InputIterator, typename _OutputIterator>
9651 inline _OutputIterator
9652 copy(_InputIterator __first, _InputIterator __last,
9653 _OutputIterator __result)
9654 {
9655
9656
9657
9658
9659 ;
9660
9661 typedef typename _Is_normal_iterator<_InputIterator>::_Normal __Normal;
9662 return std::__copy_ni1(__first, __last, __result, __Normal());
9663 }
9664
9665 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
9666 inline _BidirectionalIterator2
9667 __copy_backward(_BidirectionalIterator1 __first,
9668 _BidirectionalIterator1 __last,
9669 _BidirectionalIterator2 __result,
9670 bidirectional_iterator_tag)
9671 {
9672 while (__first != __last)
9673 *--__result = *--__last;
9674 return __result;
9675 }
9676
9677 template<typename _RandomAccessIterator, typename _BidirectionalIterator>
9678 inline _BidirectionalIterator
9679 __copy_backward(_RandomAccessIterator __first, _RandomAccessIterator __last,
9680 _BidirectionalIterator __result, random_access_iterator_tag)
9681 {
9682 typename iterator_traits<_RandomAccessIterator>::difference_type __n;
9683 for (__n = __last - __first; __n > 0; --__n)
9684 *--__result = *--__last;
9685 return __result;
9686 }
9687
9688
9689
9690
9691
9692
9693 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
9694 typename _BoolType>
9695 struct __copy_backward_dispatch
9696 {
9697 static _BidirectionalIterator2
9698 copy(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last,
9699 _BidirectionalIterator2 __result)
9700 { return std::__copy_backward(__first, __last, __result,
9701 std::__iterator_category(__first)); }
9702 };
9703
9704 template<typename _Tp>
9705 struct __copy_backward_dispatch<_Tp*, _Tp*, __true_type>
9706 {
9707 static _Tp*
9708 copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9709 {
9710 const ptrdiff_t _Num = __last - __first;
9711 std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
9712 return __result - _Num;
9713 }
9714 };
9715
9716 template<typename _Tp>
9717 struct __copy_backward_dispatch<const _Tp*, _Tp*, __true_type>
9718 {
9719 static _Tp*
9720 copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9721 {
9722 return std::__copy_backward_dispatch<_Tp*, _Tp*, __true_type>
9723 ::copy(__first, __last, __result);
9724 }
9725 };
9726
9727 template<typename _BI1, typename _BI2>
9728 inline _BI2
9729 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
9730 {
9731 typedef typename __type_traits<typename iterator_traits<_BI2>::value_type>
9732 ::has_trivial_assignment_operator _Trivial;
9733 return
9734 std::__copy_backward_dispatch<_BI1, _BI2, _Trivial>::copy(__first,
9735 __last,
9736 __result);
9737 }
9738
9739 template <typename _BI1, typename _BI2>
9740 inline _BI2
9741 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,
9742 _BI2 __result, __true_type)
9743 { return _BI2(std::__copy_backward_aux(__first, __last, __result.base())); }
9744
9745 template <typename _BI1, typename _BI2>
9746 inline _BI2
9747 __copy_backward_output_normal_iterator(_BI1 __first, _BI1 __last,
9748 _BI2 __result, __false_type)
9749 { return std::__copy_backward_aux(__first, __last, __result); }
9750
9751 template <typename _BI1, typename _BI2>
9752 inline _BI2
9753 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,
9754 _BI2 __result, __true_type)
9755 {
9756 typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
9757 return std::__copy_backward_output_normal_iterator(__first.base(),
9758 __last.base(),
9759 __result, __Normal());
9760 }
9761
9762 template <typename _BI1, typename _BI2>
9763 inline _BI2
9764 __copy_backward_input_normal_iterator(_BI1 __first, _BI1 __last,
9765 _BI2 __result, __false_type)
9766 {
9767 typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
9768 return std::__copy_backward_output_normal_iterator(__first, __last,
9769 __result, __Normal());
9770 }
9771 # 485 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9772 template <typename _BI1, typename _BI2>
9773 inline _BI2
9774 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
9775 {
9776
9777
9778
9779
9780
9781
9782 ;
9783
9784 typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal;
9785 return std::__copy_backward_input_normal_iterator(__first, __last,
9786 __result, __Normal());
9787 }
9788 # 514 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9789 template<typename _ForwardIterator, typename _Tp>
9790 void
9791 fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
9792 {
9793
9794
9795
9796 ;
9797
9798 for ( ; __first != __last; ++__first)
9799 *__first = __value;
9800 }
9801 # 538 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9802 template<typename _OutputIterator, typename _Size, typename _Tp>
9803 _OutputIterator
9804 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9805 {
9806
9807
9808
9809 for ( ; __n > 0; --__n, ++__first)
9810 *__first = __value;
9811 return __first;
9812 }
9813
9814
9815 inline void
9816 fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
9817 {
9818 ;
9819 const unsigned char __tmp = __c;
9820 std::memset(__first, __tmp, __last - __first);
9821 }
9822
9823 inline void
9824 fill(signed char* __first, signed char* __last, const signed char& __c)
9825 {
9826 ;
9827 const signed char __tmp = __c;
9828 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9829 }
9830
9831 inline void
9832 fill(char* __first, char* __last, const char& __c)
9833 {
9834 ;
9835 const char __tmp = __c;
9836 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9837 }
9838
9839 template<typename _Size>
9840 inline unsigned char*
9841 fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
9842 {
9843 std::fill(__first, __first + __n, __c);
9844 return __first + __n;
9845 }
9846
9847 template<typename _Size>
9848 inline signed char*
9849 fill_n(char* __first, _Size __n, const signed char& __c)
9850 {
9851 std::fill(__first, __first + __n, __c);
9852 return __first + __n;
9853 }
9854
9855 template<typename _Size>
9856 inline char*
9857 fill_n(char* __first, _Size __n, const char& __c)
9858 {
9859 std::fill(__first, __first + __n, __c);
9860 return __first + __n;
9861 }
9862 # 612 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9863 template<typename _InputIterator1, typename _InputIterator2>
9864 pair<_InputIterator1, _InputIterator2>
9865 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9866 _InputIterator2 __first2)
9867 {
9868
9869
9870
9871
9872
9873
9874 ;
9875
9876 while (__first1 != __last1 && *__first1 == *__first2)
9877 {
9878 ++__first1;
9879 ++__first2;
9880 }
9881 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9882 }
9883 # 647 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9884 template<typename _InputIterator1, typename _InputIterator2,
9885 typename _BinaryPredicate>
9886 pair<_InputIterator1, _InputIterator2>
9887 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9888 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
9889 {
9890
9891
9892
9893 ;
9894
9895 while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
9896 {
9897 ++__first1;
9898 ++__first2;
9899 }
9900 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9901 }
9902 # 677 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9903 template<typename _InputIterator1, typename _InputIterator2>
9904 inline bool
9905 equal(_InputIterator1 __first1, _InputIterator1 __last1,
9906 _InputIterator2 __first2)
9907 {
9908
9909
9910
9911
9912
9913
9914 ;
9915
9916 for ( ; __first1 != __last1; ++__first1, ++__first2)
9917 if (!(*__first1 == *__first2))
9918 return false;
9919 return true;
9920 }
9921 # 709 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9922 template<typename _InputIterator1, typename _InputIterator2,
9923 typename _BinaryPredicate>
9924 inline bool
9925 equal(_InputIterator1 __first1, _InputIterator1 __last1,
9926 _InputIterator2 __first2,
9927 _BinaryPredicate __binary_pred)
9928 {
9929
9930
9931
9932 ;
9933
9934 for ( ; __first1 != __last1; ++__first1, ++__first2)
9935 if (!__binary_pred(*__first1, *__first2))
9936 return false;
9937 return true;
9938 }
9939 # 741 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9940 template<typename _InputIterator1, typename _InputIterator2>
9941 bool
9942 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9943 _InputIterator2 __first2, _InputIterator2 __last2)
9944 {
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954 ;
9955 ;
9956
9957 for (;__first1 != __last1 && __first2 != __last2; ++__first1, ++__first2)
9958 {
9959 if (*__first1 < *__first2)
9960 return true;
9961 if (*__first2 < *__first1)
9962 return false;
9963 }
9964 return __first1 == __last1 && __first2 != __last2;
9965 }
9966 # 780 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h" 3
9967 template<typename _InputIterator1, typename _InputIterator2,
9968 typename _Compare>
9969 bool
9970 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9971 _InputIterator2 __first2, _InputIterator2 __last2,
9972 _Compare __comp)
9973 {
9974
9975
9976
9977 ;
9978 ;
9979
9980 for ( ; __first1 != __last1 && __first2 != __last2
9981 ; ++__first1, ++__first2)
9982 {
9983 if (__comp(*__first1, *__first2))
9984 return true;
9985 if (__comp(*__first2, *__first1))
9986 return false;
9987 }
9988 return __first1 == __last1 && __first2 != __last2;
9989 }
9990
9991 inline bool
9992 lexicographical_compare(const unsigned char* __first1,
9993 const unsigned char* __last1,
9994 const unsigned char* __first2,
9995 const unsigned char* __last2)
9996 {
9997 ;
9998 ;
9999
10000 const size_t __len1 = __last1 - __first1;
10001 const size_t __len2 = __last2 - __first2;
10002 const int __result = std::memcmp(__first1, __first2,
10003 std::min(__len1, __len2));
10004 return __result != 0 ? __result < 0 : __len1 < __len2;
10005 }
10006
10007 inline bool
10008 lexicographical_compare(const char* __first1, const char* __last1,
10009 const char* __first2, const char* __last2)
10010 {
10011 ;
10012 ;
10013
10014
10015 return std::lexicographical_compare((const signed char*) __first1,
10016 (const signed char*) __last1,
10017 (const signed char*) __first2,
10018 (const signed char*) __last2);
10019
10020
10021
10022
10023
10024
10025 }
10026
10027 }
10028 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 2 3
10029
10030
10031 namespace __gnu_cxx
10032 {
10033 # 62 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
10034 template <class _CharT>
10035 struct _Char_types
10036 {
10037 typedef unsigned long int_type;
10038 typedef std::streampos pos_type;
10039 typedef std::streamoff off_type;
10040 typedef std::mbstate_t state_type;
10041 };
10042 # 86 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
10043 template<typename _CharT>
10044 struct char_traits
10045 {
10046 typedef _CharT char_type;
10047 typedef typename _Char_types<_CharT>::int_type int_type;
10048 typedef typename _Char_types<_CharT>::pos_type pos_type;
10049 typedef typename _Char_types<_CharT>::off_type off_type;
10050 typedef typename _Char_types<_CharT>::state_type state_type;
10051
10052 static void
10053 assign(char_type& __c1, const char_type& __c2)
10054 { __c1 = __c2; }
10055
10056 static bool
10057 eq(const char_type& __c1, const char_type& __c2)
10058 { return __c1 == __c2; }
10059
10060 static bool
10061 lt(const char_type& __c1, const char_type& __c2)
10062 { return __c1 < __c2; }
10063
10064 static int
10065 compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
10066
10067 static std::size_t
10068 length(const char_type* __s);
10069
10070 static const char_type*
10071 find(const char_type* __s, std::size_t __n, const char_type& __a);
10072
10073 static char_type*
10074 move(char_type* __s1, const char_type* __s2, std::size_t __n);
10075
10076 static char_type*
10077 copy(char_type* __s1, const char_type* __s2, std::size_t __n);
10078
10079 static char_type*
10080 assign(char_type* __s, std::size_t __n, char_type __a);
10081
10082 static char_type
10083 to_char_type(const int_type& __c)
10084 { return static_cast<char_type>(__c); }
10085
10086 static int_type
10087 to_int_type(const char_type& __c)
10088 { return static_cast<int_type>(__c); }
10089
10090 static bool
10091 eq_int_type(const int_type& __c1, const int_type& __c2)
10092 { return __c1 == __c2; }
10093
10094 static int_type
10095 eof()
10096 { return static_cast<int_type>((-1)); }
10097
10098 static int_type
10099 not_eof(const int_type& __c)
10100 { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
10101 };
10102
10103 template<typename _CharT>
10104 int
10105 char_traits<_CharT>::
10106 compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
10107 {
10108 for (size_t __i = 0; __i < __n; ++__i)
10109 if (lt(__s1[__i], __s2[__i]))
10110 return -1;
10111 else if (lt(__s2[__i], __s1[__i]))
10112 return 1;
10113 return 0;
10114 }
10115
10116 template<typename _CharT>
10117 std::size_t
10118 char_traits<_CharT>::
10119 length(const char_type* __p)
10120 {
10121 std::size_t __i = 0;
10122 while (!eq(__p[__i], char_type()))
10123 ++__i;
10124 return __i;
10125 }
10126
10127 template<typename _CharT>
10128 const typename char_traits<_CharT>::char_type*
10129 char_traits<_CharT>::
10130 find(const char_type* __s, std::size_t __n, const char_type& __a)
10131 {
10132 for (std::size_t __i = 0; __i < __n; ++__i)
10133 if (eq(__s[__i], __a))
10134 return __s + __i;
10135 return 0;
10136 }
10137
10138 template<typename _CharT>
10139 typename char_traits<_CharT>::char_type*
10140 char_traits<_CharT>::
10141 move(char_type* __s1, const char_type* __s2, std::size_t __n)
10142 {
10143 return static_cast<_CharT*>(std::memmove(__s1, __s2,
10144 __n * sizeof(char_type)));
10145 }
10146
10147 template<typename _CharT>
10148 typename char_traits<_CharT>::char_type*
10149 char_traits<_CharT>::
10150 copy(char_type* __s1, const char_type* __s2, std::size_t __n)
10151 {
10152 std::copy(__s2, __s2 + __n, __s1);
10153 return __s1;
10154 }
10155
10156 template<typename _CharT>
10157 typename char_traits<_CharT>::char_type*
10158 char_traits<_CharT>::
10159 assign(char_type* __s, std::size_t __n, char_type __a)
10160 {
10161 std::fill_n(__s, __n, __a);
10162 return __s;
10163 }
10164 }
10165
10166 namespace std
10167 {
10168 # 224 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h" 3
10169 template<class _CharT>
10170 struct char_traits
10171 : public __gnu_cxx::char_traits<_CharT>
10172 { };
10173
10174
10175
10176 template<>
10177 struct char_traits<char>
10178 {
10179 typedef char char_type;
10180 typedef int int_type;
10181 typedef streampos pos_type;
10182 typedef streamoff off_type;
10183 typedef mbstate_t state_type;
10184
10185 static void
10186 assign(char_type& __c1, const char_type& __c2)
10187 { __c1 = __c2; }
10188
10189 static bool
10190 eq(const char_type& __c1, const char_type& __c2)
10191 { return __c1 == __c2; }
10192
10193 static bool
10194 lt(const char_type& __c1, const char_type& __c2)
10195 { return __c1 < __c2; }
10196
10197 static int
10198 compare(const char_type* __s1, const char_type* __s2, size_t __n)
10199 { return memcmp(__s1, __s2, __n); }
10200
10201 static size_t
10202 length(const char_type* __s)
10203 { return strlen(__s); }
10204
10205 static const char_type*
10206 find(const char_type* __s, size_t __n, const char_type& __a)
10207 { return static_cast<const char_type*>(memchr(__s, __a, __n)); }
10208
10209 static char_type*
10210 move(char_type* __s1, const char_type* __s2, size_t __n)
10211 { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }
10212
10213 static char_type*
10214 copy(char_type* __s1, const char_type* __s2, size_t __n)
10215 { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }
10216
10217 static char_type*
10218 assign(char_type* __s, size_t __n, char_type __a)
10219 { return static_cast<char_type*>(memset(__s, __a, __n)); }
10220
10221 static char_type
10222 to_char_type(const int_type& __c)
10223 { return static_cast<char_type>(__c); }
10224
10225
10226
10227 static int_type
10228 to_int_type(const char_type& __c)
10229 { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
10230
10231 static bool
10232 eq_int_type(const int_type& __c1, const int_type& __c2)
10233 { return __c1 == __c2; }
10234
10235 static int_type
10236 eof() { return static_cast<int_type>((-1)); }
10237
10238 static int_type
10239 not_eof(const int_type& __c)
10240 { return (__c == eof()) ? 0 : __c; }
10241 };
10242
10243
10244
10245
10246 template<>
10247 struct char_traits<wchar_t>
10248 {
10249 typedef wchar_t char_type;
10250 typedef wint_t int_type;
10251 typedef streamoff off_type;
10252 typedef wstreampos pos_type;
10253 typedef mbstate_t state_type;
10254
10255 static void
10256 assign(char_type& __c1, const char_type& __c2)
10257 { __c1 = __c2; }
10258
10259 static bool
10260 eq(const char_type& __c1, const char_type& __c2)
10261 { return __c1 == __c2; }
10262
10263 static bool
10264 lt(const char_type& __c1, const char_type& __c2)
10265 { return __c1 < __c2; }
10266
10267 static int
10268 compare(const char_type* __s1, const char_type* __s2, size_t __n)
10269 { return wmemcmp(__s1, __s2, __n); }
10270
10271 static size_t
10272 length(const char_type* __s)
10273 { return wcslen(__s); }
10274
10275 static const char_type*
10276 find(const char_type* __s, size_t __n, const char_type& __a)
10277 { return wmemchr(__s, __a, __n); }
10278
10279 static char_type*
10280 move(char_type* __s1, const char_type* __s2, size_t __n)
10281 { return wmemmove(__s1, __s2, __n); }
10282
10283 static char_type*
10284 copy(char_type* __s1, const char_type* __s2, size_t __n)
10285 { return wmemcpy(__s1, __s2, __n); }
10286
10287 static char_type*
10288 assign(char_type* __s, size_t __n, char_type __a)
10289 { return wmemset(__s, __a, __n); }
10290
10291 static char_type
10292 to_char_type(const int_type& __c) { return char_type(__c); }
10293
10294 static int_type
10295 to_int_type(const char_type& __c) { return int_type(__c); }
10296
10297 static bool
10298 eq_int_type(const int_type& __c1, const int_type& __c2)
10299 { return __c1 == __c2; }
10300
10301 static int_type
10302 eof() { return static_cast<int_type>((0xffffffffu)); }
10303
10304 static int_type
10305 not_eof(const int_type& __c)
10306 { return eq_int_type(__c, eof()) ? 0 : __c; }
10307 };
10308
10309
10310 template<typename _CharT, typename _Traits>
10311 struct _Char_traits_match
10312 {
10313 _CharT _M_c;
10314 _Char_traits_match(_CharT const& __c) : _M_c(__c) { }
10315
10316 bool
10317 operator()(_CharT const& __a) { return _Traits::eq(_M_c, __a); }
10318 };
10319 }
10320 # 48 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
10321 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 1 3
10322 # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
10323
10324 # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
10325
10326
10327 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h" 1 3
10328 # 52 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h" 3
10329 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h" 1 3
10330 # 34 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h" 3
10331 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h" 1 3
10332 # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h" 3
10333 namespace __gnu_cxx
10334 {
10335 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h" 3
10336 template<typename _Tp>
10337 class new_allocator
10338 {
10339 public:
10340 typedef size_t size_type;
10341 typedef ptrdiff_t difference_type;
10342 typedef _Tp* pointer;
10343 typedef const _Tp* const_pointer;
10344 typedef _Tp& reference;
10345 typedef const _Tp& const_reference;
10346 typedef _Tp value_type;
10347
10348 template<typename _Tp1>
10349 struct rebind
10350 { typedef new_allocator<_Tp1> other; };
10351
10352 new_allocator() throw() { }
10353
10354 new_allocator(const new_allocator&) throw() { }
10355
10356 template<typename _Tp1>
10357 new_allocator(const new_allocator<_Tp1>&) throw() { }
10358
10359 ~new_allocator() throw() { }
10360
10361 pointer
10362 address(reference __x) const { return &__x; }
10363
10364 const_pointer
10365 address(const_reference __x) const { return &__x; }
10366
10367
10368
10369 pointer
10370 allocate(size_type __n, const void* = 0)
10371 { return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); }
10372
10373
10374 void
10375 deallocate(pointer __p, size_type)
10376 { ::operator delete(__p); }
10377
10378 size_type
10379 max_size() const throw()
10380 { return size_t(-1) / sizeof(_Tp); }
10381
10382
10383
10384 void
10385 construct(pointer __p, const _Tp& __val)
10386 { ::new(__p) _Tp(__val); }
10387
10388 void
10389 destroy(pointer __p) { __p->~_Tp(); }
10390 };
10391
10392 template<typename _Tp>
10393 inline bool
10394 operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10395 { return true; }
10396
10397 template<typename _Tp>
10398 inline bool
10399 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10400 { return false; }
10401 }
10402 # 35 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h" 2 3
10403 # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h" 2 3
10404
10405 namespace std
10406 {
10407 template<typename _Tp>
10408 class allocator;
10409
10410 template<>
10411 class allocator<void>
10412 {
10413 public:
10414 typedef size_t size_type;
10415 typedef ptrdiff_t difference_type;
10416 typedef void* pointer;
10417 typedef const void* const_pointer;
10418 typedef void value_type;
10419
10420 template<typename _Tp1>
10421 struct rebind
10422 { typedef allocator<_Tp1> other; };
10423 };
10424
10425
10426
10427
10428
10429
10430 template<typename _Tp>
10431 class allocator: public __gnu_cxx::new_allocator<_Tp>
10432 {
10433 public:
10434 typedef size_t size_type;
10435 typedef ptrdiff_t difference_type;
10436 typedef _Tp* pointer;
10437 typedef const _Tp* const_pointer;
10438 typedef _Tp& reference;
10439 typedef const _Tp& const_reference;
10440 typedef _Tp value_type;
10441
10442 template<typename _Tp1>
10443 struct rebind
10444 { typedef allocator<_Tp1> other; };
10445
10446 allocator() throw() { }
10447
10448 allocator(const allocator& a) throw()
10449 : __gnu_cxx::new_allocator<_Tp>(a) { }
10450
10451 template<typename _Tp1>
10452 allocator(const allocator<_Tp1>&) throw() { }
10453
10454 ~allocator() throw() { }
10455
10456
10457 };
10458
10459 template<typename _T1, typename _T2>
10460 inline bool
10461 operator==(const allocator<_T1>&, const allocator<_T2>&)
10462 { return true; }
10463
10464 template<typename _T1, typename _T2>
10465 inline bool
10466 operator!=(const allocator<_T1>&, const allocator<_T2>&)
10467 { return false; }
10468
10469
10470
10471
10472
10473 extern template class allocator<char>;
10474 extern template class allocator<wchar_t>;
10475
10476
10477
10478
10479 }
10480 # 56 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10481 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 1 3
10482 # 67 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10483 namespace std
10484 {
10485
10486
10487
10488
10489
10490
10491 template<typename _T1, typename _T2>
10492 inline void
10493 _Construct(_T1* __p, const _T2& __value)
10494 {
10495
10496
10497 ::new(static_cast<void*>(__p)) _T1(__value);
10498 }
10499
10500
10501
10502
10503
10504
10505
10506 template<typename _T1>
10507 inline void
10508 _Construct(_T1* __p)
10509 {
10510
10511
10512 ::new(static_cast<void*>(__p)) _T1();
10513 }
10514
10515
10516
10517
10518
10519
10520 template<typename _Tp>
10521 inline void
10522 _Destroy(_Tp* __pointer)
10523 { __pointer->~_Tp(); }
10524 # 116 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10525 template<typename _ForwardIterator>
10526 inline void
10527 __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
10528 __false_type)
10529 { for ( ; __first != __last; ++__first) std::_Destroy(&*__first); }
10530 # 131 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10531 template<typename _ForwardIterator>
10532 inline void
10533 __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
10534 { }
10535 # 143 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h" 3
10536 template<typename _ForwardIterator>
10537 inline void
10538 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
10539 {
10540 typedef typename iterator_traits<_ForwardIterator>::value_type
10541 _Value_type;
10542 typedef typename __type_traits<_Value_type>::has_trivial_destructor
10543 _Has_trivial_destructor;
10544
10545 std::__destroy_aux(__first, __last, _Has_trivial_destructor());
10546 }
10547 }
10548 # 57 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10549
10550 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 1 3
10551 # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10552 namespace std
10553 {
10554
10555 template<typename _InputIterator, typename _ForwardIterator>
10556 inline _ForwardIterator
10557 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
10558 _ForwardIterator __result,
10559 __true_type)
10560 { return std::copy(__first, __last, __result); }
10561
10562 template<typename _InputIterator, typename _ForwardIterator>
10563 inline _ForwardIterator
10564 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
10565 _ForwardIterator __result,
10566 __false_type)
10567 {
10568 _ForwardIterator __cur = __result;
10569 try
10570 {
10571 for ( ; __first != __last; ++__first, ++__cur)
10572 std::_Construct(&*__cur, *__first);
10573 return __cur;
10574 }
10575 catch(...)
10576 {
10577 std::_Destroy(__result, __cur);
10578 throw;
10579 }
10580 }
10581 # 105 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10582 template<typename _InputIterator, typename _ForwardIterator>
10583 inline _ForwardIterator
10584 uninitialized_copy(_InputIterator __first, _InputIterator __last,
10585 _ForwardIterator __result)
10586 {
10587 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10588 typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
10589 return std::__uninitialized_copy_aux(__first, __last, __result,
10590 _Is_POD());
10591 }
10592
10593 inline char*
10594 uninitialized_copy(const char* __first, const char* __last, char* __result)
10595 {
10596 std::memmove(__result, __first, __last - __first);
10597 return __result + (__last - __first);
10598 }
10599
10600 inline wchar_t*
10601 uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
10602 wchar_t* __result)
10603 {
10604 std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
10605 return __result + (__last - __first);
10606 }
10607
10608
10609
10610 template<typename _ForwardIterator, typename _Tp>
10611 inline void
10612 __uninitialized_fill_aux(_ForwardIterator __first,
10613 _ForwardIterator __last,
10614 const _Tp& __x, __true_type)
10615 { std::fill(__first, __last, __x); }
10616
10617 template<typename _ForwardIterator, typename _Tp>
10618 void
10619 __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
10620 const _Tp& __x, __false_type)
10621 {
10622 _ForwardIterator __cur = __first;
10623 try
10624 {
10625 for ( ; __cur != __last; ++__cur)
10626 std::_Construct(&*__cur, __x);
10627 }
10628 catch(...)
10629 {
10630 std::_Destroy(__first, __cur);
10631 throw;
10632 }
10633 }
10634 # 167 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10635 template<typename _ForwardIterator, typename _Tp>
10636 inline void
10637 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
10638 const _Tp& __x)
10639 {
10640 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10641 typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
10642 std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
10643 }
10644
10645
10646
10647 template<typename _ForwardIterator, typename _Size, typename _Tp>
10648 inline _ForwardIterator
10649 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10650 const _Tp& __x, __true_type)
10651 { return std::fill_n(__first, __n, __x); }
10652
10653 template<typename _ForwardIterator, typename _Size, typename _Tp>
10654 _ForwardIterator
10655 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10656 const _Tp& __x, __false_type)
10657 {
10658 _ForwardIterator __cur = __first;
10659 try
10660 {
10661 for ( ; __n > 0; --__n, ++__cur)
10662 std::_Construct(&*__cur, __x);
10663 return __cur;
10664 }
10665 catch(...)
10666 {
10667 std::_Destroy(__first, __cur);
10668 throw;
10669 }
10670 }
10671 # 213 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10672 template<typename _ForwardIterator, typename _Size, typename _Tp>
10673 inline _ForwardIterator
10674 uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
10675 {
10676 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10677 typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
10678 return std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
10679 }
10680 # 230 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h" 3
10681 template<typename _InputIterator1, typename _InputIterator2,
10682 typename _ForwardIterator>
10683 inline _ForwardIterator
10684 __uninitialized_copy_copy(_InputIterator1 __first1,
10685 _InputIterator1 __last1,
10686 _InputIterator2 __first2,
10687 _InputIterator2 __last2,
10688 _ForwardIterator __result)
10689 {
10690 _ForwardIterator __mid = std::uninitialized_copy(__first1, __last1,
10691 __result);
10692 try
10693 {
10694 return std::uninitialized_copy(__first2, __last2, __mid);
10695 }
10696 catch(...)
10697 {
10698 std::_Destroy(__result, __mid);
10699 throw;
10700 }
10701 }
10702
10703
10704
10705
10706 template<typename _ForwardIterator, typename _Tp, typename _InputIterator>
10707 inline _ForwardIterator
10708 __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
10709 const _Tp& __x, _InputIterator __first,
10710 _InputIterator __last)
10711 {
10712 std::uninitialized_fill(__result, __mid, __x);
10713 try
10714 {
10715 return std::uninitialized_copy(__first, __last, __mid);
10716 }
10717 catch(...)
10718 {
10719 std::_Destroy(__result, __mid);
10720 throw;
10721 }
10722 }
10723
10724
10725
10726
10727 template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
10728 inline void
10729 __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
10730 _ForwardIterator __first2,
10731 _ForwardIterator __last2, const _Tp& __x)
10732 {
10733 _ForwardIterator __mid2 = std::uninitialized_copy(__first1, __last1,
10734 __first2);
10735 try
10736 {
10737 std::uninitialized_fill(__mid2, __last2, __x);
10738 }
10739 catch(...)
10740 {
10741 std::_Destroy(__first2, __mid2);
10742 throw;
10743 }
10744 }
10745
10746 }
10747 # 59 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10748 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h" 1 3
10749 # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h" 3
10750 namespace std
10751 {
10752
10753
10754
10755
10756 template <class _ForwardIterator, class _Tp>
10757 class raw_storage_iterator
10758 : public iterator<output_iterator_tag, void, void, void, void>
10759 {
10760 protected:
10761 _ForwardIterator _M_iter;
10762
10763 public:
10764 explicit
10765 raw_storage_iterator(_ForwardIterator __x)
10766 : _M_iter(__x) {}
10767
10768 raw_storage_iterator&
10769 operator*() { return *this; }
10770
10771 raw_storage_iterator&
10772 operator=(const _Tp& __element)
10773 {
10774 std::_Construct(&*_M_iter, __element);
10775 return *this;
10776 }
10777
10778 raw_storage_iterator<_ForwardIterator, _Tp>&
10779 operator++()
10780 {
10781 ++_M_iter;
10782 return *this;
10783 }
10784
10785 raw_storage_iterator<_ForwardIterator, _Tp>
10786 operator++(int)
10787 {
10788 raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
10789 ++_M_iter;
10790 return __tmp;
10791 }
10792 };
10793 }
10794 # 60 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
10795
10796 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 1 3
10797 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10798
10799 # 47 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10800 # 150 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10801 namespace std
10802 {
10803
10804
10805
10806
10807
10808 enum float_round_style
10809 {
10810 round_indeterminate = -1,
10811 round_toward_zero = 0,
10812 round_to_nearest = 1,
10813 round_toward_infinity = 2,
10814 round_toward_neg_infinity = 3
10815 };
10816
10817
10818
10819
10820
10821
10822
10823 enum float_denorm_style
10824 {
10825
10826 denorm_indeterminate = -1,
10827
10828 denorm_absent = 0,
10829
10830 denorm_present = 1
10831 };
10832 # 192 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10833 struct __numeric_limits_base
10834 {
10835
10836
10837 static const bool is_specialized = false;
10838
10839
10840
10841
10842 static const int digits = 0;
10843
10844 static const int digits10 = 0;
10845
10846 static const bool is_signed = false;
10847
10848
10849
10850
10851
10852 static const bool is_integer = false;
10853
10854
10855
10856
10857 static const bool is_exact = false;
10858
10859
10860 static const int radix = 0;
10861
10862
10863
10864 static const int min_exponent = 0;
10865
10866
10867 static const int min_exponent10 = 0;
10868
10869
10870
10871 static const int max_exponent = 0;
10872
10873
10874 static const int max_exponent10 = 0;
10875
10876
10877 static const bool has_infinity = false;
10878
10879
10880 static const bool has_quiet_NaN = false;
10881
10882
10883 static const bool has_signaling_NaN = false;
10884
10885 static const float_denorm_style has_denorm = denorm_absent;
10886
10887
10888 static const bool has_denorm_loss = false;
10889
10890
10891
10892 static const bool is_iec559 = false;
10893
10894
10895
10896 static const bool is_bounded = false;
10897
10898
10899
10900
10901 static const bool is_modulo = false;
10902
10903
10904 static const bool traps = false;
10905
10906 static const bool tinyness_before = false;
10907
10908
10909
10910 static const float_round_style round_style = round_toward_zero;
10911 };
10912 # 285 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits" 3
10913 template<typename _Tp>
10914 struct numeric_limits : public __numeric_limits_base
10915 {
10916
10917
10918 static _Tp min() throw() { return static_cast<_Tp>(0); }
10919
10920 static _Tp max() throw() { return static_cast<_Tp>(0); }
10921
10922
10923 static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
10924
10925 static _Tp round_error() throw() { return static_cast<_Tp>(0); }
10926
10927 static _Tp infinity() throw() { return static_cast<_Tp>(0); }
10928
10929 static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
10930
10931
10932 static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
10933
10934
10935
10936 static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
10937 };
10938
10939
10940
10941 template<>
10942 struct numeric_limits<bool>
10943 {
10944 static const bool is_specialized = true;
10945
10946 static bool min() throw()
10947 { return false; }
10948 static bool max() throw()
10949 { return true; }
10950
10951 static const int digits = 1;
10952 static const int digits10 = 0;
10953 static const bool is_signed = false;
10954 static const bool is_integer = true;
10955 static const bool is_exact = true;
10956 static const int radix = 2;
10957 static bool epsilon() throw()
10958 { return false; }
10959 static bool round_error() throw()
10960 { return false; }
10961
10962 static const int min_exponent = 0;
10963 static const int min_exponent10 = 0;
10964 static const int max_exponent = 0;
10965 static const int max_exponent10 = 0;
10966
10967 static const bool has_infinity = false;
10968 static const bool has_quiet_NaN = false;
10969 static const bool has_signaling_NaN = false;
10970 static const float_denorm_style has_denorm = denorm_absent;
10971 static const bool has_denorm_loss = false;
10972
10973 static bool infinity() throw()
10974 { return false; }
10975 static bool quiet_NaN() throw()
10976 { return false; }
10977 static bool signaling_NaN() throw()
10978 { return false; }
10979 static bool denorm_min() throw()
10980 { return false; }
10981
10982 static const bool is_iec559 = false;
10983 static const bool is_bounded = true;
10984 static const bool is_modulo = false;
10985
10986
10987
10988
10989 static const bool traps = true;
10990 static const bool tinyness_before = false;
10991 static const float_round_style round_style = round_toward_zero;
10992 };
10993
10994 template<>
10995 struct numeric_limits<char>
10996 {
10997 static const bool is_specialized = true;
10998
10999 static char min() throw()
11000 { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
11001 static char max() throw()
11002 { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
11003
11004 static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
11005 static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
11006 static const bool is_signed = ((char)(-1) < 0);
11007 static const bool is_integer = true;
11008 static const bool is_exact = true;
11009 static const int radix = 2;
11010 static char epsilon() throw()
11011 { return 0; }
11012 static char round_error() throw()
11013 { return 0; }
11014
11015 static const int min_exponent = 0;
11016 static const int min_exponent10 = 0;
11017 static const int max_exponent = 0;
11018 static const int max_exponent10 = 0;
11019
11020 static const bool has_infinity = false;
11021 static const bool has_quiet_NaN = false;
11022 static const bool has_signaling_NaN = false;
11023 static const float_denorm_style has_denorm = denorm_absent;
11024 static const bool has_denorm_loss = false;
11025
11026 static char infinity() throw()
11027 { return char(); }
11028 static char quiet_NaN() throw()
11029 { return char(); }
11030 static char signaling_NaN() throw()
11031 { return char(); }
11032 static char denorm_min() throw()
11033 { return static_cast<char>(0); }
11034
11035 static const bool is_iec559 = false;
11036 static const bool is_bounded = true;
11037 static const bool is_modulo = true;
11038
11039 static const bool traps = true;
11040 static const bool tinyness_before = false;
11041 static const float_round_style round_style = round_toward_zero;
11042 };
11043
11044 template<>
11045 struct numeric_limits<signed char>
11046 {
11047 static const bool is_specialized = true;
11048
11049 static signed char min() throw()
11050 { return -127 - 1; }
11051 static signed char max() throw()
11052 { return 127; }
11053
11054 static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
11055 static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
11056 static const bool is_signed = true;
11057 static const bool is_integer = true;
11058 static const bool is_exact = true;
11059 static const int radix = 2;
11060 static signed char epsilon() throw()
11061 { return 0; }
11062 static signed char round_error() throw()
11063 { return 0; }
11064
11065 static const int min_exponent = 0;
11066 static const int min_exponent10 = 0;
11067 static const int max_exponent = 0;
11068 static const int max_exponent10 = 0;
11069
11070 static const bool has_infinity = false;
11071 static const bool has_quiet_NaN = false;
11072 static const bool has_signaling_NaN = false;
11073 static const float_denorm_style has_denorm = denorm_absent;
11074 static const bool has_denorm_loss = false;
11075
11076 static signed char infinity() throw()
11077 { return static_cast<signed char>(0); }
11078 static signed char quiet_NaN() throw()
11079 { return static_cast<signed char>(0); }
11080 static signed char signaling_NaN() throw()
11081 { return static_cast<signed char>(0); }
11082 static signed char denorm_min() throw()
11083 { return static_cast<signed char>(0); }
11084
11085 static const bool is_iec559 = false;
11086 static const bool is_bounded = true;
11087 static const bool is_modulo = true;
11088
11089 static const bool traps = true;
11090 static const bool tinyness_before = false;
11091 static const float_round_style round_style = round_toward_zero;
11092 };
11093
11094 template<>
11095 struct numeric_limits<unsigned char>
11096 {
11097 static const bool is_specialized = true;
11098
11099 static unsigned char min() throw()
11100 { return 0; }
11101 static unsigned char max() throw()
11102 { return 127 * 2U + 1; }
11103
11104 static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
11105 static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
11106 static const bool is_signed = false;
11107 static const bool is_integer = true;
11108 static const bool is_exact = true;
11109 static const int radix = 2;
11110 static unsigned char epsilon() throw()
11111 { return 0; }
11112 static unsigned char round_error() throw()
11113 { return 0; }
11114
11115 static const int min_exponent = 0;
11116 static const int min_exponent10 = 0;
11117 static const int max_exponent = 0;
11118 static const int max_exponent10 = 0;
11119
11120 static const bool has_infinity = false;
11121 static const bool has_quiet_NaN = false;
11122 static const bool has_signaling_NaN = false;
11123 static const float_denorm_style has_denorm = denorm_absent;
11124 static const bool has_denorm_loss = false;
11125
11126 static unsigned char infinity() throw()
11127 { return static_cast<unsigned char>(0); }
11128 static unsigned char quiet_NaN() throw()
11129 { return static_cast<unsigned char>(0); }
11130 static unsigned char signaling_NaN() throw()
11131 { return static_cast<unsigned char>(0); }
11132 static unsigned char denorm_min() throw()
11133 { return static_cast<unsigned char>(0); }
11134
11135 static const bool is_iec559 = false;
11136 static const bool is_bounded = true;
11137 static const bool is_modulo = true;
11138
11139 static const bool traps = true;
11140 static const bool tinyness_before = false;
11141 static const float_round_style round_style = round_toward_zero;
11142 };
11143
11144 template<>
11145 struct numeric_limits<wchar_t>
11146 {
11147 static const bool is_specialized = true;
11148
11149 static wchar_t min() throw()
11150 { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
11151 static wchar_t max() throw()
11152 { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
11153
11154 static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
11155 static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
11156 static const bool is_signed = ((wchar_t)(-1) < 0);
11157 static const bool is_integer = true;
11158 static const bool is_exact = true;
11159 static const int radix = 2;
11160 static wchar_t epsilon() throw()
11161 { return 0; }
11162 static wchar_t round_error() throw()
11163 { return 0; }
11164
11165 static const int min_exponent = 0;
11166 static const int min_exponent10 = 0;
11167 static const int max_exponent = 0;
11168 static const int max_exponent10 = 0;
11169
11170 static const bool has_infinity = false;
11171 static const bool has_quiet_NaN = false;
11172 static const bool has_signaling_NaN = false;
11173 static const float_denorm_style has_denorm = denorm_absent;
11174 static const bool has_denorm_loss = false;
11175
11176 static wchar_t infinity() throw()
11177 { return wchar_t(); }
11178 static wchar_t quiet_NaN() throw()
11179 { return wchar_t(); }
11180 static wchar_t signaling_NaN() throw()
11181 { return wchar_t(); }
11182 static wchar_t denorm_min() throw()
11183 { return wchar_t(); }
11184
11185 static const bool is_iec559 = false;
11186 static const bool is_bounded = true;
11187 static const bool is_modulo = true;
11188
11189 static const bool traps = true;
11190 static const bool tinyness_before = false;
11191 static const float_round_style round_style = round_toward_zero;
11192 };
11193
11194 template<>
11195 struct numeric_limits<short>
11196 {
11197 static const bool is_specialized = true;
11198
11199 static short min() throw()
11200 { return -32767 - 1; }
11201 static short max() throw()
11202 { return 32767; }
11203
11204 static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
11205 static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
11206 static const bool is_signed = true;
11207 static const bool is_integer = true;
11208 static const bool is_exact = true;
11209 static const int radix = 2;
11210 static short epsilon() throw()
11211 { return 0; }
11212 static short round_error() throw()
11213 { return 0; }
11214
11215 static const int min_exponent = 0;
11216 static const int min_exponent10 = 0;
11217 static const int max_exponent = 0;
11218 static const int max_exponent10 = 0;
11219
11220 static const bool has_infinity = false;
11221 static const bool has_quiet_NaN = false;
11222 static const bool has_signaling_NaN = false;
11223 static const float_denorm_style has_denorm = denorm_absent;
11224 static const bool has_denorm_loss = false;
11225
11226 static short infinity() throw()
11227 { return short(); }
11228 static short quiet_NaN() throw()
11229 { return short(); }
11230 static short signaling_NaN() throw()
11231 { return short(); }
11232 static short denorm_min() throw()
11233 { return short(); }
11234
11235 static const bool is_iec559 = false;
11236 static const bool is_bounded = true;
11237 static const bool is_modulo = true;
11238
11239 static const bool traps = true;
11240 static const bool tinyness_before = false;
11241 static const float_round_style round_style = round_toward_zero;
11242 };
11243
11244 template<>
11245 struct numeric_limits<unsigned short>
11246 {
11247 static const bool is_specialized = true;
11248
11249 static unsigned short min() throw()
11250 { return 0; }
11251 static unsigned short max() throw()
11252 { return 32767 * 2U + 1; }
11253
11254 static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
11255 static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
11256 static const bool is_signed = false;
11257 static const bool is_integer = true;
11258 static const bool is_exact = true;
11259 static const int radix = 2;
11260 static unsigned short epsilon() throw()
11261 { return 0; }
11262 static unsigned short round_error() throw()
11263 { return 0; }
11264
11265 static const int min_exponent = 0;
11266 static const int min_exponent10 = 0;
11267 static const int max_exponent = 0;
11268 static const int max_exponent10 = 0;
11269
11270 static const bool has_infinity = false;
11271 static const bool has_quiet_NaN = false;
11272 static const bool has_signaling_NaN = false;
11273 static const float_denorm_style has_denorm = denorm_absent;
11274 static const bool has_denorm_loss = false;
11275
11276 static unsigned short infinity() throw()
11277 { return static_cast<unsigned short>(0); }
11278 static unsigned short quiet_NaN() throw()
11279 { return static_cast<unsigned short>(0); }
11280 static unsigned short signaling_NaN() throw()
11281 { return static_cast<unsigned short>(0); }
11282 static unsigned short denorm_min() throw()
11283 { return static_cast<unsigned short>(0); }
11284
11285 static const bool is_iec559 = false;
11286 static const bool is_bounded = true;
11287 static const bool is_modulo = true;
11288
11289 static const bool traps = true;
11290 static const bool tinyness_before = false;
11291 static const float_round_style round_style = round_toward_zero;
11292 };
11293
11294 template<>
11295 struct numeric_limits<int>
11296 {
11297 static const bool is_specialized = true;
11298
11299 static int min() throw()
11300 { return -2147483647 - 1; }
11301 static int max() throw()
11302 { return 2147483647; }
11303
11304 static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
11305 static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
11306 static const bool is_signed = true;
11307 static const bool is_integer = true;
11308 static const bool is_exact = true;
11309 static const int radix = 2;
11310 static int epsilon() throw()
11311 { return 0; }
11312 static int round_error() throw()
11313 { return 0; }
11314
11315 static const int min_exponent = 0;
11316 static const int min_exponent10 = 0;
11317 static const int max_exponent = 0;
11318 static const int max_exponent10 = 0;
11319
11320 static const bool has_infinity = false;
11321 static const bool has_quiet_NaN = false;
11322 static const bool has_signaling_NaN = false;
11323 static const float_denorm_style has_denorm = denorm_absent;
11324 static const bool has_denorm_loss = false;
11325
11326 static int infinity() throw()
11327 { return static_cast<int>(0); }
11328 static int quiet_NaN() throw()
11329 { return static_cast<int>(0); }
11330 static int signaling_NaN() throw()
11331 { return static_cast<int>(0); }
11332 static int denorm_min() throw()
11333 { return static_cast<int>(0); }
11334
11335 static const bool is_iec559 = false;
11336 static const bool is_bounded = true;
11337 static const bool is_modulo = true;
11338
11339 static const bool traps = true;
11340 static const bool tinyness_before = false;
11341 static const float_round_style round_style = round_toward_zero;
11342 };
11343
11344 template<>
11345 struct numeric_limits<unsigned int>
11346 {
11347 static const bool is_specialized = true;
11348
11349 static unsigned int min() throw()
11350 { return 0; }
11351 static unsigned int max() throw()
11352 { return 2147483647 * 2U + 1; }
11353
11354 static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
11355 static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
11356 static const bool is_signed = false;
11357 static const bool is_integer = true;
11358 static const bool is_exact = true;
11359 static const int radix = 2;
11360 static unsigned int epsilon() throw()
11361 { return 0; }
11362 static unsigned int round_error() throw()
11363 { return 0; }
11364
11365 static const int min_exponent = 0;
11366 static const int min_exponent10 = 0;
11367 static const int max_exponent = 0;
11368 static const int max_exponent10 = 0;
11369
11370 static const bool has_infinity = false;
11371 static const bool has_quiet_NaN = false;
11372 static const bool has_signaling_NaN = false;
11373 static const float_denorm_style has_denorm = denorm_absent;
11374 static const bool has_denorm_loss = false;
11375
11376 static unsigned int infinity() throw()
11377 { return static_cast<unsigned int>(0); }
11378 static unsigned int quiet_NaN() throw()
11379 { return static_cast<unsigned int>(0); }
11380 static unsigned int signaling_NaN() throw()
11381 { return static_cast<unsigned int>(0); }
11382 static unsigned int denorm_min() throw()
11383 { return static_cast<unsigned int>(0); }
11384
11385 static const bool is_iec559 = false;
11386 static const bool is_bounded = true;
11387 static const bool is_modulo = true;
11388
11389 static const bool traps = true;
11390 static const bool tinyness_before = false;
11391 static const float_round_style round_style = round_toward_zero;
11392 };
11393
11394 template<>
11395 struct numeric_limits<long>
11396 {
11397 static const bool is_specialized = true;
11398
11399 static long min() throw()
11400 { return -2147483647L - 1; }
11401 static long max() throw()
11402 { return 2147483647L; }
11403
11404 static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
11405 static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
11406 static const bool is_signed = true;
11407 static const bool is_integer = true;
11408 static const bool is_exact = true;
11409 static const int radix = 2;
11410 static long epsilon() throw()
11411 { return 0; }
11412 static long round_error() throw()
11413 { return 0; }
11414
11415 static const int min_exponent = 0;
11416 static const int min_exponent10 = 0;
11417 static const int max_exponent = 0;
11418 static const int max_exponent10 = 0;
11419
11420 static const bool has_infinity = false;
11421 static const bool has_quiet_NaN = false;
11422 static const bool has_signaling_NaN = false;
11423 static const float_denorm_style has_denorm = denorm_absent;
11424 static const bool has_denorm_loss = false;
11425
11426 static long infinity() throw()
11427 { return static_cast<long>(0); }
11428 static long quiet_NaN() throw()
11429 { return static_cast<long>(0); }
11430 static long signaling_NaN() throw()
11431 { return static_cast<long>(0); }
11432 static long denorm_min() throw()
11433 { return static_cast<long>(0); }
11434
11435 static const bool is_iec559 = false;
11436 static const bool is_bounded = true;
11437 static const bool is_modulo = true;
11438
11439 static const bool traps = true;
11440 static const bool tinyness_before = false;
11441 static const float_round_style round_style = round_toward_zero;
11442 };
11443
11444 template<>
11445 struct numeric_limits<unsigned long>
11446 {
11447 static const bool is_specialized = true;
11448
11449 static unsigned long min() throw()
11450 { return 0; }
11451 static unsigned long max() throw()
11452 { return 2147483647L * 2UL + 1; }
11453
11454 static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
11455 static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
11456 static const bool is_signed = false;
11457 static const bool is_integer = true;
11458 static const bool is_exact = true;
11459 static const int radix = 2;
11460 static unsigned long epsilon() throw()
11461 { return 0; }
11462 static unsigned long round_error() throw()
11463 { return 0; }
11464
11465 static const int min_exponent = 0;
11466 static const int min_exponent10 = 0;
11467 static const int max_exponent = 0;
11468 static const int max_exponent10 = 0;
11469
11470 static const bool has_infinity = false;
11471 static const bool has_quiet_NaN = false;
11472 static const bool has_signaling_NaN = false;
11473 static const float_denorm_style has_denorm = denorm_absent;
11474 static const bool has_denorm_loss = false;
11475
11476 static unsigned long infinity() throw()
11477 { return static_cast<unsigned long>(0); }
11478 static unsigned long quiet_NaN() throw()
11479 { return static_cast<unsigned long>(0); }
11480 static unsigned long signaling_NaN() throw()
11481 { return static_cast<unsigned long>(0); }
11482 static unsigned long denorm_min() throw()
11483 { return static_cast<unsigned long>(0); }
11484
11485 static const bool is_iec559 = false;
11486 static const bool is_bounded = true;
11487 static const bool is_modulo = true;
11488
11489 static const bool traps = true;
11490 static const bool tinyness_before = false;
11491 static const float_round_style round_style = round_toward_zero;
11492 };
11493
11494 template<>
11495 struct numeric_limits<long long>
11496 {
11497 static const bool is_specialized = true;
11498
11499 static long long min() throw()
11500 { return -9223372036854775807LL - 1; }
11501 static long long max() throw()
11502 { return 9223372036854775807LL; }
11503
11504 static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
11505 static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
11506 static const bool is_signed = true;
11507 static const bool is_integer = true;
11508 static const bool is_exact = true;
11509 static const int radix = 2;
11510 static long long epsilon() throw()
11511 { return 0; }
11512 static long long round_error() throw()
11513 { return 0; }
11514
11515 static const int min_exponent = 0;
11516 static const int min_exponent10 = 0;
11517 static const int max_exponent = 0;
11518 static const int max_exponent10 = 0;
11519
11520 static const bool has_infinity = false;
11521 static const bool has_quiet_NaN = false;
11522 static const bool has_signaling_NaN = false;
11523 static const float_denorm_style has_denorm = denorm_absent;
11524 static const bool has_denorm_loss = false;
11525
11526 static long long infinity() throw()
11527 { return static_cast<long long>(0); }
11528 static long long quiet_NaN() throw()
11529 { return static_cast<long long>(0); }
11530 static long long signaling_NaN() throw()
11531 { return static_cast<long long>(0); }
11532 static long long denorm_min() throw()
11533 { return static_cast<long long>(0); }
11534
11535 static const bool is_iec559 = false;
11536 static const bool is_bounded = true;
11537 static const bool is_modulo = true;
11538
11539 static const bool traps = true;
11540 static const bool tinyness_before = false;
11541 static const float_round_style round_style = round_toward_zero;
11542 };
11543
11544 template<>
11545 struct numeric_limits<unsigned long long>
11546 {
11547 static const bool is_specialized = true;
11548
11549 static unsigned long long min() throw()
11550 { return 0; }
11551 static unsigned long long max() throw()
11552 { return 9223372036854775807LL * 2ULL + 1; }
11553
11554 static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
11555 static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
11556 static const bool is_signed = false;
11557 static const bool is_integer = true;
11558 static const bool is_exact = true;
11559 static const int radix = 2;
11560 static unsigned long long epsilon() throw()
11561 { return 0; }
11562 static unsigned long long round_error() throw()
11563 { return 0; }
11564
11565 static const int min_exponent = 0;
11566 static const int min_exponent10 = 0;
11567 static const int max_exponent = 0;
11568 static const int max_exponent10 = 0;
11569
11570 static const bool has_infinity = false;
11571 static const bool has_quiet_NaN = false;
11572 static const bool has_signaling_NaN = false;
11573 static const float_denorm_style has_denorm = denorm_absent;
11574 static const bool has_denorm_loss = false;
11575
11576 static unsigned long long infinity() throw()
11577 { return static_cast<unsigned long long>(0); }
11578 static unsigned long long quiet_NaN() throw()
11579 { return static_cast<unsigned long long>(0); }
11580 static unsigned long long signaling_NaN() throw()
11581 { return static_cast<unsigned long long>(0); }
11582 static unsigned long long denorm_min() throw()
11583 { return static_cast<unsigned long long>(0); }
11584
11585 static const bool is_iec559 = false;
11586 static const bool is_bounded = true;
11587 static const bool is_modulo = true;
11588
11589 static const bool traps = true;
11590 static const bool tinyness_before = false;
11591 static const float_round_style round_style = round_toward_zero;
11592 };
11593
11594 template<>
11595 struct numeric_limits<float>
11596 {
11597 static const bool is_specialized = true;
11598
11599 static float min() throw()
11600 { return 1.17549435e-38F; }
11601 static float max() throw()
11602 { return 3.40282347e+38F; }
11603
11604 static const int digits = 24;
11605 static const int digits10 = 6;
11606 static const bool is_signed = true;
11607 static const bool is_integer = false;
11608 static const bool is_exact = false;
11609 static const int radix = 2;
11610 static float epsilon() throw()
11611 { return 1.19209290e-7F; }
11612 static float round_error() throw()
11613 { return 0.5F; }
11614
11615 static const int min_exponent = (-125);
11616 static const int min_exponent10 = (-37);
11617 static const int max_exponent = 128;
11618 static const int max_exponent10 = 38;
11619
11620 static const bool has_infinity = 1;
11621 static const bool has_quiet_NaN = 1;
11622 static const bool has_signaling_NaN = has_quiet_NaN;
11623 static const float_denorm_style has_denorm
11624 = bool(1.40129846e-45F) ? denorm_present : denorm_absent;
11625 static const bool has_denorm_loss = false;
11626
11627 static float infinity() throw()
11628 { return __builtin_huge_valf (); }
11629 static float quiet_NaN() throw()
11630 { return __builtin_nanf (""); }
11631 static float signaling_NaN() throw()
11632 { return __builtin_nansf (""); }
11633 static float denorm_min() throw()
11634 { return 1.40129846e-45F; }
11635
11636 static const bool is_iec559
11637 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11638 static const bool is_bounded = true;
11639 static const bool is_modulo = false;
11640
11641 static const bool traps = false;
11642 static const bool tinyness_before = false;
11643 static const float_round_style round_style = round_to_nearest;
11644 };
11645
11646
11647
11648
11649
11650 template<>
11651 struct numeric_limits<double>
11652 {
11653 static const bool is_specialized = true;
11654
11655 static double min() throw()
11656 { return 2.2250738585072014e-308; }
11657 static double max() throw()
11658 { return 1.7976931348623157e+308; }
11659
11660 static const int digits = 53;
11661 static const int digits10 = 15;
11662 static const bool is_signed = true;
11663 static const bool is_integer = false;
11664 static const bool is_exact = false;
11665 static const int radix = 2;
11666 static double epsilon() throw()
11667 { return 2.2204460492503131e-16; }
11668 static double round_error() throw()
11669 { return 0.5; }
11670
11671 static const int min_exponent = (-1021);
11672 static const int min_exponent10 = (-307);
11673 static const int max_exponent = 1024;
11674 static const int max_exponent10 = 308;
11675
11676 static const bool has_infinity = 1;
11677 static const bool has_quiet_NaN = 1;
11678 static const bool has_signaling_NaN = has_quiet_NaN;
11679 static const float_denorm_style has_denorm
11680 = bool(4.9406564584124654e-324) ? denorm_present : denorm_absent;
11681 static const bool has_denorm_loss = false;
11682
11683 static double infinity() throw()
11684 { return __builtin_huge_val(); }
11685 static double quiet_NaN() throw()
11686 { return __builtin_nan (""); }
11687 static double signaling_NaN() throw()
11688 { return __builtin_nans (""); }
11689 static double denorm_min() throw()
11690 { return 4.9406564584124654e-324; }
11691
11692 static const bool is_iec559
11693 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11694 static const bool is_bounded = true;
11695 static const bool is_modulo = false;
11696
11697 static const bool traps = false;
11698 static const bool tinyness_before = false;
11699 static const float_round_style round_style = round_to_nearest;
11700 };
11701
11702
11703
11704
11705
11706 template<>
11707 struct numeric_limits<long double>
11708 {
11709 static const bool is_specialized = true;
11710
11711 static long double min() throw()
11712 { return 3.36210314311209350626e-4932L; }
11713 static long double max() throw()
11714 { return 1.18973149535723176502e+4932L; }
11715
11716 static const int digits = 64;
11717 static const int digits10 = 18;
11718 static const bool is_signed = true;
11719 static const bool is_integer = false;
11720 static const bool is_exact = false;
11721 static const int radix = 2;
11722 static long double epsilon() throw()
11723 { return 1.08420217248550443401e-19L; }
11724 static long double round_error() throw()
11725 { return 0.5L; }
11726
11727 static const int min_exponent = (-16381);
11728 static const int min_exponent10 = (-4931);
11729 static const int max_exponent = 16384;
11730 static const int max_exponent10 = 4932;
11731
11732 static const bool has_infinity = 1;
11733 static const bool has_quiet_NaN = 1;
11734 static const bool has_signaling_NaN = has_quiet_NaN;
11735 static const float_denorm_style has_denorm
11736 = bool(3.64519953188247460253e-4951L) ? denorm_present : denorm_absent;
11737 static const bool has_denorm_loss
11738 = false;
11739
11740 static long double infinity() throw()
11741 { return __builtin_huge_vall (); }
11742 static long double quiet_NaN() throw()
11743 { return __builtin_nanl (""); }
11744 static long double signaling_NaN() throw()
11745 { return __builtin_nansl (""); }
11746 static long double denorm_min() throw()
11747 { return 3.64519953188247460253e-4951L; }
11748
11749 static const bool is_iec559
11750 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11751 static const bool is_bounded = true;
11752 static const bool is_modulo = false;
11753
11754 static const bool traps = false;
11755 static const bool tinyness_before = false;
11756 static const float_round_style round_style = round_to_nearest;
11757 };
11758
11759
11760
11761
11762
11763 }
11764 # 62 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 2 3
11765
11766 namespace std
11767 {
11768 # 73 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11769 template<typename _Tp>
11770 pair<_Tp*, ptrdiff_t>
11771 __get_temporary_buffer(ptrdiff_t __len, _Tp*)
11772 {
11773 const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
11774 if (__len > __max)
11775 __len = __max;
11776
11777 while (__len > 0)
11778 {
11779 _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
11780 nothrow));
11781 if (__tmp != 0)
11782 return pair<_Tp*, ptrdiff_t>(__tmp, __len);
11783 __len /= 2;
11784 }
11785 return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
11786 }
11787 # 109 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11788 template<typename _Tp>
11789 inline pair<_Tp*, ptrdiff_t>
11790 get_temporary_buffer(ptrdiff_t __len)
11791 { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
11792 # 121 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11793 template<typename _Tp>
11794 void
11795 return_temporary_buffer(_Tp* __p)
11796 { ::operator delete(__p, nothrow); }
11797 # 133 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11798 template<typename _Tp1>
11799 struct auto_ptr_ref
11800 {
11801 _Tp1* _M_ptr;
11802
11803 explicit
11804 auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
11805 };
11806 # 174 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11807 template<typename _Tp>
11808 class auto_ptr
11809 {
11810 private:
11811 _Tp* _M_ptr;
11812
11813 public:
11814
11815 typedef _Tp element_type;
11816
11817
11818
11819
11820
11821
11822
11823 explicit
11824 auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
11825 # 200 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11826 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
11827 # 212 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11828 template<typename _Tp1>
11829 auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
11830 # 223 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11831 auto_ptr&
11832 operator=(auto_ptr& __a) throw()
11833 {
11834 reset(__a.release());
11835 return *this;
11836 }
11837 # 240 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11838 template<typename _Tp1>
11839 auto_ptr&
11840 operator=(auto_ptr<_Tp1>& __a) throw()
11841 {
11842 reset(__a.release());
11843 return *this;
11844 }
11845 # 260 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11846 ~auto_ptr() { delete _M_ptr; }
11847 # 270 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11848 element_type&
11849 operator*() const throw()
11850 {
11851 ;
11852 return *_M_ptr;
11853 }
11854
11855
11856
11857
11858
11859
11860
11861 element_type*
11862 operator->() const throw()
11863 {
11864 ;
11865 return _M_ptr;
11866 }
11867 # 300 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11868 element_type*
11869 get() const throw() { return _M_ptr; }
11870 # 314 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11871 element_type*
11872 release() throw()
11873 {
11874 element_type* __tmp = _M_ptr;
11875 _M_ptr = 0;
11876 return __tmp;
11877 }
11878 # 329 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11879 void
11880 reset(element_type* __p = 0) throw()
11881 {
11882 if (__p != _M_ptr)
11883 {
11884 delete _M_ptr;
11885 _M_ptr = __p;
11886 }
11887 }
11888 # 350 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory" 3
11889 auto_ptr(auto_ptr_ref<element_type> __ref) throw()
11890 : _M_ptr(__ref._M_ptr) { }
11891
11892 auto_ptr&
11893 operator=(auto_ptr_ref<element_type> __ref) throw()
11894 {
11895 if (__ref._M_ptr != this->get())
11896 {
11897 delete _M_ptr;
11898 _M_ptr = __ref._M_ptr;
11899 }
11900 return *this;
11901 }
11902
11903 template<typename _Tp1>
11904 operator auto_ptr_ref<_Tp1>() throw()
11905 { return auto_ptr_ref<_Tp1>(this->release()); }
11906
11907 template<typename _Tp1>
11908 operator auto_ptr<_Tp1>() throw()
11909 { return auto_ptr<_Tp1>(this->release()); }
11910
11911 };
11912 }
11913 # 49 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
11914
11915
11916
11917 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 1 3
11918 # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11919 namespace std
11920 {
11921 # 101 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11922 template <class _Arg, class _Result>
11923 struct unary_function
11924 {
11925 typedef _Arg argument_type;
11926
11927
11928 typedef _Result result_type;
11929 };
11930
11931
11932
11933
11934 template <class _Arg1, class _Arg2, class _Result>
11935 struct binary_function
11936 {
11937 typedef _Arg1 first_argument_type;
11938
11939
11940 typedef _Arg2 second_argument_type;
11941 typedef _Result result_type;
11942 };
11943 # 133 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11944 template <class _Tp>
11945 struct plus : public binary_function<_Tp, _Tp, _Tp>
11946 {
11947 _Tp
11948 operator()(const _Tp& __x, const _Tp& __y) const
11949 { return __x + __y; }
11950 };
11951
11952
11953 template <class _Tp>
11954 struct minus : public binary_function<_Tp, _Tp, _Tp>
11955 {
11956 _Tp
11957 operator()(const _Tp& __x, const _Tp& __y) const
11958 { return __x - __y; }
11959 };
11960
11961
11962 template <class _Tp>
11963 struct multiplies : public binary_function<_Tp, _Tp, _Tp>
11964 {
11965 _Tp
11966 operator()(const _Tp& __x, const _Tp& __y) const
11967 { return __x * __y; }
11968 };
11969
11970
11971 template <class _Tp>
11972 struct divides : public binary_function<_Tp, _Tp, _Tp>
11973 {
11974 _Tp
11975 operator()(const _Tp& __x, const _Tp& __y) const
11976 { return __x / __y; }
11977 };
11978
11979
11980 template <class _Tp>
11981 struct modulus : public binary_function<_Tp, _Tp, _Tp>
11982 {
11983 _Tp
11984 operator()(const _Tp& __x, const _Tp& __y) const
11985 { return __x % __y; }
11986 };
11987
11988
11989 template <class _Tp>
11990 struct negate : public unary_function<_Tp, _Tp>
11991 {
11992 _Tp
11993 operator()(const _Tp& __x) const
11994 { return -__x; }
11995 };
11996 # 195 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
11997 template <class _Tp>
11998 struct equal_to : public binary_function<_Tp, _Tp, bool>
11999 {
12000 bool
12001 operator()(const _Tp& __x, const _Tp& __y) const
12002 { return __x == __y; }
12003 };
12004
12005
12006 template <class _Tp>
12007 struct not_equal_to : public binary_function<_Tp, _Tp, bool>
12008 {
12009 bool
12010 operator()(const _Tp& __x, const _Tp& __y) const
12011 { return __x != __y; }
12012 };
12013
12014
12015 template <class _Tp>
12016 struct greater : public binary_function<_Tp, _Tp, bool>
12017 {
12018 bool
12019 operator()(const _Tp& __x, const _Tp& __y) const
12020 { return __x > __y; }
12021 };
12022
12023
12024 template <class _Tp>
12025 struct less : public binary_function<_Tp, _Tp, bool>
12026 {
12027 bool
12028 operator()(const _Tp& __x, const _Tp& __y) const
12029 { return __x < __y; }
12030 };
12031
12032
12033 template <class _Tp>
12034 struct greater_equal : public binary_function<_Tp, _Tp, bool>
12035 {
12036 bool
12037 operator()(const _Tp& __x, const _Tp& __y) const
12038 { return __x >= __y; }
12039 };
12040
12041
12042 template <class _Tp>
12043 struct less_equal : public binary_function<_Tp, _Tp, bool>
12044 {
12045 bool
12046 operator()(const _Tp& __x, const _Tp& __y) const
12047 { return __x <= __y; }
12048 };
12049 # 256 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12050 template <class _Tp>
12051 struct logical_and : public binary_function<_Tp, _Tp, bool>
12052 {
12053 bool
12054 operator()(const _Tp& __x, const _Tp& __y) const
12055 { return __x && __y; }
12056 };
12057
12058
12059 template <class _Tp>
12060 struct logical_or : public binary_function<_Tp, _Tp, bool>
12061 {
12062 bool
12063 operator()(const _Tp& __x, const _Tp& __y) const
12064 { return __x || __y; }
12065 };
12066
12067
12068 template <class _Tp>
12069 struct logical_not : public unary_function<_Tp, bool>
12070 {
12071 bool
12072 operator()(const _Tp& __x) const
12073 { return !__x; }
12074 };
12075 # 311 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12076 template <class _Predicate>
12077 class unary_negate
12078 : public unary_function<typename _Predicate::argument_type, bool>
12079 {
12080 protected:
12081 _Predicate _M_pred;
12082 public:
12083 explicit
12084 unary_negate(const _Predicate& __x) : _M_pred(__x) {}
12085
12086 bool
12087 operator()(const typename _Predicate::argument_type& __x) const
12088 { return !_M_pred(__x); }
12089 };
12090
12091
12092 template <class _Predicate>
12093 inline unary_negate<_Predicate>
12094 not1(const _Predicate& __pred)
12095 { return unary_negate<_Predicate>(__pred); }
12096
12097
12098 template <class _Predicate>
12099 class binary_negate
12100 : public binary_function<typename _Predicate::first_argument_type,
12101 typename _Predicate::second_argument_type,
12102 bool>
12103 {
12104 protected:
12105 _Predicate _M_pred;
12106 public:
12107 explicit
12108 binary_negate(const _Predicate& __x)
12109 : _M_pred(__x) { }
12110
12111 bool
12112 operator()(const typename _Predicate::first_argument_type& __x,
12113 const typename _Predicate::second_argument_type& __y) const
12114 { return !_M_pred(__x, __y); }
12115 };
12116
12117
12118 template <class _Predicate>
12119 inline binary_negate<_Predicate>
12120 not2(const _Predicate& __pred)
12121 { return binary_negate<_Predicate>(__pred); }
12122 # 391 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12123 template <class _Operation>
12124 class binder1st
12125 : public unary_function<typename _Operation::second_argument_type,
12126 typename _Operation::result_type>
12127 {
12128 protected:
12129 _Operation op;
12130 typename _Operation::first_argument_type value;
12131 public:
12132 binder1st(const _Operation& __x,
12133 const typename _Operation::first_argument_type& __y)
12134 : op(__x), value(__y) {}
12135
12136 typename _Operation::result_type
12137 operator()(const typename _Operation::second_argument_type& __x) const
12138 { return op(value, __x); }
12139
12140
12141
12142 typename _Operation::result_type
12143 operator()(typename _Operation::second_argument_type& __x) const
12144 { return op(value, __x); }
12145 };
12146
12147
12148 template <class _Operation, class _Tp>
12149 inline binder1st<_Operation>
12150 bind1st(const _Operation& __fn, const _Tp& __x)
12151 {
12152 typedef typename _Operation::first_argument_type _Arg1_type;
12153 return binder1st<_Operation>(__fn, _Arg1_type(__x));
12154 }
12155
12156
12157 template <class _Operation>
12158 class binder2nd
12159 : public unary_function<typename _Operation::first_argument_type,
12160 typename _Operation::result_type>
12161 {
12162 protected:
12163 _Operation op;
12164 typename _Operation::second_argument_type value;
12165 public:
12166 binder2nd(const _Operation& __x,
12167 const typename _Operation::second_argument_type& __y)
12168 : op(__x), value(__y) {}
12169
12170 typename _Operation::result_type
12171 operator()(const typename _Operation::first_argument_type& __x) const
12172 { return op(__x, value); }
12173
12174
12175
12176 typename _Operation::result_type
12177 operator()(typename _Operation::first_argument_type& __x) const
12178 { return op(__x, value); }
12179 };
12180
12181
12182 template <class _Operation, class _Tp>
12183 inline binder2nd<_Operation>
12184 bind2nd(const _Operation& __fn, const _Tp& __x)
12185 {
12186 typedef typename _Operation::second_argument_type _Arg2_type;
12187 return binder2nd<_Operation>(__fn, _Arg2_type(__x));
12188 }
12189 # 480 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12190 template <class _Arg, class _Result>
12191 class pointer_to_unary_function : public unary_function<_Arg, _Result>
12192 {
12193 protected:
12194 _Result (*_M_ptr)(_Arg);
12195 public:
12196 pointer_to_unary_function() {}
12197
12198 explicit
12199 pointer_to_unary_function(_Result (*__x)(_Arg))
12200 : _M_ptr(__x) {}
12201
12202 _Result
12203 operator()(_Arg __x) const
12204 { return _M_ptr(__x); }
12205 };
12206
12207
12208 template <class _Arg, class _Result>
12209 inline pointer_to_unary_function<_Arg, _Result>
12210 ptr_fun(_Result (*__x)(_Arg))
12211 { return pointer_to_unary_function<_Arg, _Result>(__x); }
12212
12213
12214 template <class _Arg1, class _Arg2, class _Result>
12215 class pointer_to_binary_function
12216 : public binary_function<_Arg1, _Arg2, _Result>
12217 {
12218 protected:
12219 _Result (*_M_ptr)(_Arg1, _Arg2);
12220 public:
12221 pointer_to_binary_function() {}
12222
12223 explicit
12224 pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
12225 : _M_ptr(__x) {}
12226
12227 _Result
12228 operator()(_Arg1 __x, _Arg2 __y) const
12229 { return _M_ptr(__x, __y); }
12230 };
12231
12232
12233 template <class _Arg1, class _Arg2, class _Result>
12234 inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
12235 ptr_fun(_Result (*__x)(_Arg1, _Arg2))
12236 { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
12237
12238
12239 template <class _Tp>
12240 struct _Identity : public unary_function<_Tp,_Tp>
12241 {
12242 _Tp&
12243 operator()(_Tp& __x) const
12244 { return __x; }
12245
12246 const _Tp&
12247 operator()(const _Tp& __x) const
12248 { return __x; }
12249 };
12250
12251 template <class _Pair>
12252 struct _Select1st : public unary_function<_Pair,
12253 typename _Pair::first_type>
12254 {
12255 typename _Pair::first_type&
12256 operator()(_Pair& __x) const
12257 { return __x.first; }
12258
12259 const typename _Pair::first_type&
12260 operator()(const _Pair& __x) const
12261 { return __x.first; }
12262 };
12263
12264 template <class _Pair>
12265 struct _Select2nd : public unary_function<_Pair,
12266 typename _Pair::second_type>
12267 {
12268 typename _Pair::second_type&
12269 operator()(_Pair& __x) const
12270 { return __x.second; }
12271
12272 const typename _Pair::second_type&
12273 operator()(const _Pair& __x) const
12274 { return __x.second; }
12275 };
12276 # 590 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h" 3
12277 template <class _Ret, class _Tp>
12278 class mem_fun_t : public unary_function<_Tp*, _Ret>
12279 {
12280 public:
12281 explicit
12282 mem_fun_t(_Ret (_Tp::*__pf)())
12283 : _M_f(__pf) {}
12284
12285 _Ret
12286 operator()(_Tp* __p) const
12287 { return (__p->*_M_f)(); }
12288 private:
12289 _Ret (_Tp::*_M_f)();
12290 };
12291
12292
12293 template <class _Ret, class _Tp>
12294 class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
12295 {
12296 public:
12297 explicit
12298 const_mem_fun_t(_Ret (_Tp::*__pf)() const)
12299 : _M_f(__pf) {}
12300
12301 _Ret
12302 operator()(const _Tp* __p) const
12303 { return (__p->*_M_f)(); }
12304 private:
12305 _Ret (_Tp::*_M_f)() const;
12306 };
12307
12308
12309 template <class _Ret, class _Tp>
12310 class mem_fun_ref_t : public unary_function<_Tp, _Ret>
12311 {
12312 public:
12313 explicit
12314 mem_fun_ref_t(_Ret (_Tp::*__pf)())
12315 : _M_f(__pf) {}
12316
12317 _Ret
12318 operator()(_Tp& __r) const
12319 { return (__r.*_M_f)(); }
12320 private:
12321 _Ret (_Tp::*_M_f)();
12322 };
12323
12324
12325 template <class _Ret, class _Tp>
12326 class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
12327 {
12328 public:
12329 explicit
12330 const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
12331 : _M_f(__pf) {}
12332
12333 _Ret
12334 operator()(const _Tp& __r) const
12335 { return (__r.*_M_f)(); }
12336 private:
12337 _Ret (_Tp::*_M_f)() const;
12338 };
12339
12340
12341 template <class _Ret, class _Tp, class _Arg>
12342 class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
12343 {
12344 public:
12345 explicit
12346 mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
12347 : _M_f(__pf) {}
12348
12349 _Ret
12350 operator()(_Tp* __p, _Arg __x) const
12351 { return (__p->*_M_f)(__x); }
12352 private:
12353 _Ret (_Tp::*_M_f)(_Arg);
12354 };
12355
12356
12357 template <class _Ret, class _Tp, class _Arg>
12358 class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
12359 {
12360 public:
12361 explicit
12362 const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
12363 : _M_f(__pf) {}
12364
12365 _Ret
12366 operator()(const _Tp* __p, _Arg __x) const
12367 { return (__p->*_M_f)(__x); }
12368 private:
12369 _Ret (_Tp::*_M_f)(_Arg) const;
12370 };
12371
12372
12373 template <class _Ret, class _Tp, class _Arg>
12374 class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
12375 {
12376 public:
12377 explicit
12378 mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
12379 : _M_f(__pf) {}
12380
12381 _Ret
12382 operator()(_Tp& __r, _Arg __x) const
12383 { return (__r.*_M_f)(__x); }
12384 private:
12385 _Ret (_Tp::*_M_f)(_Arg);
12386 };
12387
12388
12389 template <class _Ret, class _Tp, class _Arg>
12390 class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
12391 {
12392 public:
12393 explicit
12394 const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
12395 : _M_f(__pf) {}
12396
12397 _Ret
12398 operator()(const _Tp& __r, _Arg __x) const
12399 { return (__r.*_M_f)(__x); }
12400 private:
12401 _Ret (_Tp::*_M_f)(_Arg) const;
12402 };
12403
12404
12405 template <class _Tp>
12406 class mem_fun_t<void, _Tp> : public unary_function<_Tp*, void>
12407 {
12408 public:
12409 explicit
12410 mem_fun_t(void (_Tp::*__pf)())
12411 : _M_f(__pf) {}
12412
12413 void
12414 operator()(_Tp* __p) const
12415 { (__p->*_M_f)(); }
12416 private:
12417 void (_Tp::*_M_f)();
12418 };
12419
12420
12421 template <class _Tp>
12422 class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*, void>
12423 {
12424 public:
12425 explicit
12426 const_mem_fun_t(void (_Tp::*__pf)() const)
12427 : _M_f(__pf) {}
12428
12429 void
12430 operator()(const _Tp* __p) const
12431 { (__p->*_M_f)(); }
12432 private:
12433 void (_Tp::*_M_f)() const;
12434 };
12435
12436
12437 template <class _Tp>
12438 class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>
12439 {
12440 public:
12441 explicit
12442 mem_fun_ref_t(void (_Tp::*__pf)())
12443 : _M_f(__pf) {}
12444
12445 void
12446 operator()(_Tp& __r) const
12447 { (__r.*_M_f)(); }
12448 private:
12449 void (_Tp::*_M_f)();
12450 };
12451
12452
12453 template <class _Tp>
12454 class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>
12455 {
12456 public:
12457 explicit
12458 const_mem_fun_ref_t(void (_Tp::*__pf)() const)
12459 : _M_f(__pf) {}
12460
12461 void
12462 operator()(const _Tp& __r) const
12463 { (__r.*_M_f)(); }
12464 private:
12465 void (_Tp::*_M_f)() const;
12466 };
12467
12468
12469 template <class _Tp, class _Arg>
12470 class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*, _Arg, void>
12471 {
12472 public:
12473 explicit
12474 mem_fun1_t(void (_Tp::*__pf)(_Arg))
12475 : _M_f(__pf) {}
12476
12477 void
12478 operator()(_Tp* __p, _Arg __x) const
12479 { (__p->*_M_f)(__x); }
12480 private:
12481 void (_Tp::*_M_f)(_Arg);
12482 };
12483
12484
12485 template <class _Tp, class _Arg>
12486 class const_mem_fun1_t<void, _Tp, _Arg>
12487 : public binary_function<const _Tp*, _Arg, void>
12488 {
12489 public:
12490 explicit
12491 const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const)
12492 : _M_f(__pf) {}
12493
12494 void
12495 operator()(const _Tp* __p, _Arg __x) const
12496 { (__p->*_M_f)(__x); }
12497 private:
12498 void (_Tp::*_M_f)(_Arg) const;
12499 };
12500
12501
12502 template <class _Tp, class _Arg>
12503 class mem_fun1_ref_t<void, _Tp, _Arg>
12504 : public binary_function<_Tp, _Arg, void>
12505 {
12506 public:
12507 explicit
12508 mem_fun1_ref_t(void (_Tp::*__pf)(_Arg))
12509 : _M_f(__pf) {}
12510
12511 void
12512 operator()(_Tp& __r, _Arg __x) const
12513 { (__r.*_M_f)(__x); }
12514 private:
12515 void (_Tp::*_M_f)(_Arg);
12516 };
12517
12518
12519 template <class _Tp, class _Arg>
12520 class const_mem_fun1_ref_t<void, _Tp, _Arg>
12521 : public binary_function<_Tp, _Arg, void>
12522 {
12523 public:
12524 explicit
12525 const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const)
12526 : _M_f(__pf) {}
12527
12528 void
12529 operator()(const _Tp& __r, _Arg __x) const
12530 { (__r.*_M_f)(__x); }
12531 private:
12532 void (_Tp::*_M_f)(_Arg) const;
12533 };
12534
12535
12536
12537 template <class _Ret, class _Tp>
12538 inline mem_fun_t<_Ret, _Tp>
12539 mem_fun(_Ret (_Tp::*__f)())
12540 { return mem_fun_t<_Ret, _Tp>(__f); }
12541
12542 template <class _Ret, class _Tp>
12543 inline const_mem_fun_t<_Ret, _Tp>
12544 mem_fun(_Ret (_Tp::*__f)() const)
12545 { return const_mem_fun_t<_Ret, _Tp>(__f); }
12546
12547 template <class _Ret, class _Tp>
12548 inline mem_fun_ref_t<_Ret, _Tp>
12549 mem_fun_ref(_Ret (_Tp::*__f)())
12550 { return mem_fun_ref_t<_Ret, _Tp>(__f); }
12551
12552 template <class _Ret, class _Tp>
12553 inline const_mem_fun_ref_t<_Ret, _Tp>
12554 mem_fun_ref(_Ret (_Tp::*__f)() const)
12555 { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
12556
12557 template <class _Ret, class _Tp, class _Arg>
12558 inline mem_fun1_t<_Ret, _Tp, _Arg>
12559 mem_fun(_Ret (_Tp::*__f)(_Arg))
12560 { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
12561
12562 template <class _Ret, class _Tp, class _Arg>
12563 inline const_mem_fun1_t<_Ret, _Tp, _Arg>
12564 mem_fun(_Ret (_Tp::*__f)(_Arg) const)
12565 { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
12566
12567 template <class _Ret, class _Tp, class _Arg>
12568 inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
12569 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
12570 { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
12571
12572 template <class _Ret, class _Tp, class _Arg>
12573 inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
12574 mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
12575 { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
12576
12577
12578
12579 }
12580 # 53 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
12581 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 1 3
12582 # 43 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12583
12584 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12585
12586 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h" 1 3
12587 # 33 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h" 3
12588 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h" 1 3
12589 # 33 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h" 3
12590 typedef int _Atomic_word;
12591 # 34 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h" 2 3
12592
12593 namespace __gnu_cxx
12594 {
12595 _Atomic_word
12596 __attribute__ ((__unused__))
12597 __exchange_and_add(volatile _Atomic_word* __mem, int __val);
12598
12599 void
12600 __attribute__ ((__unused__))
12601 __atomic_add(volatile _Atomic_word* __mem, int __val);
12602 }
12603 # 46 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 2 3
12604
12605
12606 namespace std
12607 {
12608 # 109 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12609 template<typename _CharT, typename _Traits, typename _Alloc>
12610 class basic_string
12611 {
12612
12613 public:
12614 typedef _Traits traits_type;
12615 typedef typename _Traits::char_type value_type;
12616 typedef _Alloc allocator_type;
12617 typedef typename _Alloc::size_type size_type;
12618 typedef typename _Alloc::difference_type difference_type;
12619 typedef typename _Alloc::reference reference;
12620 typedef typename _Alloc::const_reference const_reference;
12621 typedef typename _Alloc::pointer pointer;
12622 typedef typename _Alloc::const_pointer const_pointer;
12623 typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
12624 typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
12625 const_iterator;
12626 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
12627 typedef std::reverse_iterator<iterator> reverse_iterator;
12628
12629 private:
12630 # 144 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12631 struct _Rep_base
12632 {
12633 size_type _M_length;
12634 size_type _M_capacity;
12635 _Atomic_word _M_refcount;
12636 };
12637
12638 struct _Rep : _Rep_base
12639 {
12640
12641 typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
12642 # 169 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12643 static const size_type _S_max_size;
12644 static const _CharT _S_terminal;
12645
12646
12647
12648 static size_type _S_empty_rep_storage[];
12649
12650 static _Rep&
12651 _S_empty_rep()
12652 { return *reinterpret_cast<_Rep*>(&_S_empty_rep_storage); }
12653
12654 bool
12655 _M_is_leaked() const
12656 { return this->_M_refcount < 0; }
12657
12658 bool
12659 _M_is_shared() const
12660 { return this->_M_refcount > 0; }
12661
12662 void
12663 _M_set_leaked()
12664 { this->_M_refcount = -1; }
12665
12666 void
12667 _M_set_sharable()
12668 { this->_M_refcount = 0; }
12669
12670 _CharT*
12671 _M_refdata() throw()
12672 { return reinterpret_cast<_CharT*>(this + 1); }
12673
12674 _CharT*
12675 _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
12676 {
12677 return (!_M_is_leaked() && __alloc1 == __alloc2)
12678 ? _M_refcopy() : _M_clone(__alloc1);
12679 }
12680
12681
12682 static _Rep*
12683 _S_create(size_type, size_type, const _Alloc&);
12684
12685 void
12686 _M_dispose(const _Alloc& __a)
12687 {
12688
12689 if (__builtin_expect(this != &_S_empty_rep(), false))
12690
12691 if (__gnu_cxx::__exchange_and_add(&this->_M_refcount, -1) <= 0)
12692 _M_destroy(__a);
12693 }
12694
12695 void
12696 _M_destroy(const _Alloc&) throw();
12697
12698 _CharT*
12699 _M_refcopy() throw()
12700 {
12701
12702 if (__builtin_expect(this != &_S_empty_rep(), false))
12703
12704 __gnu_cxx::__atomic_add(&this->_M_refcount, 1);
12705 return _M_refdata();
12706 }
12707
12708 _CharT*
12709 _M_clone(const _Alloc&, size_type __res = 0);
12710 };
12711
12712
12713 struct _Alloc_hider : _Alloc
12714 {
12715 _Alloc_hider(_CharT* __dat, const _Alloc& __a)
12716 : _Alloc(__a), _M_p(__dat) { }
12717
12718 _CharT* _M_p;
12719 };
12720
12721 public:
12722
12723
12724
12725
12726
12727 static const size_type npos = static_cast<size_type>(-1);
12728
12729 private:
12730
12731 mutable _Alloc_hider _M_dataplus;
12732
12733 _CharT*
12734 _M_data() const
12735 { return _M_dataplus._M_p; }
12736
12737 _CharT*
12738 _M_data(_CharT* __p)
12739 { return (_M_dataplus._M_p = __p); }
12740
12741 _Rep*
12742 _M_rep() const
12743 { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
12744
12745
12746
12747 iterator
12748 _M_ibegin() const { return iterator(_M_data()); }
12749
12750 iterator
12751 _M_iend() const { return iterator(_M_data() + this->size()); }
12752
12753 void
12754 _M_leak()
12755 {
12756 if (!_M_rep()->_M_is_leaked())
12757 _M_leak_hard();
12758 }
12759
12760 size_type
12761 _M_check(size_type __pos, const char* __s) const
12762 {
12763 if (__pos > this->size())
12764 __throw_out_of_range((__s));
12765 return __pos;
12766 }
12767
12768
12769 size_type
12770 _M_limit(size_type __pos, size_type __off) const
12771 {
12772 const bool __testoff = __off < this->size() - __pos;
12773 return __testoff ? __off : this->size() - __pos;
12774 }
12775
12776
12777
12778 template<class _Iterator>
12779 static void
12780 _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
12781 {
12782 for (; __k1 != __k2; ++__k1, ++__p)
12783 traits_type::assign(*__p, *__k1);
12784 }
12785
12786 static void
12787 _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
12788 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
12789
12790 static void
12791 _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
12792 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
12793
12794 static void
12795 _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
12796 { traits_type::copy(__p, __k1, __k2 - __k1); }
12797
12798 static void
12799 _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
12800 { traits_type::copy(__p, __k1, __k2 - __k1); }
12801
12802 void
12803 _M_mutate(size_type __pos, size_type __len1, size_type __len2);
12804
12805 void
12806 _M_leak_hard();
12807
12808 static _Rep&
12809 _S_empty_rep()
12810 { return _Rep::_S_empty_rep(); }
12811
12812 public:
12813
12814
12815
12816
12817
12818
12819
12820 inline
12821 basic_string();
12822
12823
12824
12825
12826 explicit
12827 basic_string(const _Alloc& __a);
12828
12829
12830
12831
12832
12833
12834 basic_string(const basic_string& __str);
12835
12836
12837
12838
12839
12840
12841 basic_string(const basic_string& __str, size_type __pos,
12842 size_type __n = npos);
12843
12844
12845
12846
12847
12848
12849
12850 basic_string(const basic_string& __str, size_type __pos,
12851 size_type __n, const _Alloc& __a);
12852 # 388 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12853 basic_string(const _CharT* __s, size_type __n,
12854 const _Alloc& __a = _Alloc());
12855
12856
12857
12858
12859
12860 basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
12861
12862
12863
12864
12865
12866
12867 basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
12868
12869
12870
12871
12872
12873
12874
12875 template<class _InputIterator>
12876 basic_string(_InputIterator __beg, _InputIterator __end,
12877 const _Alloc& __a = _Alloc());
12878
12879
12880
12881
12882 ~basic_string()
12883 { _M_rep()->_M_dispose(this->get_allocator()); }
12884
12885
12886
12887
12888
12889 basic_string&
12890 operator=(const basic_string& __str)
12891 {
12892 this->assign(__str);
12893 return *this;
12894 }
12895
12896
12897
12898
12899
12900 basic_string&
12901 operator=(const _CharT* __s)
12902 {
12903 this->assign(__s);
12904 return *this;
12905 }
12906 # 449 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
12907 basic_string&
12908 operator=(_CharT __c)
12909 {
12910 this->assign(1, __c);
12911 return *this;
12912 }
12913
12914
12915
12916
12917
12918
12919 iterator
12920 begin()
12921 {
12922 _M_leak();
12923 return iterator(_M_data());
12924 }
12925
12926
12927
12928
12929
12930 const_iterator
12931 begin() const
12932 { return const_iterator(_M_data()); }
12933
12934
12935
12936
12937
12938 iterator
12939 end()
12940 {
12941 _M_leak();
12942 return iterator(_M_data() + this->size());
12943 }
12944
12945
12946
12947
12948
12949 const_iterator
12950 end() const
12951 { return const_iterator(_M_data() + this->size()); }
12952
12953
12954
12955
12956
12957
12958 reverse_iterator
12959 rbegin()
12960 { return reverse_iterator(this->end()); }
12961
12962
12963
12964
12965
12966
12967 const_reverse_iterator
12968 rbegin() const
12969 { return const_reverse_iterator(this->end()); }
12970
12971
12972
12973
12974
12975
12976 reverse_iterator
12977 rend()
12978 { return reverse_iterator(this->begin()); }
12979
12980
12981
12982
12983
12984
12985 const_reverse_iterator
12986 rend() const
12987 { return const_reverse_iterator(this->begin()); }
12988
12989 public:
12990
12991
12992
12993 size_type
12994 size() const { return _M_rep()->_M_length; }
12995
12996
12997
12998 size_type
12999 length() const { return _M_rep()->_M_length; }
13000
13001
13002 size_type
13003 max_size() const { return _Rep::_S_max_size; }
13004 # 557 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13005 void
13006 resize(size_type __n, _CharT __c);
13007 # 570 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13008 void
13009 resize(size_type __n) { this->resize(__n, _CharT()); }
13010
13011
13012
13013
13014
13015 size_type
13016 capacity() const { return _M_rep()->_M_capacity; }
13017 # 597 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13018 void
13019 reserve(size_type __res_arg = 0);
13020
13021
13022
13023
13024 void
13025 clear() { _M_mutate(0, this->size(), 0); }
13026
13027
13028
13029
13030 bool
13031 empty() const { return this->size() == 0; }
13032 # 623 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13033 const_reference
13034 operator[] (size_type __pos) const
13035 {
13036 ;
13037 return _M_data()[__pos];
13038 }
13039 # 640 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13040 reference
13041 operator[](size_type __pos)
13042 {
13043 ;
13044 _M_leak();
13045 return _M_data()[__pos];
13046 }
13047 # 658 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13048 const_reference
13049 at(size_type __n) const
13050 {
13051 if (__n >= this->size())
13052 __throw_out_of_range(("basic_string::at"));
13053 return _M_data()[__n];
13054 }
13055 # 677 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13056 reference
13057 at(size_type __n)
13058 {
13059 if (__n >= size())
13060 __throw_out_of_range(("basic_string::at"));
13061 _M_leak();
13062 return _M_data()[__n];
13063 }
13064
13065
13066
13067
13068
13069
13070
13071 basic_string&
13072 operator+=(const basic_string& __str) { return this->append(__str); }
13073
13074
13075
13076
13077
13078
13079 basic_string&
13080 operator+=(const _CharT* __s) { return this->append(__s); }
13081
13082
13083
13084
13085
13086
13087 basic_string&
13088 operator+=(_CharT __c) { return this->append(size_type(1), __c); }
13089
13090
13091
13092
13093
13094
13095 basic_string&
13096 append(const basic_string& __str);
13097 # 731 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13098 basic_string&
13099 append(const basic_string& __str, size_type __pos, size_type __n);
13100
13101
13102
13103
13104
13105
13106
13107 basic_string&
13108 append(const _CharT* __s, size_type __n);
13109
13110
13111
13112
13113
13114
13115 basic_string&
13116 append(const _CharT* __s)
13117 {
13118 ;
13119 return this->append(__s, traits_type::length(__s));
13120 }
13121 # 763 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13122 basic_string&
13123 append(size_type __n, _CharT __c)
13124 { return _M_replace_aux(this->size(), size_type(0), __n, __c); }
13125 # 775 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13126 template<class _InputIterator>
13127 basic_string&
13128 append(_InputIterator __first, _InputIterator __last)
13129 { return this->replace(_M_iend(), _M_iend(), __first, __last); }
13130
13131
13132
13133
13134
13135 void
13136 push_back(_CharT __c)
13137 { _M_replace_aux(this->size(), size_type(0), size_type(1), __c); }
13138
13139
13140
13141
13142
13143
13144 basic_string&
13145 assign(const basic_string& __str);
13146 # 808 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13147 basic_string&
13148 assign(const basic_string& __str, size_type __pos, size_type __n)
13149 { return this->assign(__str._M_data()
13150 + __str._M_check(__pos, "basic_string::assign"),
13151 __str._M_limit(__pos, __n)); }
13152 # 824 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13153 basic_string&
13154 assign(const _CharT* __s, size_type __n);
13155 # 836 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13156 basic_string&
13157 assign(const _CharT* __s)
13158 {
13159 ;
13160 return this->assign(__s, traits_type::length(__s));
13161 }
13162 # 852 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13163 basic_string&
13164 assign(size_type __n, _CharT __c)
13165 { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
13166 # 864 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13167 template<class _InputIterator>
13168 basic_string&
13169 assign(_InputIterator __first, _InputIterator __last)
13170 { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
13171 # 881 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13172 void
13173 insert(iterator __p, size_type __n, _CharT __c)
13174 { this->replace(__p, __p, __n, __c); }
13175 # 896 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13176 template<class _InputIterator>
13177 void insert(iterator __p, _InputIterator __beg, _InputIterator __end)
13178 { this->replace(__p, __p, __beg, __end); }
13179 # 911 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13180 basic_string&
13181 insert(size_type __pos1, const basic_string& __str)
13182 { return this->insert(__pos1, __str, size_type(0), __str.size()); }
13183 # 933 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13184 basic_string&
13185 insert(size_type __pos1, const basic_string& __str,
13186 size_type __pos2, size_type __n)
13187 { return this->insert(__pos1, __str._M_data()
13188 + __str._M_check(__pos2, "basic_string::insert"),
13189 __str._M_limit(__pos2, __n)); }
13190 # 956 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13191 basic_string&
13192 insert(size_type __pos, const _CharT* __s, size_type __n);
13193 # 974 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13194 basic_string&
13195 insert(size_type __pos, const _CharT* __s)
13196 {
13197 ;
13198 return this->insert(__pos, __s, traits_type::length(__s));
13199 }
13200 # 997 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13201 basic_string&
13202 insert(size_type __pos, size_type __n, _CharT __c)
13203 { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
13204 size_type(0), __n, __c); }
13205 # 1014 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13206 iterator
13207 insert(iterator __p, _CharT __c)
13208 {
13209 ;
13210 const size_type __pos = __p - _M_ibegin();
13211 _M_replace_aux(__pos, size_type(0), size_type(1), __c);
13212 _M_rep()->_M_set_leaked();
13213 return this->_M_ibegin() + __pos;
13214 }
13215 # 1038 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13216 basic_string&
13217 erase(size_type __pos = 0, size_type __n = npos)
13218 { return _M_replace_safe(_M_check(__pos, "basic_string::erase"),
13219 _M_limit(__pos, __n), __null, size_type(0)); }
13220 # 1051 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13221 iterator
13222 erase(iterator __position)
13223 {
13224 ;
13225
13226 const size_type __pos = __position - _M_ibegin();
13227 _M_replace_safe(__pos, size_type(1), __null, size_type(0));
13228 _M_rep()->_M_set_leaked();
13229 return _M_ibegin() + __pos;
13230 }
13231 # 1071 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13232 iterator
13233 erase(iterator __first, iterator __last)
13234 {
13235 ;
13236
13237 const size_type __pos = __first - _M_ibegin();
13238 _M_replace_safe(__pos, __last - __first, __null, size_type(0));
13239 _M_rep()->_M_set_leaked();
13240 return _M_ibegin() + __pos;
13241 }
13242 # 1098 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13243 basic_string&
13244 replace(size_type __pos, size_type __n, const basic_string& __str)
13245 { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
13246 # 1120 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13247 basic_string&
13248 replace(size_type __pos1, size_type __n1, const basic_string& __str,
13249 size_type __pos2, size_type __n2)
13250 { return this->replace(__pos1, __n1, __str._M_data()
13251 + __str._M_check(__pos2, "basic_string::replace"),
13252 __str._M_limit(__pos2, __n2)); }
13253 # 1144 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13254 basic_string&
13255 replace(size_type __pos, size_type __n1, const _CharT* __s,
13256 size_type __n2);
13257 # 1163 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13258 basic_string&
13259 replace(size_type __pos, size_type __n1, const _CharT* __s)
13260 {
13261 ;
13262 return this->replace(__pos, __n1, __s, traits_type::length(__s));
13263 }
13264 # 1186 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13265 basic_string&
13266 replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
13267 { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
13268 _M_limit(__pos, __n1), __n2, __c); }
13269 # 1204 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13270 basic_string&
13271 replace(iterator __i1, iterator __i2, const basic_string& __str)
13272 { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
13273 # 1222 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13274 basic_string&
13275 replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
13276 {
13277 ;
13278
13279 return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
13280 }
13281 # 1243 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13282 basic_string&
13283 replace(iterator __i1, iterator __i2, const _CharT* __s)
13284 {
13285 ;
13286 return this->replace(__i1, __i2, __s, traits_type::length(__s));
13287 }
13288 # 1264 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13289 basic_string&
13290 replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
13291 {
13292 ;
13293
13294 return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
13295 }
13296 # 1286 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13297 template<class _InputIterator>
13298 basic_string&
13299 replace(iterator __i1, iterator __i2,
13300 _InputIterator __k1, _InputIterator __k2)
13301 {
13302 ;
13303
13304 ;
13305 typedef typename _Is_integer<_InputIterator>::_Integral _Integral;
13306 return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
13307 }
13308
13309
13310
13311 basic_string&
13312 replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
13313 {
13314 ;
13315
13316 ;
13317 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13318 __k1, __k2 - __k1);
13319 }
13320
13321 basic_string&
13322 replace(iterator __i1, iterator __i2,
13323 const _CharT* __k1, const _CharT* __k2)
13324 {
13325 ;
13326
13327 ;
13328 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13329 __k1, __k2 - __k1);
13330 }
13331
13332 basic_string&
13333 replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
13334 {
13335 ;
13336
13337 ;
13338 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13339 __k1.base(), __k2 - __k1);
13340 }
13341
13342 basic_string&
13343 replace(iterator __i1, iterator __i2,
13344 const_iterator __k1, const_iterator __k2)
13345 {
13346 ;
13347
13348 ;
13349 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
13350 __k1.base(), __k2 - __k1);
13351 }
13352
13353 private:
13354 template<class _Integer>
13355 basic_string&
13356 _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
13357 _Integer __val, __true_type)
13358 { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
13359
13360 template<class _InputIterator>
13361 basic_string&
13362 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
13363 _InputIterator __k2, __false_type);
13364
13365 basic_string&
13366 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
13367 _CharT __c)
13368 {
13369 if (this->max_size() - (this->size() - __n1) < __n2)
13370 __throw_length_error(("basic_string::_M_replace_aux"));
13371 _M_mutate(__pos1, __n1, __n2);
13372 if (__n2 == 1)
13373 _M_data()[__pos1] = __c;
13374 else if (__n2)
13375 traits_type::assign(_M_data() + __pos1, __n2, __c);
13376 return *this;
13377 }
13378
13379 basic_string&
13380 _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
13381 size_type __n2)
13382 {
13383 _M_mutate(__pos1, __n1, __n2);
13384 if (__n2 == 1)
13385 _M_data()[__pos1] = *__s;
13386 else if (__n2)
13387 traits_type::copy(_M_data() + __pos1, __s, __n2);
13388 return *this;
13389 }
13390
13391
13392
13393 template<class _InIterator>
13394 static _CharT*
13395 _S_construct_aux(_InIterator __beg, _InIterator __end,
13396 const _Alloc& __a, __false_type)
13397 {
13398 typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
13399 return _S_construct(__beg, __end, __a, _Tag());
13400 }
13401
13402 template<class _InIterator>
13403 static _CharT*
13404 _S_construct_aux(_InIterator __beg, _InIterator __end,
13405 const _Alloc& __a, __true_type)
13406 { return _S_construct(static_cast<size_type>(__beg),
13407 static_cast<value_type>(__end), __a); }
13408
13409 template<class _InIterator>
13410 static _CharT*
13411 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
13412 {
13413 typedef typename _Is_integer<_InIterator>::_Integral _Integral;
13414 return _S_construct_aux(__beg, __end, __a, _Integral());
13415 }
13416
13417
13418 template<class _InIterator>
13419 static _CharT*
13420 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
13421 input_iterator_tag);
13422
13423
13424
13425 template<class _FwdIterator>
13426 static _CharT*
13427 _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
13428 forward_iterator_tag);
13429
13430 static _CharT*
13431 _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
13432
13433 public:
13434 # 1435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13435 size_type
13436 copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
13437 # 1445 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13438 void
13439 swap(basic_string& __s);
13440 # 1455 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13441 const _CharT*
13442 c_str() const { return _M_data(); }
13443
13444
13445
13446
13447
13448
13449
13450 const _CharT*
13451 data() const { return _M_data(); }
13452
13453
13454
13455
13456 allocator_type
13457 get_allocator() const { return _M_dataplus; }
13458 # 1484 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13459 size_type
13460 find(const _CharT* __s, size_type __pos, size_type __n) const;
13461 # 1497 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13462 size_type
13463 find(const basic_string& __str, size_type __pos = 0) const
13464 { return this->find(__str.data(), __pos, __str.size()); }
13465 # 1511 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13466 size_type
13467 find(const _CharT* __s, size_type __pos = 0) const
13468 {
13469 ;
13470 return this->find(__s, __pos, traits_type::length(__s));
13471 }
13472 # 1528 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13473 size_type
13474 find(_CharT __c, size_type __pos = 0) const;
13475 # 1541 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13476 size_type
13477 rfind(const basic_string& __str, size_type __pos = npos) const
13478 { return this->rfind(__str.data(), __pos, __str.size()); }
13479 # 1556 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13480 size_type
13481 rfind(const _CharT* __s, size_type __pos, size_type __n) const;
13482 # 1569 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13483 size_type
13484 rfind(const _CharT* __s, size_type __pos = npos) const
13485 {
13486 ;
13487 return this->rfind(__s, __pos, traits_type::length(__s));
13488 }
13489 # 1586 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13490 size_type
13491 rfind(_CharT __c, size_type __pos = npos) const;
13492 # 1599 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13493 size_type
13494 find_first_of(const basic_string& __str, size_type __pos = 0) const
13495 { return this->find_first_of(__str.data(), __pos, __str.size()); }
13496 # 1614 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13497 size_type
13498 find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
13499 # 1627 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13500 size_type
13501 find_first_of(const _CharT* __s, size_type __pos = 0) const
13502 {
13503 ;
13504 return this->find_first_of(__s, __pos, traits_type::length(__s));
13505 }
13506 # 1646 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13507 size_type
13508 find_first_of(_CharT __c, size_type __pos = 0) const
13509 { return this->find(__c, __pos); }
13510 # 1660 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13511 size_type
13512 find_last_of(const basic_string& __str, size_type __pos = npos) const
13513 { return this->find_last_of(__str.data(), __pos, __str.size()); }
13514 # 1675 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13515 size_type
13516 find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
13517 # 1688 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13518 size_type
13519 find_last_of(const _CharT* __s, size_type __pos = npos) const
13520 {
13521 ;
13522 return this->find_last_of(__s, __pos, traits_type::length(__s));
13523 }
13524 # 1707 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13525 size_type
13526 find_last_of(_CharT __c, size_type __pos = npos) const
13527 { return this->rfind(__c, __pos); }
13528 # 1721 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13529 size_type
13530 find_first_not_of(const basic_string& __str, size_type __pos = 0) const
13531 { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
13532 # 1736 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13533 size_type
13534 find_first_not_of(const _CharT* __s, size_type __pos,
13535 size_type __n) const;
13536 # 1750 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13537 size_type
13538 find_first_not_of(const _CharT* __s, size_type __pos = 0) const
13539 {
13540 ;
13541 return this->find_first_not_of(__s, __pos, traits_type::length(__s));
13542 }
13543 # 1767 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13544 size_type
13545 find_first_not_of(_CharT __c, size_type __pos = 0) const;
13546 # 1780 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13547 size_type
13548 find_last_not_of(const basic_string& __str, size_type __pos = npos) const
13549 { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
13550 # 1796 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13551 size_type
13552 find_last_not_of(const _CharT* __s, size_type __pos,
13553 size_type __n) const;
13554 # 1809 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13555 size_type
13556 find_last_not_of(const _CharT* __s, size_type __pos = npos) const
13557 {
13558 ;
13559 return this->find_last_not_of(__s, __pos, traits_type::length(__s));
13560 }
13561 # 1826 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13562 size_type
13563 find_last_not_of(_CharT __c, size_type __pos = npos) const;
13564 # 1841 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13565 basic_string
13566 substr(size_type __pos = 0, size_type __n = npos) const
13567 { return basic_string(*this,
13568 _M_check(__pos, "basic_string::substr"), __n); }
13569 # 1859 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13570 int
13571 compare(const basic_string& __str) const
13572 {
13573 const size_type __size = this->size();
13574 const size_type __osize = __str.size();
13575 const size_type __len = std::min(__size, __osize);
13576
13577 int __r = traits_type::compare(_M_data(), __str.data(), __len);
13578 if (!__r)
13579 __r = __size - __osize;
13580 return __r;
13581 }
13582 # 1889 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13583 int
13584 compare(size_type __pos, size_type __n, const basic_string& __str) const;
13585 # 1913 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13586 int
13587 compare(size_type __pos1, size_type __n1, const basic_string& __str,
13588 size_type __pos2, size_type __n2) const;
13589 # 1931 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13590 int
13591 compare(const _CharT* __s) const;
13592 # 1954 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13593 int
13594 compare(size_type __pos, size_type __n1, const _CharT* __s) const;
13595 # 1979 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13596 int
13597 compare(size_type __pos, size_type __n1, const _CharT* __s,
13598 size_type __n2) const;
13599 };
13600
13601 template<typename _CharT, typename _Traits, typename _Alloc>
13602 inline basic_string<_CharT, _Traits, _Alloc>::
13603 basic_string()
13604
13605 : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
13606 # 2000 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13607 template<typename _CharT, typename _Traits, typename _Alloc>
13608 basic_string<_CharT, _Traits, _Alloc>
13609 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13610 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13611 {
13612 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
13613 __str.append(__rhs);
13614 return __str;
13615 }
13616
13617
13618
13619
13620
13621
13622
13623 template<typename _CharT, typename _Traits, typename _Alloc>
13624 basic_string<_CharT,_Traits,_Alloc>
13625 operator+(const _CharT* __lhs,
13626 const basic_string<_CharT,_Traits,_Alloc>& __rhs);
13627
13628
13629
13630
13631
13632
13633
13634 template<typename _CharT, typename _Traits, typename _Alloc>
13635 basic_string<_CharT,_Traits,_Alloc>
13636 operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
13637
13638
13639
13640
13641
13642
13643
13644 template<typename _CharT, typename _Traits, typename _Alloc>
13645 inline basic_string<_CharT, _Traits, _Alloc>
13646 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13647 const _CharT* __rhs)
13648 {
13649 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
13650 __str.append(__rhs);
13651 return __str;
13652 }
13653
13654
13655
13656
13657
13658
13659
13660 template<typename _CharT, typename _Traits, typename _Alloc>
13661 inline basic_string<_CharT, _Traits, _Alloc>
13662 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
13663 {
13664 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
13665 typedef typename __string_type::size_type __size_type;
13666 __string_type __str(__lhs);
13667 __str.append(__size_type(1), __rhs);
13668 return __str;
13669 }
13670 # 2071 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13671 template<typename _CharT, typename _Traits, typename _Alloc>
13672 inline bool
13673 operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13674 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13675 { return __lhs.compare(__rhs) == 0; }
13676
13677
13678
13679
13680
13681
13682
13683 template<typename _CharT, typename _Traits, typename _Alloc>
13684 inline bool
13685 operator==(const _CharT* __lhs,
13686 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13687 { return __rhs.compare(__lhs) == 0; }
13688
13689
13690
13691
13692
13693
13694
13695 template<typename _CharT, typename _Traits, typename _Alloc>
13696 inline bool
13697 operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13698 const _CharT* __rhs)
13699 { return __lhs.compare(__rhs) == 0; }
13700 # 2108 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13701 template<typename _CharT, typename _Traits, typename _Alloc>
13702 inline bool
13703 operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13704 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13705 { return __rhs.compare(__lhs) != 0; }
13706
13707
13708
13709
13710
13711
13712
13713 template<typename _CharT, typename _Traits, typename _Alloc>
13714 inline bool
13715 operator!=(const _CharT* __lhs,
13716 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13717 { return __rhs.compare(__lhs) != 0; }
13718
13719
13720
13721
13722
13723
13724
13725 template<typename _CharT, typename _Traits, typename _Alloc>
13726 inline bool
13727 operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13728 const _CharT* __rhs)
13729 { return __lhs.compare(__rhs) != 0; }
13730 # 2145 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13731 template<typename _CharT, typename _Traits, typename _Alloc>
13732 inline bool
13733 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13734 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13735 { return __lhs.compare(__rhs) < 0; }
13736
13737
13738
13739
13740
13741
13742
13743 template<typename _CharT, typename _Traits, typename _Alloc>
13744 inline bool
13745 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13746 const _CharT* __rhs)
13747 { return __lhs.compare(__rhs) < 0; }
13748
13749
13750
13751
13752
13753
13754
13755 template<typename _CharT, typename _Traits, typename _Alloc>
13756 inline bool
13757 operator<(const _CharT* __lhs,
13758 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13759 { return __rhs.compare(__lhs) > 0; }
13760 # 2182 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13761 template<typename _CharT, typename _Traits, typename _Alloc>
13762 inline bool
13763 operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13764 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13765 { return __lhs.compare(__rhs) > 0; }
13766
13767
13768
13769
13770
13771
13772
13773 template<typename _CharT, typename _Traits, typename _Alloc>
13774 inline bool
13775 operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13776 const _CharT* __rhs)
13777 { return __lhs.compare(__rhs) > 0; }
13778
13779
13780
13781
13782
13783
13784
13785 template<typename _CharT, typename _Traits, typename _Alloc>
13786 inline bool
13787 operator>(const _CharT* __lhs,
13788 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13789 { return __rhs.compare(__lhs) < 0; }
13790 # 2219 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13791 template<typename _CharT, typename _Traits, typename _Alloc>
13792 inline bool
13793 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13794 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13795 { return __lhs.compare(__rhs) <= 0; }
13796
13797
13798
13799
13800
13801
13802
13803 template<typename _CharT, typename _Traits, typename _Alloc>
13804 inline bool
13805 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13806 const _CharT* __rhs)
13807 { return __lhs.compare(__rhs) <= 0; }
13808
13809
13810
13811
13812
13813
13814
13815 template<typename _CharT, typename _Traits, typename _Alloc>
13816 inline bool
13817 operator<=(const _CharT* __lhs,
13818 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13819 { return __rhs.compare(__lhs) >= 0; }
13820 # 2256 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13821 template<typename _CharT, typename _Traits, typename _Alloc>
13822 inline bool
13823 operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13824 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13825 { return __lhs.compare(__rhs) >= 0; }
13826
13827
13828
13829
13830
13831
13832
13833 template<typename _CharT, typename _Traits, typename _Alloc>
13834 inline bool
13835 operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
13836 const _CharT* __rhs)
13837 { return __lhs.compare(__rhs) >= 0; }
13838
13839
13840
13841
13842
13843
13844
13845 template<typename _CharT, typename _Traits, typename _Alloc>
13846 inline bool
13847 operator>=(const _CharT* __lhs,
13848 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
13849 { return __rhs.compare(__lhs) <= 0; }
13850 # 2293 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13851 template<typename _CharT, typename _Traits, typename _Alloc>
13852 inline void
13853 swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
13854 basic_string<_CharT, _Traits, _Alloc>& __rhs)
13855 { __lhs.swap(__rhs); }
13856 # 2310 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13857 template<typename _CharT, typename _Traits, typename _Alloc>
13858 basic_istream<_CharT, _Traits>&
13859 operator>>(basic_istream<_CharT, _Traits>& __is,
13860 basic_string<_CharT, _Traits, _Alloc>& __str);
13861 # 2324 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13862 template<typename _CharT, typename _Traits, typename _Alloc>
13863 basic_ostream<_CharT, _Traits>&
13864 operator<<(basic_ostream<_CharT, _Traits>& __os,
13865 const basic_string<_CharT, _Traits, _Alloc>& __str);
13866 # 2342 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13867 template<typename _CharT, typename _Traits, typename _Alloc>
13868 basic_istream<_CharT,_Traits>&
13869 getline(basic_istream<_CharT, _Traits>& __is,
13870 basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
13871 # 2359 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h" 3
13872 template<typename _CharT, typename _Traits, typename _Alloc>
13873 inline basic_istream<_CharT,_Traits>&
13874 getline(basic_istream<_CharT, _Traits>& __is,
13875 basic_string<_CharT, _Traits, _Alloc>& __str);
13876 }
13877 # 54 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
13878
13879
13880 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 1 3
13881 # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 3
13882
13883 # 65 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 3
13884
13885
13886
13887
13888 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 1 3
13889 # 64 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
13890 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 1 3
13891 # 65 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
13892 namespace std
13893 {
13894
13895
13896
13897 template<typename _RandomAccessIterator, typename _Distance>
13898 bool
13899 __is_heap(_RandomAccessIterator __first, _Distance __n)
13900 {
13901 _Distance __parent = 0;
13902 for (_Distance __child = 1; __child < __n; ++__child)
13903 {
13904 if (__first[__parent] < __first[__child])
13905 return false;
13906 if ((__child & 1) == 0)
13907 ++__parent;
13908 }
13909 return true;
13910 }
13911
13912 template<typename _RandomAccessIterator, typename _Distance,
13913 typename _StrictWeakOrdering>
13914 bool
13915 __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
13916 _Distance __n)
13917 {
13918 _Distance __parent = 0;
13919 for (_Distance __child = 1; __child < __n; ++__child)
13920 {
13921 if (__comp(__first[__parent], __first[__child]))
13922 return false;
13923 if ((__child & 1) == 0)
13924 ++__parent;
13925 }
13926 return true;
13927 }
13928
13929 template<typename _RandomAccessIterator>
13930 bool
13931 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
13932 { return std::__is_heap(__first, std::distance(__first, __last)); }
13933
13934 template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
13935 bool
13936 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
13937 _StrictWeakOrdering __comp)
13938 { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
13939
13940
13941
13942 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
13943 void
13944 __push_heap(_RandomAccessIterator __first,
13945 _Distance __holeIndex, _Distance __topIndex, _Tp __value)
13946 {
13947 _Distance __parent = (__holeIndex - 1) / 2;
13948 while (__holeIndex > __topIndex && *(__first + __parent) < __value)
13949 {
13950 *(__first + __holeIndex) = *(__first + __parent);
13951 __holeIndex = __parent;
13952 __parent = (__holeIndex - 1) / 2;
13953 }
13954 *(__first + __holeIndex) = __value;
13955 }
13956 # 139 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
13957 template<typename _RandomAccessIterator>
13958 inline void
13959 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
13960 {
13961 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13962 _ValueType;
13963 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13964 _DistanceType;
13965
13966
13967
13968
13969
13970 ;
13971
13972
13973 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
13974 _DistanceType(0), _ValueType(*(__last - 1)));
13975 }
13976
13977 template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
13978 typename _Compare>
13979 void
13980 __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
13981 _Distance __topIndex, _Tp __value, _Compare __comp)
13982 {
13983 _Distance __parent = (__holeIndex - 1) / 2;
13984 while (__holeIndex > __topIndex
13985 && __comp(*(__first + __parent), __value))
13986 {
13987 *(__first + __holeIndex) = *(__first + __parent);
13988 __holeIndex = __parent;
13989 __parent = (__holeIndex - 1) / 2;
13990 }
13991 *(__first + __holeIndex) = __value;
13992 }
13993 # 187 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
13994 template<typename _RandomAccessIterator, typename _Compare>
13995 inline void
13996 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
13997 _Compare __comp)
13998 {
13999 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14000 _ValueType;
14001 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14002 _DistanceType;
14003
14004
14005
14006
14007 ;
14008 ;
14009
14010 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
14011 _DistanceType(0), _ValueType(*(__last - 1)), __comp);
14012 }
14013
14014 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
14015 void
14016 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
14017 _Distance __len, _Tp __value)
14018 {
14019 const _Distance __topIndex = __holeIndex;
14020 _Distance __secondChild = 2 * __holeIndex + 2;
14021 while (__secondChild < __len)
14022 {
14023 if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
14024 __secondChild--;
14025 *(__first + __holeIndex) = *(__first + __secondChild);
14026 __holeIndex = __secondChild;
14027 __secondChild = 2 * (__secondChild + 1);
14028 }
14029 if (__secondChild == __len)
14030 {
14031 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
14032 __holeIndex = __secondChild - 1;
14033 }
14034 std::__push_heap(__first, __holeIndex, __topIndex, __value);
14035 }
14036
14037 template<typename _RandomAccessIterator, typename _Tp>
14038 inline void
14039 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14040 _RandomAccessIterator __result, _Tp __value)
14041 {
14042 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14043 _Distance;
14044 *__result = *__first;
14045 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
14046 __value);
14047 }
14048 # 251 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14049 template<typename _RandomAccessIterator>
14050 inline void
14051 pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
14052 {
14053 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14054 _ValueType;
14055
14056
14057
14058
14059
14060 ;
14061 ;
14062
14063 std::__pop_heap(__first, __last - 1, __last - 1,
14064 _ValueType(*(__last - 1)));
14065 }
14066
14067 template<typename _RandomAccessIterator, typename _Distance,
14068 typename _Tp, typename _Compare>
14069 void
14070 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
14071 _Distance __len, _Tp __value, _Compare __comp)
14072 {
14073 const _Distance __topIndex = __holeIndex;
14074 _Distance __secondChild = 2 * __holeIndex + 2;
14075 while (__secondChild < __len)
14076 {
14077 if (__comp(*(__first + __secondChild),
14078 *(__first + (__secondChild - 1))))
14079 __secondChild--;
14080 *(__first + __holeIndex) = *(__first + __secondChild);
14081 __holeIndex = __secondChild;
14082 __secondChild = 2 * (__secondChild + 1);
14083 }
14084 if (__secondChild == __len)
14085 {
14086 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
14087 __holeIndex = __secondChild - 1;
14088 }
14089 std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
14090 }
14091
14092 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
14093 inline void
14094 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14095 _RandomAccessIterator __result, _Tp __value, _Compare __comp)
14096 {
14097 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14098 _Distance;
14099 *__result = *__first;
14100 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
14101 __value, __comp);
14102 }
14103 # 317 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14104 template<typename _RandomAccessIterator, typename _Compare>
14105 inline void
14106 pop_heap(_RandomAccessIterator __first,
14107 _RandomAccessIterator __last, _Compare __comp)
14108 {
14109
14110
14111
14112 ;
14113 ;
14114
14115 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14116 _ValueType;
14117 std::__pop_heap(__first, __last - 1, __last - 1,
14118 _ValueType(*(__last - 1)), __comp);
14119 }
14120 # 342 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14121 template<typename _RandomAccessIterator>
14122 void
14123 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
14124 {
14125 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14126 _ValueType;
14127 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14128 _DistanceType;
14129
14130
14131
14132
14133
14134 ;
14135
14136 if (__last - __first < 2)
14137 return;
14138
14139 const _DistanceType __len = __last - __first;
14140 _DistanceType __parent = (__len - 2) / 2;
14141 while (true)
14142 {
14143 std::__adjust_heap(__first, __parent, __len,
14144 _ValueType(*(__first + __parent)));
14145 if (__parent == 0)
14146 return;
14147 __parent--;
14148 }
14149 }
14150 # 382 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14151 template<typename _RandomAccessIterator, typename _Compare>
14152 inline void
14153 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14154 _Compare __comp)
14155 {
14156 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14157 _ValueType;
14158 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14159 _DistanceType;
14160
14161
14162
14163
14164 ;
14165
14166 if (__last - __first < 2)
14167 return;
14168
14169 const _DistanceType __len = __last - __first;
14170 _DistanceType __parent = (__len - 2) / 2;
14171 while (true)
14172 {
14173 std::__adjust_heap(__first, __parent, __len,
14174 _ValueType(*(__first + __parent)), __comp);
14175 if (__parent == 0)
14176 return;
14177 __parent--;
14178 }
14179 }
14180 # 420 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14181 template<typename _RandomAccessIterator>
14182 void
14183 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
14184 {
14185
14186
14187
14188
14189
14190 ;
14191
14192
14193 while (__last - __first > 1)
14194 std::pop_heap(__first, __last--);
14195 }
14196 # 446 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h" 3
14197 template<typename _RandomAccessIterator, typename _Compare>
14198 void
14199 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
14200 _Compare __comp)
14201 {
14202
14203
14204
14205 ;
14206 ;
14207
14208 while (__last - __first > 1)
14209 std::pop_heap(__first, __last--, __comp);
14210 }
14211
14212 }
14213 # 65 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 2 3
14214 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h" 1 3
14215 # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h" 3
14216 namespace std
14217 {
14218
14219
14220
14221
14222
14223
14224
14225 template<typename _ForwardIterator, typename _Tp>
14226 class _Temporary_buffer
14227 {
14228
14229
14230
14231 public:
14232 typedef _Tp value_type;
14233 typedef value_type* pointer;
14234 typedef pointer iterator;
14235 typedef ptrdiff_t size_type;
14236
14237 protected:
14238 size_type _M_original_len;
14239 size_type _M_len;
14240 pointer _M_buffer;
14241
14242 void
14243 _M_initialize_buffer(const _Tp&, __true_type) { }
14244
14245 void
14246 _M_initialize_buffer(const _Tp& val, __false_type)
14247 { std::uninitialized_fill_n(_M_buffer, _M_len, val); }
14248
14249 public:
14250
14251 size_type
14252 size() const
14253 { return _M_len; }
14254
14255
14256 size_type
14257 requested_size() const
14258 { return _M_original_len; }
14259
14260
14261 iterator
14262 begin()
14263 { return _M_buffer; }
14264
14265
14266 iterator
14267 end()
14268 { return _M_buffer + _M_len; }
14269
14270
14271
14272
14273
14274 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
14275
14276 ~_Temporary_buffer()
14277 {
14278 std::_Destroy(_M_buffer, _M_buffer + _M_len);
14279 std::return_temporary_buffer(_M_buffer);
14280 }
14281
14282 private:
14283
14284 _Temporary_buffer(const _Temporary_buffer&);
14285
14286 void
14287 operator=(const _Temporary_buffer&);
14288 };
14289
14290
14291 template<typename _ForwardIterator, typename _Tp>
14292 _Temporary_buffer<_ForwardIterator, _Tp>::
14293 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
14294 : _M_original_len(std::distance(__first, __last)),
14295 _M_len(0), _M_buffer(0)
14296 {
14297
14298 typedef typename __type_traits<_Tp>::has_trivial_default_constructor
14299 _Trivial;
14300
14301 try
14302 {
14303 pair<pointer, size_type> __p(get_temporary_buffer<
14304 value_type>(_M_original_len));
14305 _M_buffer = __p.first;
14306 _M_len = __p.second;
14307 if (_M_len > 0)
14308 _M_initialize_buffer(*__first, _Trivial());
14309 }
14310 catch(...)
14311 {
14312 std::return_temporary_buffer(_M_buffer);
14313 _M_buffer = 0;
14314 _M_len = 0;
14315 throw;
14316 }
14317 }
14318 }
14319 # 66 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 2 3
14320
14321
14322
14323
14324 namespace std
14325 {
14326 # 84 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14327 template<typename _Tp>
14328 inline const _Tp&
14329 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
14330 {
14331
14332
14333 if (__a < __b)
14334 if (__b < __c)
14335 return __b;
14336 else if (__a < __c)
14337 return __c;
14338 else
14339 return __a;
14340 else if (__a < __c)
14341 return __a;
14342 else if (__b < __c)
14343 return __c;
14344 else
14345 return __b;
14346 }
14347 # 118 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14348 template<typename _Tp, typename _Compare>
14349 inline const _Tp&
14350 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
14351 {
14352
14353
14354 if (__comp(__a, __b))
14355 if (__comp(__b, __c))
14356 return __b;
14357 else if (__comp(__a, __c))
14358 return __c;
14359 else
14360 return __a;
14361 else if (__comp(__a, __c))
14362 return __a;
14363 else if (__comp(__b, __c))
14364 return __c;
14365 else
14366 return __b;
14367 }
14368 # 150 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14369 template<typename _InputIterator, typename _Function>
14370 _Function
14371 for_each(_InputIterator __first, _InputIterator __last, _Function __f)
14372 {
14373
14374
14375 ;
14376 for ( ; __first != __last; ++__first)
14377 __f(*__first);
14378 return __f;
14379 }
14380
14381
14382
14383
14384
14385
14386 template<typename _InputIterator, typename _Tp>
14387 inline _InputIterator
14388 find(_InputIterator __first, _InputIterator __last,
14389 const _Tp& __val, input_iterator_tag)
14390 {
14391 while (__first != __last && !(*__first == __val))
14392 ++__first;
14393 return __first;
14394 }
14395
14396
14397
14398
14399
14400
14401 template<typename _InputIterator, typename _Predicate>
14402 inline _InputIterator
14403 find_if(_InputIterator __first, _InputIterator __last,
14404 _Predicate __pred, input_iterator_tag)
14405 {
14406 while (__first != __last && !__pred(*__first))
14407 ++__first;
14408 return __first;
14409 }
14410
14411
14412
14413
14414
14415
14416 template<typename _RandomAccessIterator, typename _Tp>
14417 _RandomAccessIterator
14418 find(_RandomAccessIterator __first, _RandomAccessIterator __last,
14419 const _Tp& __val, random_access_iterator_tag)
14420 {
14421 typename iterator_traits<_RandomAccessIterator>::difference_type
14422 __trip_count = (__last - __first) >> 2;
14423
14424 for ( ; __trip_count > 0 ; --__trip_count)
14425 {
14426 if (*__first == __val)
14427 return __first;
14428 ++__first;
14429
14430 if (*__first == __val)
14431 return __first;
14432 ++__first;
14433
14434 if (*__first == __val)
14435 return __first;
14436 ++__first;
14437
14438 if (*__first == __val)
14439 return __first;
14440 ++__first;
14441 }
14442
14443 switch (__last - __first)
14444 {
14445 case 3:
14446 if (*__first == __val)
14447 return __first;
14448 ++__first;
14449 case 2:
14450 if (*__first == __val)
14451 return __first;
14452 ++__first;
14453 case 1:
14454 if (*__first == __val)
14455 return __first;
14456 ++__first;
14457 case 0:
14458 default:
14459 return __last;
14460 }
14461 }
14462
14463
14464
14465
14466
14467
14468 template<typename _RandomAccessIterator, typename _Predicate>
14469 _RandomAccessIterator
14470 find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
14471 _Predicate __pred, random_access_iterator_tag)
14472 {
14473 typename iterator_traits<_RandomAccessIterator>::difference_type
14474 __trip_count = (__last - __first) >> 2;
14475
14476 for ( ; __trip_count > 0 ; --__trip_count)
14477 {
14478 if (__pred(*__first))
14479 return __first;
14480 ++__first;
14481
14482 if (__pred(*__first))
14483 return __first;
14484 ++__first;
14485
14486 if (__pred(*__first))
14487 return __first;
14488 ++__first;
14489
14490 if (__pred(*__first))
14491 return __first;
14492 ++__first;
14493 }
14494
14495 switch (__last - __first)
14496 {
14497 case 3:
14498 if (__pred(*__first))
14499 return __first;
14500 ++__first;
14501 case 2:
14502 if (__pred(*__first))
14503 return __first;
14504 ++__first;
14505 case 1:
14506 if (__pred(*__first))
14507 return __first;
14508 ++__first;
14509 case 0:
14510 default:
14511 return __last;
14512 }
14513 }
14514 # 304 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14515 template<typename _InputIterator, typename _Tp>
14516 inline _InputIterator
14517 find(_InputIterator __first, _InputIterator __last,
14518 const _Tp& __val)
14519 {
14520
14521
14522
14523
14524 ;
14525 return std::find(__first, __last, __val,
14526 std::__iterator_category(__first));
14527 }
14528 # 326 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14529 template<typename _InputIterator, typename _Predicate>
14530 inline _InputIterator
14531 find_if(_InputIterator __first, _InputIterator __last,
14532 _Predicate __pred)
14533 {
14534
14535
14536
14537
14538 ;
14539 return std::find_if(__first, __last, __pred,
14540 std::__iterator_category(__first));
14541 }
14542 # 348 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14543 template<typename _ForwardIterator>
14544 _ForwardIterator
14545 adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
14546 {
14547
14548
14549
14550
14551 ;
14552 if (__first == __last)
14553 return __last;
14554 _ForwardIterator __next = __first;
14555 while(++__next != __last)
14556 {
14557 if (*__first == *__next)
14558 return __first;
14559 __first = __next;
14560 }
14561 return __last;
14562 }
14563 # 379 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14564 template<typename _ForwardIterator, typename _BinaryPredicate>
14565 _ForwardIterator
14566 adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
14567 _BinaryPredicate __binary_pred)
14568 {
14569
14570
14571
14572
14573
14574 ;
14575 if (__first == __last)
14576 return __last;
14577 _ForwardIterator __next = __first;
14578 while(++__next != __last)
14579 {
14580 if (__binary_pred(*__first, *__next))
14581 return __first;
14582 __first = __next;
14583 }
14584 return __last;
14585 }
14586 # 410 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14587 template<typename _InputIterator, typename _Tp>
14588 typename iterator_traits<_InputIterator>::difference_type
14589 count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
14590 {
14591
14592
14593
14594
14595
14596 ;
14597 typename iterator_traits<_InputIterator>::difference_type __n = 0;
14598 for ( ; __first != __last; ++__first)
14599 if (*__first == __value)
14600 ++__n;
14601 return __n;
14602 }
14603 # 435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14604 template<typename _InputIterator, typename _Predicate>
14605 typename iterator_traits<_InputIterator>::difference_type
14606 count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
14607 {
14608
14609
14610
14611
14612 ;
14613 typename iterator_traits<_InputIterator>::difference_type __n = 0;
14614 for ( ; __first != __last; ++__first)
14615 if (__pred(*__first))
14616 ++__n;
14617 return __n;
14618 }
14619 # 474 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14620 template<typename _ForwardIterator1, typename _ForwardIterator2>
14621 _ForwardIterator1
14622 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
14623 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
14624 {
14625
14626
14627
14628
14629
14630
14631 ;
14632 ;
14633
14634 if (__first1 == __last1 || __first2 == __last2)
14635 return __first1;
14636
14637
14638 _ForwardIterator2 __tmp(__first2);
14639 ++__tmp;
14640 if (__tmp == __last2)
14641 return std::find(__first1, __last1, *__first2);
14642
14643
14644 _ForwardIterator2 __p1, __p;
14645 __p1 = __first2; ++__p1;
14646 _ForwardIterator1 __current = __first1;
14647
14648 while (__first1 != __last1)
14649 {
14650 __first1 = std::find(__first1, __last1, *__first2);
14651 if (__first1 == __last1)
14652 return __last1;
14653
14654 __p = __p1;
14655 __current = __first1;
14656 if (++__current == __last1)
14657 return __last1;
14658
14659 while (*__current == *__p)
14660 {
14661 if (++__p == __last2)
14662 return __first1;
14663 if (++__current == __last1)
14664 return __last1;
14665 }
14666 ++__first1;
14667 }
14668 return __first1;
14669 }
14670 # 545 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14671 template<typename _ForwardIterator1, typename _ForwardIterator2,
14672 typename _BinaryPredicate>
14673 _ForwardIterator1
14674 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
14675 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
14676 _BinaryPredicate __predicate)
14677 {
14678
14679
14680
14681
14682
14683
14684 ;
14685 ;
14686
14687
14688 if (__first1 == __last1 || __first2 == __last2)
14689 return __first1;
14690
14691
14692 _ForwardIterator2 __tmp(__first2);
14693 ++__tmp;
14694 if (__tmp == __last2)
14695 {
14696 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
14697 ++__first1;
14698 return __first1;
14699 }
14700
14701
14702 _ForwardIterator2 __p1, __p;
14703 __p1 = __first2; ++__p1;
14704 _ForwardIterator1 __current = __first1;
14705
14706 while (__first1 != __last1)
14707 {
14708 while (__first1 != __last1)
14709 {
14710 if (__predicate(*__first1, *__first2))
14711 break;
14712 ++__first1;
14713 }
14714 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
14715 ++__first1;
14716 if (__first1 == __last1)
14717 return __last1;
14718
14719 __p = __p1;
14720 __current = __first1;
14721 if (++__current == __last1)
14722 return __last1;
14723
14724 while (__predicate(*__current, *__p))
14725 {
14726 if (++__p == __last2)
14727 return __first1;
14728 if (++__current == __last1)
14729 return __last1;
14730 }
14731 ++__first1;
14732 }
14733 return __first1;
14734 }
14735 # 623 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14736 template<typename _ForwardIterator, typename _Integer, typename _Tp>
14737 _ForwardIterator
14738 search_n(_ForwardIterator __first, _ForwardIterator __last,
14739 _Integer __count, const _Tp& __val)
14740 {
14741
14742
14743
14744
14745
14746 ;
14747
14748 if (__count <= 0)
14749 return __first;
14750 else
14751 {
14752 __first = std::find(__first, __last, __val);
14753 while (__first != __last)
14754 {
14755 typename iterator_traits<_ForwardIterator>::difference_type
14756 __n = __count;
14757 _ForwardIterator __i = __first;
14758 ++__i;
14759 while (__i != __last && __n != 1 && *__i == __val)
14760 {
14761 ++__i;
14762 --__n;
14763 }
14764 if (__n == 1)
14765 return __first;
14766 else
14767 __first = std::find(__i, __last, __val);
14768 }
14769 return __last;
14770 }
14771 }
14772 # 675 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14773 template<typename _ForwardIterator, typename _Integer, typename _Tp,
14774 typename _BinaryPredicate>
14775 _ForwardIterator
14776 search_n(_ForwardIterator __first, _ForwardIterator __last,
14777 _Integer __count, const _Tp& __val,
14778 _BinaryPredicate __binary_pred)
14779 {
14780
14781
14782
14783
14784 ;
14785
14786 if (__count <= 0)
14787 return __first;
14788 else
14789 {
14790 while (__first != __last)
14791 {
14792 if (__binary_pred(*__first, __val))
14793 break;
14794 ++__first;
14795 }
14796 while (__first != __last)
14797 {
14798 typename iterator_traits<_ForwardIterator>::difference_type
14799 __n = __count;
14800 _ForwardIterator __i = __first;
14801 ++__i;
14802 while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
14803 {
14804 ++__i;
14805 --__n;
14806 }
14807 if (__n == 1)
14808 return __first;
14809 else
14810 {
14811 while (__i != __last)
14812 {
14813 if (__binary_pred(*__i, __val))
14814 break;
14815 ++__i;
14816 }
14817 __first = __i;
14818 }
14819 }
14820 return __last;
14821 }
14822 }
14823 # 737 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14824 template<typename _ForwardIterator1, typename _ForwardIterator2>
14825 _ForwardIterator2
14826 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
14827 _ForwardIterator2 __first2)
14828 {
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840 ;
14841
14842 for ( ; __first1 != __last1; ++__first1, ++__first2)
14843 std::iter_swap(__first1, __first2);
14844 return __first2;
14845 }
14846 # 775 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14847 template<typename _InputIterator, typename _OutputIterator,
14848 typename _UnaryOperation>
14849 _OutputIterator
14850 transform(_InputIterator __first, _InputIterator __last,
14851 _OutputIterator __result, _UnaryOperation __unary_op)
14852 {
14853
14854
14855
14856
14857
14858 ;
14859
14860 for ( ; __first != __last; ++__first, ++__result)
14861 *__result = __unary_op(*__first);
14862 return __result;
14863 }
14864 # 810 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14865 template<typename _InputIterator1, typename _InputIterator2,
14866 typename _OutputIterator, typename _BinaryOperation>
14867 _OutputIterator
14868 transform(_InputIterator1 __first1, _InputIterator1 __last1,
14869 _InputIterator2 __first2, _OutputIterator __result,
14870 _BinaryOperation __binary_op)
14871 {
14872
14873
14874
14875
14876
14877
14878 ;
14879
14880 for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
14881 *__result = __binary_op(*__first1, *__first2);
14882 return __result;
14883 }
14884 # 842 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14885 template<typename _ForwardIterator, typename _Tp>
14886 void
14887 replace(_ForwardIterator __first, _ForwardIterator __last,
14888 const _Tp& __old_value, const _Tp& __new_value)
14889 {
14890
14891
14892
14893
14894
14895
14896
14897 ;
14898
14899 for ( ; __first != __last; ++__first)
14900 if (*__first == __old_value)
14901 *__first = __new_value;
14902 }
14903 # 873 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14904 template<typename _ForwardIterator, typename _Predicate, typename _Tp>
14905 void
14906 replace_if(_ForwardIterator __first, _ForwardIterator __last,
14907 _Predicate __pred, const _Tp& __new_value)
14908 {
14909
14910
14911
14912
14913
14914
14915
14916 ;
14917
14918 for ( ; __first != __last; ++__first)
14919 if (__pred(*__first))
14920 *__first = __new_value;
14921 }
14922 # 906 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14923 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
14924 _OutputIterator
14925 replace_copy(_InputIterator __first, _InputIterator __last,
14926 _OutputIterator __result,
14927 const _Tp& __old_value, const _Tp& __new_value)
14928 {
14929
14930
14931
14932
14933
14934
14935 ;
14936
14937 for ( ; __first != __last; ++__first, ++__result)
14938 *__result = *__first == __old_value ? __new_value : *__first;
14939 return __result;
14940 }
14941 # 939 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14942 template<typename _InputIterator, typename _OutputIterator,
14943 typename _Predicate, typename _Tp>
14944 _OutputIterator
14945 replace_copy_if(_InputIterator __first, _InputIterator __last,
14946 _OutputIterator __result,
14947 _Predicate __pred, const _Tp& __new_value)
14948 {
14949
14950
14951
14952
14953
14954
14955 ;
14956
14957 for ( ; __first != __last; ++__first, ++__result)
14958 *__result = __pred(*__first) ? __new_value : *__first;
14959 return __result;
14960 }
14961 # 970 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14962 template<typename _ForwardIterator, typename _Generator>
14963 void
14964 generate(_ForwardIterator __first, _ForwardIterator __last,
14965 _Generator __gen)
14966 {
14967
14968
14969
14970
14971 ;
14972
14973 for ( ; __first != __last; ++__first)
14974 *__first = __gen();
14975 }
14976 # 996 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14977 template<typename _OutputIterator, typename _Size, typename _Generator>
14978 _OutputIterator
14979 generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
14980 {
14981
14982
14983
14984
14985
14986 for ( ; __n > 0; --__n, ++__first)
14987 *__first = __gen();
14988 return __first;
14989 }
14990 # 1023 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
14991 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
14992 _OutputIterator
14993 remove_copy(_InputIterator __first, _InputIterator __last,
14994 _OutputIterator __result, const _Tp& __value)
14995 {
14996
14997
14998
14999
15000
15001
15002 ;
15003
15004 for ( ; __first != __last; ++__first)
15005 if (!(*__first == __value))
15006 {
15007 *__result = *__first;
15008 ++__result;
15009 }
15010 return __result;
15011 }
15012 # 1059 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15013 template<typename _InputIterator, typename _OutputIterator,
15014 typename _Predicate>
15015 _OutputIterator
15016 remove_copy_if(_InputIterator __first, _InputIterator __last,
15017 _OutputIterator __result, _Predicate __pred)
15018 {
15019
15020
15021
15022
15023
15024
15025 ;
15026
15027 for ( ; __first != __last; ++__first)
15028 if (!__pred(*__first))
15029 {
15030 *__result = *__first;
15031 ++__result;
15032 }
15033 return __result;
15034 }
15035 # 1098 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15036 template<typename _ForwardIterator, typename _Tp>
15037 _ForwardIterator
15038 remove(_ForwardIterator __first, _ForwardIterator __last,
15039 const _Tp& __value)
15040 {
15041
15042
15043
15044
15045
15046 ;
15047
15048 __first = std::find(__first, __last, __value);
15049 _ForwardIterator __i = __first;
15050 return __first == __last ? __first
15051 : std::remove_copy(++__i, __last,
15052 __first, __value);
15053 }
15054 # 1133 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15055 template<typename _ForwardIterator, typename _Predicate>
15056 _ForwardIterator
15057 remove_if(_ForwardIterator __first, _ForwardIterator __last,
15058 _Predicate __pred)
15059 {
15060
15061
15062
15063
15064
15065 ;
15066
15067 __first = std::find_if(__first, __last, __pred);
15068 _ForwardIterator __i = __first;
15069 return __first == __last ? __first
15070 : std::remove_copy_if(++__i, __last,
15071 __first, __pred);
15072 }
15073 # 1159 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15074 template<typename _InputIterator, typename _OutputIterator>
15075 _OutputIterator
15076 __unique_copy(_InputIterator __first, _InputIterator __last,
15077 _OutputIterator __result,
15078 output_iterator_tag)
15079 {
15080
15081 typename iterator_traits<_InputIterator>::value_type __value = *__first;
15082 *__result = __value;
15083 while (++__first != __last)
15084 if (!(__value == *__first))
15085 {
15086 __value = *__first;
15087 *++__result = __value;
15088 }
15089 return ++__result;
15090 }
15091 # 1184 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15092 template<typename _InputIterator, typename _ForwardIterator>
15093 _ForwardIterator
15094 __unique_copy(_InputIterator __first, _InputIterator __last,
15095 _ForwardIterator __result,
15096 forward_iterator_tag)
15097 {
15098
15099 *__result = *__first;
15100 while (++__first != __last)
15101 if (!(*__result == *__first))
15102 *++__result = *__first;
15103 return ++__result;
15104 }
15105 # 1206 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15106 template<typename _InputIterator, typename _OutputIterator,
15107 typename _BinaryPredicate>
15108 _OutputIterator
15109 __unique_copy(_InputIterator __first, _InputIterator __last,
15110 _OutputIterator __result,
15111 _BinaryPredicate __binary_pred,
15112 output_iterator_tag)
15113 {
15114
15115
15116
15117
15118
15119 typename iterator_traits<_InputIterator>::value_type __value = *__first;
15120 *__result = __value;
15121 while (++__first != __last)
15122 if (!__binary_pred(__value, *__first))
15123 {
15124 __value = *__first;
15125 *++__result = __value;
15126 }
15127 return ++__result;
15128 }
15129 # 1238 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15130 template<typename _InputIterator, typename _ForwardIterator,
15131 typename _BinaryPredicate>
15132 _ForwardIterator
15133 __unique_copy(_InputIterator __first, _InputIterator __last,
15134 _ForwardIterator __result,
15135 _BinaryPredicate __binary_pred,
15136 forward_iterator_tag)
15137 {
15138
15139
15140
15141
15142
15143 *__result = *__first;
15144 while (++__first != __last)
15145 if (!__binary_pred(*__result, *__first)) *++__result = *__first;
15146 return ++__result;
15147 }
15148 # 1270 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15149 template<typename _InputIterator, typename _OutputIterator>
15150 inline _OutputIterator
15151 unique_copy(_InputIterator __first, _InputIterator __last,
15152 _OutputIterator __result)
15153 {
15154
15155
15156
15157
15158
15159
15160 ;
15161
15162 typedef typename iterator_traits<_OutputIterator>::iterator_category
15163 _IterType;
15164
15165 if (__first == __last) return __result;
15166 return std::__unique_copy(__first, __last, __result, _IterType());
15167 }
15168 # 1305 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15169 template<typename _InputIterator, typename _OutputIterator,
15170 typename _BinaryPredicate>
15171 inline _OutputIterator
15172 unique_copy(_InputIterator __first, _InputIterator __last,
15173 _OutputIterator __result,
15174 _BinaryPredicate __binary_pred)
15175 {
15176
15177
15178
15179
15180 ;
15181
15182 typedef typename iterator_traits<_OutputIterator>::iterator_category
15183 _IterType;
15184
15185 if (__first == __last) return __result;
15186 return std::__unique_copy(__first, __last, __result,
15187 __binary_pred, _IterType());
15188 }
15189 # 1339 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15190 template<typename _ForwardIterator>
15191 _ForwardIterator
15192 unique(_ForwardIterator __first, _ForwardIterator __last)
15193 {
15194
15195
15196
15197
15198
15199 ;
15200
15201
15202 __first = std::adjacent_find(__first, __last);
15203 if (__first == __last)
15204 return __last;
15205
15206
15207 _ForwardIterator __dest = __first;
15208 ++__first;
15209 while (++__first != __last)
15210 if (!(*__dest == *__first))
15211 *++__dest = *__first;
15212 return ++__dest;
15213 }
15214 # 1378 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15215 template<typename _ForwardIterator, typename _BinaryPredicate>
15216 _ForwardIterator
15217 unique(_ForwardIterator __first, _ForwardIterator __last,
15218 _BinaryPredicate __binary_pred)
15219 {
15220
15221
15222
15223
15224
15225
15226 ;
15227
15228
15229 __first = std::adjacent_find(__first, __last, __binary_pred);
15230 if (__first == __last)
15231 return __last;
15232
15233
15234 _ForwardIterator __dest = __first;
15235 ++__first;
15236 while (++__first != __last)
15237 if (!__binary_pred(*__dest, *__first))
15238 *++__dest = *__first;
15239 return ++__dest;
15240 }
15241 # 1412 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15242 template<typename _BidirectionalIterator>
15243 void
15244 __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
15245 bidirectional_iterator_tag)
15246 {
15247 while (true)
15248 if (__first == __last || __first == --__last)
15249 return;
15250 else
15251 std::iter_swap(__first++, __last);
15252 }
15253 # 1431 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15254 template<typename _RandomAccessIterator>
15255 void
15256 __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
15257 random_access_iterator_tag)
15258 {
15259 while (__first < __last)
15260 std::iter_swap(__first++, --__last);
15261 }
15262 # 1451 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15263 template<typename _BidirectionalIterator>
15264 inline void
15265 reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
15266 {
15267
15268
15269
15270 ;
15271 std::__reverse(__first, __last, std::__iterator_category(__first));
15272 }
15273 # 1477 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15274 template<typename _BidirectionalIterator, typename _OutputIterator>
15275 _OutputIterator
15276 reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
15277 _OutputIterator __result)
15278 {
15279
15280
15281
15282
15283
15284 ;
15285
15286 while (__first != __last)
15287 {
15288 --__last;
15289 *__result = *__last;
15290 ++__result;
15291 }
15292 return __result;
15293 }
15294 # 1505 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15295 template<typename _EuclideanRingElement>
15296 _EuclideanRingElement
15297 __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
15298 {
15299 while (__n != 0)
15300 {
15301 _EuclideanRingElement __t = __m % __n;
15302 __m = __n;
15303 __n = __t;
15304 }
15305 return __m;
15306 }
15307
15308
15309
15310
15311
15312
15313 template<typename _ForwardIterator>
15314 void
15315 __rotate(_ForwardIterator __first,
15316 _ForwardIterator __middle,
15317 _ForwardIterator __last,
15318 forward_iterator_tag)
15319 {
15320 if ((__first == __middle) || (__last == __middle))
15321 return;
15322
15323 _ForwardIterator __first2 = __middle;
15324 do
15325 {
15326 swap(*__first++, *__first2++);
15327 if (__first == __middle)
15328 __middle = __first2;
15329 }
15330 while (__first2 != __last);
15331
15332 __first2 = __middle;
15333
15334 while (__first2 != __last)
15335 {
15336 swap(*__first++, *__first2++);
15337 if (__first == __middle)
15338 __middle = __first2;
15339 else if (__first2 == __last)
15340 __first2 = __middle;
15341 }
15342 }
15343
15344
15345
15346
15347
15348
15349 template<typename _BidirectionalIterator>
15350 void
15351 __rotate(_BidirectionalIterator __first,
15352 _BidirectionalIterator __middle,
15353 _BidirectionalIterator __last,
15354 bidirectional_iterator_tag)
15355 {
15356
15357
15358
15359
15360 if ((__first == __middle) || (__last == __middle))
15361 return;
15362
15363 std::__reverse(__first, __middle, bidirectional_iterator_tag());
15364 std::__reverse(__middle, __last, bidirectional_iterator_tag());
15365
15366 while (__first != __middle && __middle != __last)
15367 swap(*__first++, *--__last);
15368
15369 if (__first == __middle)
15370 std::__reverse(__middle, __last, bidirectional_iterator_tag());
15371 else
15372 std::__reverse(__first, __middle, bidirectional_iterator_tag());
15373 }
15374
15375
15376
15377
15378
15379
15380 template<typename _RandomAccessIterator>
15381 void
15382 __rotate(_RandomAccessIterator __first,
15383 _RandomAccessIterator __middle,
15384 _RandomAccessIterator __last,
15385 random_access_iterator_tag)
15386 {
15387
15388
15389
15390
15391 if ((__first == __middle) || (__last == __middle))
15392 return;
15393
15394 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
15395 _Distance;
15396 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15397 _ValueType;
15398
15399 const _Distance __n = __last - __first;
15400 const _Distance __k = __middle - __first;
15401 const _Distance __l = __n - __k;
15402
15403 if (__k == __l)
15404 {
15405 std::swap_ranges(__first, __middle, __middle);
15406 return;
15407 }
15408
15409 const _Distance __d = __gcd(__n, __k);
15410
15411 for (_Distance __i = 0; __i < __d; __i++)
15412 {
15413 const _ValueType __tmp = *__first;
15414 _RandomAccessIterator __p = __first;
15415
15416 if (__k < __l)
15417 {
15418 for (_Distance __j = 0; __j < __l / __d; __j++)
15419 {
15420 if (__p > __first + __l)
15421 {
15422 *__p = *(__p - __l);
15423 __p -= __l;
15424 }
15425
15426 *__p = *(__p + __k);
15427 __p += __k;
15428 }
15429 }
15430 else
15431 {
15432 for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
15433 {
15434 if (__p < __last - __k)
15435 {
15436 *__p = *(__p + __k);
15437 __p += __k;
15438 }
15439 *__p = * (__p - __l);
15440 __p -= __l;
15441 }
15442 }
15443
15444 *__p = __tmp;
15445 ++__first;
15446 }
15447 }
15448 # 1677 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15449 template<typename _ForwardIterator>
15450 inline void
15451 rotate(_ForwardIterator __first, _ForwardIterator __middle,
15452 _ForwardIterator __last)
15453 {
15454
15455
15456
15457 ;
15458 ;
15459
15460 typedef typename iterator_traits<_ForwardIterator>::iterator_category
15461 _IterType;
15462 std::__rotate(__first, __middle, __last, _IterType());
15463 }
15464 # 1710 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15465 template<typename _ForwardIterator, typename _OutputIterator>
15466 _OutputIterator
15467 rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
15468 _ForwardIterator __last, _OutputIterator __result)
15469 {
15470
15471
15472
15473
15474 ;
15475 ;
15476
15477 return std::copy(__first, __middle, copy(__middle, __last, __result));
15478 }
15479 # 1735 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15480 template<typename _RandomAccessIterator>
15481 inline void
15482 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
15483 {
15484
15485
15486
15487 ;
15488
15489 if (__first != __last)
15490 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15491 std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
15492 }
15493 # 1762 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15494 template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
15495 void
15496 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
15497 _RandomNumberGenerator& __rand)
15498 {
15499
15500
15501
15502 ;
15503
15504 if (__first == __last)
15505 return;
15506 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15507 std::iter_swap(__i, __first + __rand((__i - __first) + 1));
15508 }
15509
15510
15511
15512
15513
15514
15515
15516 template<typename _ForwardIterator, typename _Predicate>
15517 _ForwardIterator
15518 __partition(_ForwardIterator __first, _ForwardIterator __last,
15519 _Predicate __pred,
15520 forward_iterator_tag)
15521 {
15522 if (__first == __last)
15523 return __first;
15524
15525 while (__pred(*__first))
15526 if (++__first == __last)
15527 return __first;
15528
15529 _ForwardIterator __next = __first;
15530
15531 while (++__next != __last)
15532 if (__pred(*__next))
15533 {
15534 swap(*__first, *__next);
15535 ++__first;
15536 }
15537
15538 return __first;
15539 }
15540
15541
15542
15543
15544
15545
15546 template<typename _BidirectionalIterator, typename _Predicate>
15547 _BidirectionalIterator
15548 __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
15549 _Predicate __pred,
15550 bidirectional_iterator_tag)
15551 {
15552 while (true)
15553 {
15554 while (true)
15555 if (__first == __last)
15556 return __first;
15557 else if (__pred(*__first))
15558 ++__first;
15559 else
15560 break;
15561 --__last;
15562 while (true)
15563 if (__first == __last)
15564 return __first;
15565 else if (!__pred(*__last))
15566 --__last;
15567 else
15568 break;
15569 std::iter_swap(__first, __last);
15570 ++__first;
15571 }
15572 }
15573 # 1856 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15574 template<typename _ForwardIterator, typename _Predicate>
15575 inline _ForwardIterator
15576 partition(_ForwardIterator __first, _ForwardIterator __last,
15577 _Predicate __pred)
15578 {
15579
15580
15581
15582
15583
15584 ;
15585
15586 return std::__partition(__first, __last, __pred,
15587 std::__iterator_category(__first));
15588 }
15589
15590
15591
15592
15593
15594
15595
15596 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
15597 _ForwardIterator
15598 __inplace_stable_partition(_ForwardIterator __first,
15599 _ForwardIterator __last,
15600 _Predicate __pred, _Distance __len)
15601 {
15602 if (__len == 1)
15603 return __pred(*__first) ? __last : __first;
15604 _ForwardIterator __middle = __first;
15605 std::advance(__middle, __len / 2);
15606 _ForwardIterator __begin = std::__inplace_stable_partition(__first,
15607 __middle,
15608 __pred,
15609 __len / 2);
15610 _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
15611 __pred,
15612 __len
15613 - __len / 2);
15614 std::rotate(__begin, __middle, __end);
15615 std::advance(__begin, std::distance(__middle, __end));
15616 return __begin;
15617 }
15618
15619
15620
15621
15622
15623
15624 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
15625 typename _Distance>
15626 _ForwardIterator
15627 __stable_partition_adaptive(_ForwardIterator __first,
15628 _ForwardIterator __last,
15629 _Predicate __pred, _Distance __len,
15630 _Pointer __buffer,
15631 _Distance __buffer_size)
15632 {
15633 if (__len <= __buffer_size)
15634 {
15635 _ForwardIterator __result1 = __first;
15636 _Pointer __result2 = __buffer;
15637 for ( ; __first != __last ; ++__first)
15638 if (__pred(*__first))
15639 {
15640 *__result1 = *__first;
15641 ++__result1;
15642 }
15643 else
15644 {
15645 *__result2 = *__first;
15646 ++__result2;
15647 }
15648 std::copy(__buffer, __result2, __result1);
15649 return __result1;
15650 }
15651 else
15652 {
15653 _ForwardIterator __middle = __first;
15654 std::advance(__middle, __len / 2);
15655 _ForwardIterator __begin =
15656 std::__stable_partition_adaptive(__first, __middle, __pred,
15657 __len / 2, __buffer,
15658 __buffer_size);
15659 _ForwardIterator __end =
15660 std::__stable_partition_adaptive(__middle, __last, __pred,
15661 __len - __len / 2,
15662 __buffer, __buffer_size);
15663 std::rotate(__begin, __middle, __end);
15664 std::advance(__begin, std::distance(__middle, __end));
15665 return __begin;
15666 }
15667 }
15668 # 1967 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15669 template<typename _ForwardIterator, typename _Predicate>
15670 _ForwardIterator
15671 stable_partition(_ForwardIterator __first, _ForwardIterator __last,
15672 _Predicate __pred)
15673 {
15674
15675
15676
15677
15678
15679 ;
15680
15681 if (__first == __last)
15682 return __first;
15683 else
15684 {
15685 typedef typename iterator_traits<_ForwardIterator>::value_type
15686 _ValueType;
15687 typedef typename iterator_traits<_ForwardIterator>::difference_type
15688 _DistanceType;
15689
15690 _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
15691 __last);
15692 if (__buf.size() > 0)
15693 return
15694 std::__stable_partition_adaptive(__first, __last, __pred,
15695 _DistanceType(__buf.requested_size()),
15696 __buf.begin(), __buf.size());
15697 else
15698 return
15699 std::__inplace_stable_partition(__first, __last, __pred,
15700 _DistanceType(__buf.requested_size()));
15701 }
15702 }
15703
15704
15705
15706
15707
15708
15709 template<typename _RandomAccessIterator, typename _Tp>
15710 _RandomAccessIterator
15711 __unguarded_partition(_RandomAccessIterator __first,
15712 _RandomAccessIterator __last, _Tp __pivot)
15713 {
15714 while (true)
15715 {
15716 while (*__first < __pivot)
15717 ++__first;
15718 --__last;
15719 while (__pivot < *__last)
15720 --__last;
15721 if (!(__first < __last))
15722 return __first;
15723 std::iter_swap(__first, __last);
15724 ++__first;
15725 }
15726 }
15727
15728
15729
15730
15731
15732
15733 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
15734 _RandomAccessIterator
15735 __unguarded_partition(_RandomAccessIterator __first,
15736 _RandomAccessIterator __last,
15737 _Tp __pivot, _Compare __comp)
15738 {
15739 while (true)
15740 {
15741 while (__comp(*__first, __pivot))
15742 ++__first;
15743 --__last;
15744 while (__comp(__pivot, *__last))
15745 --__last;
15746 if (!(__first < __last))
15747 return __first;
15748 std::iter_swap(__first, __last);
15749 ++__first;
15750 }
15751 }
15752
15753
15754
15755
15756
15757
15758
15759 enum { _S_threshold = 16 };
15760
15761
15762
15763
15764
15765
15766 template<typename _RandomAccessIterator, typename _Tp>
15767 void
15768 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
15769 {
15770 _RandomAccessIterator __next = __last;
15771 --__next;
15772 while (__val < *__next)
15773 {
15774 *__last = *__next;
15775 __last = __next;
15776 --__next;
15777 }
15778 *__last = __val;
15779 }
15780
15781
15782
15783
15784
15785
15786 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
15787 void
15788 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
15789 _Compare __comp)
15790 {
15791 _RandomAccessIterator __next = __last;
15792 --__next;
15793 while (__comp(__val, *__next))
15794 {
15795 *__last = *__next;
15796 __last = __next;
15797 --__next;
15798 }
15799 *__last = __val;
15800 }
15801
15802
15803
15804
15805
15806
15807 template<typename _RandomAccessIterator>
15808 void
15809 __insertion_sort(_RandomAccessIterator __first,
15810 _RandomAccessIterator __last)
15811 {
15812 if (__first == __last)
15813 return;
15814
15815 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15816 {
15817 typename iterator_traits<_RandomAccessIterator>::value_type
15818 __val = *__i;
15819 if (__val < *__first)
15820 {
15821 std::copy_backward(__first, __i, __i + 1);
15822 *__first = __val;
15823 }
15824 else
15825 std::__unguarded_linear_insert(__i, __val);
15826 }
15827 }
15828
15829
15830
15831
15832
15833
15834 template<typename _RandomAccessIterator, typename _Compare>
15835 void
15836 __insertion_sort(_RandomAccessIterator __first,
15837 _RandomAccessIterator __last, _Compare __comp)
15838 {
15839 if (__first == __last) return;
15840
15841 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
15842 {
15843 typename iterator_traits<_RandomAccessIterator>::value_type
15844 __val = *__i;
15845 if (__comp(__val, *__first))
15846 {
15847 std::copy_backward(__first, __i, __i + 1);
15848 *__first = __val;
15849 }
15850 else
15851 std::__unguarded_linear_insert(__i, __val, __comp);
15852 }
15853 }
15854
15855
15856
15857
15858
15859
15860 template<typename _RandomAccessIterator>
15861 inline void
15862 __unguarded_insertion_sort(_RandomAccessIterator __first,
15863 _RandomAccessIterator __last)
15864 {
15865 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15866 _ValueType;
15867
15868 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
15869 std::__unguarded_linear_insert(__i, _ValueType(*__i));
15870 }
15871
15872
15873
15874
15875
15876
15877 template<typename _RandomAccessIterator, typename _Compare>
15878 inline void
15879 __unguarded_insertion_sort(_RandomAccessIterator __first,
15880 _RandomAccessIterator __last, _Compare __comp)
15881 {
15882 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15883 _ValueType;
15884
15885 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
15886 std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
15887 }
15888
15889
15890
15891
15892
15893
15894 template<typename _RandomAccessIterator>
15895 void
15896 __final_insertion_sort(_RandomAccessIterator __first,
15897 _RandomAccessIterator __last)
15898 {
15899 if (__last - __first > _S_threshold)
15900 {
15901 std::__insertion_sort(__first, __first + _S_threshold);
15902 std::__unguarded_insertion_sort(__first + _S_threshold, __last);
15903 }
15904 else
15905 std::__insertion_sort(__first, __last);
15906 }
15907
15908
15909
15910
15911
15912
15913 template<typename _RandomAccessIterator, typename _Compare>
15914 void
15915 __final_insertion_sort(_RandomAccessIterator __first,
15916 _RandomAccessIterator __last, _Compare __comp)
15917 {
15918 if (__last - __first > _S_threshold)
15919 {
15920 std::__insertion_sort(__first, __first + _S_threshold, __comp);
15921 std::__unguarded_insertion_sort(__first + _S_threshold, __last,
15922 __comp);
15923 }
15924 else
15925 std::__insertion_sort(__first, __last, __comp);
15926 }
15927
15928
15929
15930
15931
15932
15933 template<typename _Size>
15934 inline _Size
15935 __lg(_Size __n)
15936 {
15937 _Size __k;
15938 for (__k = 0; __n != 1; __n >>= 1)
15939 ++__k;
15940 return __k;
15941 }
15942 # 2256 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15943 template<typename _RandomAccessIterator>
15944 void
15945 partial_sort(_RandomAccessIterator __first,
15946 _RandomAccessIterator __middle,
15947 _RandomAccessIterator __last)
15948 {
15949 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15950 _ValueType;
15951
15952
15953
15954
15955
15956 ;
15957 ;
15958
15959 std::make_heap(__first, __middle);
15960 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
15961 if (*__i < *__first)
15962 std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
15963 std::sort_heap(__first, __middle);
15964 }
15965 # 2297 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15966 template<typename _RandomAccessIterator, typename _Compare>
15967 void
15968 partial_sort(_RandomAccessIterator __first,
15969 _RandomAccessIterator __middle,
15970 _RandomAccessIterator __last,
15971 _Compare __comp)
15972 {
15973 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15974 _ValueType;
15975
15976
15977
15978
15979
15980
15981 ;
15982 ;
15983
15984 std::make_heap(__first, __middle, __comp);
15985 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
15986 if (__comp(*__i, *__first))
15987 std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
15988 std::sort_heap(__first, __middle, __comp);
15989 }
15990 # 2339 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
15991 template<typename _InputIterator, typename _RandomAccessIterator>
15992 _RandomAccessIterator
15993 partial_sort_copy(_InputIterator __first, _InputIterator __last,
15994 _RandomAccessIterator __result_first,
15995 _RandomAccessIterator __result_last)
15996 {
15997 typedef typename iterator_traits<_InputIterator>::value_type
15998 _InputValueType;
15999 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16000 _OutputValueType;
16001 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16002 _DistanceType;
16003
16004
16005
16006
16007
16008
16009
16010 ;
16011 ;
16012
16013 if (__result_first == __result_last)
16014 return __result_last;
16015 _RandomAccessIterator __result_real_last = __result_first;
16016 while(__first != __last && __result_real_last != __result_last)
16017 {
16018 *__result_real_last = *__first;
16019 ++__result_real_last;
16020 ++__first;
16021 }
16022 std::make_heap(__result_first, __result_real_last);
16023 while (__first != __last)
16024 {
16025 if (*__first < *__result_first)
16026 std::__adjust_heap(__result_first, _DistanceType(0),
16027 _DistanceType(__result_real_last
16028 - __result_first),
16029 _InputValueType(*__first));
16030 ++__first;
16031 }
16032 std::sort_heap(__result_first, __result_real_last);
16033 return __result_real_last;
16034 }
16035 # 2403 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16036 template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
16037 _RandomAccessIterator
16038 partial_sort_copy(_InputIterator __first, _InputIterator __last,
16039 _RandomAccessIterator __result_first,
16040 _RandomAccessIterator __result_last,
16041 _Compare __comp)
16042 {
16043 typedef typename iterator_traits<_InputIterator>::value_type
16044 _InputValueType;
16045 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16046 _OutputValueType;
16047 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16048 _DistanceType;
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058 ;
16059 ;
16060
16061 if (__result_first == __result_last)
16062 return __result_last;
16063 _RandomAccessIterator __result_real_last = __result_first;
16064 while(__first != __last && __result_real_last != __result_last)
16065 {
16066 *__result_real_last = *__first;
16067 ++__result_real_last;
16068 ++__first;
16069 }
16070 std::make_heap(__result_first, __result_real_last, __comp);
16071 while (__first != __last)
16072 {
16073 if (__comp(*__first, *__result_first))
16074 std::__adjust_heap(__result_first, _DistanceType(0),
16075 _DistanceType(__result_real_last
16076 - __result_first),
16077 _InputValueType(*__first),
16078 __comp);
16079 ++__first;
16080 }
16081 std::sort_heap(__result_first, __result_real_last, __comp);
16082 return __result_real_last;
16083 }
16084
16085
16086
16087
16088
16089
16090 template<typename _RandomAccessIterator, typename _Size>
16091 void
16092 __introsort_loop(_RandomAccessIterator __first,
16093 _RandomAccessIterator __last,
16094 _Size __depth_limit)
16095 {
16096 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16097 _ValueType;
16098
16099 while (__last - __first > _S_threshold)
16100 {
16101 if (__depth_limit == 0)
16102 {
16103 std::partial_sort(__first, __last, __last);
16104 return;
16105 }
16106 --__depth_limit;
16107 _RandomAccessIterator __cut =
16108 std::__unguarded_partition(__first, __last,
16109 _ValueType(std::__median(*__first,
16110 *(__first
16111 + (__last
16112 - __first)
16113 / 2),
16114 *(__last
16115 - 1))));
16116 std::__introsort_loop(__cut, __last, __depth_limit);
16117 __last = __cut;
16118 }
16119 }
16120
16121
16122
16123
16124
16125
16126 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
16127 void
16128 __introsort_loop(_RandomAccessIterator __first,
16129 _RandomAccessIterator __last,
16130 _Size __depth_limit, _Compare __comp)
16131 {
16132 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16133 _ValueType;
16134
16135 while (__last - __first > _S_threshold)
16136 {
16137 if (__depth_limit == 0)
16138 {
16139 std::partial_sort(__first, __last, __last, __comp);
16140 return;
16141 }
16142 --__depth_limit;
16143 _RandomAccessIterator __cut =
16144 std::__unguarded_partition(__first, __last,
16145 _ValueType(std::__median(*__first,
16146 *(__first
16147 + (__last
16148 - __first)
16149 / 2),
16150 *(__last - 1),
16151 __comp)),
16152 __comp);
16153 std::__introsort_loop(__cut, __last, __depth_limit, __comp);
16154 __last = __cut;
16155 }
16156 }
16157 # 2538 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16158 template<typename _RandomAccessIterator>
16159 inline void
16160 sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
16161 {
16162 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16163 _ValueType;
16164
16165
16166
16167
16168
16169 ;
16170
16171 if (__first != __last)
16172 {
16173 std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
16174 std::__final_insertion_sort(__first, __last);
16175 }
16176 }
16177 # 2572 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16178 template<typename _RandomAccessIterator, typename _Compare>
16179 inline void
16180 sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
16181 _Compare __comp)
16182 {
16183 typedef typename iterator_traits<_RandomAccessIterator>::value_type
16184 _ValueType;
16185
16186
16187
16188
16189
16190
16191 ;
16192
16193 if (__first != __last)
16194 {
16195 std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
16196 __comp);
16197 std::__final_insertion_sort(__first, __last, __comp);
16198 }
16199 }
16200 # 2605 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16201 template<typename _ForwardIterator, typename _Tp>
16202 _ForwardIterator
16203 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
16204 const _Tp& __val)
16205 {
16206 typedef typename iterator_traits<_ForwardIterator>::value_type
16207 _ValueType;
16208 typedef typename iterator_traits<_ForwardIterator>::difference_type
16209 _DistanceType;
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219 ;
16220
16221 _DistanceType __len = std::distance(__first, __last);
16222 _DistanceType __half;
16223 _ForwardIterator __middle;
16224
16225 while (__len > 0)
16226 {
16227 __half = __len >> 1;
16228 __middle = __first;
16229 std::advance(__middle, __half);
16230 if (*__middle < __val)
16231 {
16232 __first = __middle;
16233 ++__first;
16234 __len = __len - __half - 1;
16235 }
16236 else
16237 __len = __half;
16238 }
16239 return __first;
16240 }
16241 # 2660 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16242 template<typename _ForwardIterator, typename _Tp, typename _Compare>
16243 _ForwardIterator
16244 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
16245 const _Tp& __val, _Compare __comp)
16246 {
16247 typedef typename iterator_traits<_ForwardIterator>::value_type
16248 _ValueType;
16249 typedef typename iterator_traits<_ForwardIterator>::difference_type
16250 _DistanceType;
16251
16252
16253
16254
16255
16256 ;
16257
16258 _DistanceType __len = std::distance(__first, __last);
16259 _DistanceType __half;
16260 _ForwardIterator __middle;
16261
16262 while (__len > 0)
16263 {
16264 __half = __len >> 1;
16265 __middle = __first;
16266 std::advance(__middle, __half);
16267 if (__comp(*__middle, __val))
16268 {
16269 __first = __middle;
16270 ++__first;
16271 __len = __len - __half - 1;
16272 }
16273 else
16274 __len = __half;
16275 }
16276 return __first;
16277 }
16278 # 2707 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16279 template<typename _ForwardIterator, typename _Tp>
16280 _ForwardIterator
16281 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
16282 const _Tp& __val)
16283 {
16284 typedef typename iterator_traits<_ForwardIterator>::value_type
16285 _ValueType;
16286 typedef typename iterator_traits<_ForwardIterator>::difference_type
16287 _DistanceType;
16288
16289
16290
16291
16292
16293
16294 ;
16295
16296 _DistanceType __len = std::distance(__first, __last);
16297 _DistanceType __half;
16298 _ForwardIterator __middle;
16299
16300 while (__len > 0)
16301 {
16302 __half = __len >> 1;
16303 __middle = __first;
16304 std::advance(__middle, __half);
16305 if (__val < *__middle)
16306 __len = __half;
16307 else
16308 {
16309 __first = __middle;
16310 ++__first;
16311 __len = __len - __half - 1;
16312 }
16313 }
16314 return __first;
16315 }
16316 # 2759 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16317 template<typename _ForwardIterator, typename _Tp, typename _Compare>
16318 _ForwardIterator
16319 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
16320 const _Tp& __val, _Compare __comp)
16321 {
16322 typedef typename iterator_traits<_ForwardIterator>::value_type
16323 _ValueType;
16324 typedef typename iterator_traits<_ForwardIterator>::difference_type
16325 _DistanceType;
16326
16327
16328
16329
16330
16331 ;
16332
16333 _DistanceType __len = std::distance(__first, __last);
16334 _DistanceType __half;
16335 _ForwardIterator __middle;
16336
16337 while (__len > 0)
16338 {
16339 __half = __len >> 1;
16340 __middle = __first;
16341 std::advance(__middle, __half);
16342 if (__comp(__val, *__middle))
16343 __len = __half;
16344 else
16345 {
16346 __first = __middle;
16347 ++__first;
16348 __len = __len - __half - 1;
16349 }
16350 }
16351 return __first;
16352 }
16353
16354
16355
16356
16357
16358
16359 template<typename _BidirectionalIterator, typename _Distance>
16360 void
16361 __merge_without_buffer(_BidirectionalIterator __first,
16362 _BidirectionalIterator __middle,
16363 _BidirectionalIterator __last,
16364 _Distance __len1, _Distance __len2)
16365 {
16366 if (__len1 == 0 || __len2 == 0)
16367 return;
16368 if (__len1 + __len2 == 2)
16369 {
16370 if (*__middle < *__first)
16371 std::iter_swap(__first, __middle);
16372 return;
16373 }
16374 _BidirectionalIterator __first_cut = __first;
16375 _BidirectionalIterator __second_cut = __middle;
16376 _Distance __len11 = 0;
16377 _Distance __len22 = 0;
16378 if (__len1 > __len2)
16379 {
16380 __len11 = __len1 / 2;
16381 std::advance(__first_cut, __len11);
16382 __second_cut = std::lower_bound(__middle, __last, *__first_cut);
16383 __len22 = std::distance(__middle, __second_cut);
16384 }
16385 else
16386 {
16387 __len22 = __len2 / 2;
16388 std::advance(__second_cut, __len22);
16389 __first_cut = std::upper_bound(__first, __middle, *__second_cut);
16390 __len11 = std::distance(__first, __first_cut);
16391 }
16392 std::rotate(__first_cut, __middle, __second_cut);
16393 _BidirectionalIterator __new_middle = __first_cut;
16394 std::advance(__new_middle, std::distance(__middle, __second_cut));
16395 std::__merge_without_buffer(__first, __first_cut, __new_middle,
16396 __len11, __len22);
16397 std::__merge_without_buffer(__new_middle, __second_cut, __last,
16398 __len1 - __len11, __len2 - __len22);
16399 }
16400
16401
16402
16403
16404
16405
16406 template<typename _BidirectionalIterator, typename _Distance,
16407 typename _Compare>
16408 void
16409 __merge_without_buffer(_BidirectionalIterator __first,
16410 _BidirectionalIterator __middle,
16411 _BidirectionalIterator __last,
16412 _Distance __len1, _Distance __len2,
16413 _Compare __comp)
16414 {
16415 if (__len1 == 0 || __len2 == 0)
16416 return;
16417 if (__len1 + __len2 == 2)
16418 {
16419 if (__comp(*__middle, *__first))
16420 std::iter_swap(__first, __middle);
16421 return;
16422 }
16423 _BidirectionalIterator __first_cut = __first;
16424 _BidirectionalIterator __second_cut = __middle;
16425 _Distance __len11 = 0;
16426 _Distance __len22 = 0;
16427 if (__len1 > __len2)
16428 {
16429 __len11 = __len1 / 2;
16430 std::advance(__first_cut, __len11);
16431 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
16432 __comp);
16433 __len22 = std::distance(__middle, __second_cut);
16434 }
16435 else
16436 {
16437 __len22 = __len2 / 2;
16438 std::advance(__second_cut, __len22);
16439 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
16440 __comp);
16441 __len11 = std::distance(__first, __first_cut);
16442 }
16443 std::rotate(__first_cut, __middle, __second_cut);
16444 _BidirectionalIterator __new_middle = __first_cut;
16445 std::advance(__new_middle, std::distance(__middle, __second_cut));
16446 std::__merge_without_buffer(__first, __first_cut, __new_middle,
16447 __len11, __len22, __comp);
16448 std::__merge_without_buffer(__new_middle, __second_cut, __last,
16449 __len1 - __len11, __len2 - __len22, __comp);
16450 }
16451
16452
16453
16454
16455
16456
16457 template<typename _RandomAccessIterator>
16458 void
16459 __inplace_stable_sort(_RandomAccessIterator __first,
16460 _RandomAccessIterator __last)
16461 {
16462 if (__last - __first < 15)
16463 {
16464 std::__insertion_sort(__first, __last);
16465 return;
16466 }
16467 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
16468 std::__inplace_stable_sort(__first, __middle);
16469 std::__inplace_stable_sort(__middle, __last);
16470 std::__merge_without_buffer(__first, __middle, __last,
16471 __middle - __first,
16472 __last - __middle);
16473 }
16474
16475
16476
16477
16478
16479
16480 template<typename _RandomAccessIterator, typename _Compare>
16481 void
16482 __inplace_stable_sort(_RandomAccessIterator __first,
16483 _RandomAccessIterator __last, _Compare __comp)
16484 {
16485 if (__last - __first < 15)
16486 {
16487 std::__insertion_sort(__first, __last, __comp);
16488 return;
16489 }
16490 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
16491 std::__inplace_stable_sort(__first, __middle, __comp);
16492 std::__inplace_stable_sort(__middle, __last, __comp);
16493 std::__merge_without_buffer(__first, __middle, __last,
16494 __middle - __first,
16495 __last - __middle,
16496 __comp);
16497 }
16498 # 2957 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16499 template<typename _InputIterator1, typename _InputIterator2,
16500 typename _OutputIterator>
16501 _OutputIterator
16502 merge(_InputIterator1 __first1, _InputIterator1 __last1,
16503 _InputIterator2 __first2, _InputIterator2 __last2,
16504 _OutputIterator __result)
16505 {
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516 ;
16517 ;
16518
16519 while (__first1 != __last1 && __first2 != __last2)
16520 {
16521 if (*__first2 < *__first1)
16522 {
16523 *__result = *__first2;
16524 ++__first2;
16525 }
16526 else
16527 {
16528 *__result = *__first1;
16529 ++__first1;
16530 }
16531 ++__result;
16532 }
16533 return std::copy(__first2, __last2, std::copy(__first1, __last1,
16534 __result));
16535 }
16536 # 3015 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16537 template<typename _InputIterator1, typename _InputIterator2,
16538 typename _OutputIterator, typename _Compare>
16539 _OutputIterator
16540 merge(_InputIterator1 __first1, _InputIterator1 __last1,
16541 _InputIterator2 __first2, _InputIterator2 __last2,
16542 _OutputIterator __result, _Compare __comp)
16543 {
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555 ;
16556 ;
16557
16558 while (__first1 != __last1 && __first2 != __last2)
16559 {
16560 if (__comp(*__first2, *__first1))
16561 {
16562 *__result = *__first2;
16563 ++__first2;
16564 }
16565 else
16566 {
16567 *__result = *__first1;
16568 ++__first1;
16569 }
16570 ++__result;
16571 }
16572 return std::copy(__first2, __last2, std::copy(__first1, __last1,
16573 __result));
16574 }
16575
16576 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
16577 typename _Distance>
16578 void
16579 __merge_sort_loop(_RandomAccessIterator1 __first,
16580 _RandomAccessIterator1 __last,
16581 _RandomAccessIterator2 __result,
16582 _Distance __step_size)
16583 {
16584 const _Distance __two_step = 2 * __step_size;
16585
16586 while (__last - __first >= __two_step)
16587 {
16588 __result = std::merge(__first, __first + __step_size,
16589 __first + __step_size, __first + __two_step,
16590 __result);
16591 __first += __two_step;
16592 }
16593
16594 __step_size = std::min(_Distance(__last - __first), __step_size);
16595 std::merge(__first, __first + __step_size, __first + __step_size, __last,
16596 __result);
16597 }
16598
16599 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
16600 typename _Distance, typename _Compare>
16601 void
16602 __merge_sort_loop(_RandomAccessIterator1 __first,
16603 _RandomAccessIterator1 __last,
16604 _RandomAccessIterator2 __result, _Distance __step_size,
16605 _Compare __comp)
16606 {
16607 const _Distance __two_step = 2 * __step_size;
16608
16609 while (__last - __first >= __two_step)
16610 {
16611 __result = std::merge(__first, __first + __step_size,
16612 __first + __step_size, __first + __two_step,
16613 __result,
16614 __comp);
16615 __first += __two_step;
16616 }
16617 __step_size = std::min(_Distance(__last - __first), __step_size);
16618
16619 std::merge(__first, __first + __step_size,
16620 __first + __step_size, __last,
16621 __result,
16622 __comp);
16623 }
16624
16625 enum { _S_chunk_size = 7 };
16626
16627 template<typename _RandomAccessIterator, typename _Distance>
16628 void
16629 __chunk_insertion_sort(_RandomAccessIterator __first,
16630 _RandomAccessIterator __last,
16631 _Distance __chunk_size)
16632 {
16633 while (__last - __first >= __chunk_size)
16634 {
16635 std::__insertion_sort(__first, __first + __chunk_size);
16636 __first += __chunk_size;
16637 }
16638 std::__insertion_sort(__first, __last);
16639 }
16640
16641 template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
16642 void
16643 __chunk_insertion_sort(_RandomAccessIterator __first,
16644 _RandomAccessIterator __last,
16645 _Distance __chunk_size, _Compare __comp)
16646 {
16647 while (__last - __first >= __chunk_size)
16648 {
16649 std::__insertion_sort(__first, __first + __chunk_size, __comp);
16650 __first += __chunk_size;
16651 }
16652 std::__insertion_sort(__first, __last, __comp);
16653 }
16654
16655 template<typename _RandomAccessIterator, typename _Pointer>
16656 void
16657 __merge_sort_with_buffer(_RandomAccessIterator __first,
16658 _RandomAccessIterator __last,
16659 _Pointer __buffer)
16660 {
16661 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16662 _Distance;
16663
16664 const _Distance __len = __last - __first;
16665 const _Pointer __buffer_last = __buffer + __len;
16666
16667 _Distance __step_size = _S_chunk_size;
16668 std::__chunk_insertion_sort(__first, __last, __step_size);
16669
16670 while (__step_size < __len)
16671 {
16672 std::__merge_sort_loop(__first, __last, __buffer, __step_size);
16673 __step_size *= 2;
16674 std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
16675 __step_size *= 2;
16676 }
16677 }
16678
16679 template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
16680 void
16681 __merge_sort_with_buffer(_RandomAccessIterator __first,
16682 _RandomAccessIterator __last,
16683 _Pointer __buffer, _Compare __comp)
16684 {
16685 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
16686 _Distance;
16687
16688 const _Distance __len = __last - __first;
16689 const _Pointer __buffer_last = __buffer + __len;
16690
16691 _Distance __step_size = _S_chunk_size;
16692 std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
16693
16694 while (__step_size < __len)
16695 {
16696 std::__merge_sort_loop(__first, __last, __buffer,
16697 __step_size, __comp);
16698 __step_size *= 2;
16699 std::__merge_sort_loop(__buffer, __buffer_last, __first,
16700 __step_size, __comp);
16701 __step_size *= 2;
16702 }
16703 }
16704
16705
16706
16707
16708
16709
16710 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
16711 typename _BidirectionalIterator3>
16712 _BidirectionalIterator3
16713 __merge_backward(_BidirectionalIterator1 __first1,
16714 _BidirectionalIterator1 __last1,
16715 _BidirectionalIterator2 __first2,
16716 _BidirectionalIterator2 __last2,
16717 _BidirectionalIterator3 __result)
16718 {
16719 if (__first1 == __last1)
16720 return std::copy_backward(__first2, __last2, __result);
16721 if (__first2 == __last2)
16722 return std::copy_backward(__first1, __last1, __result);
16723 --__last1;
16724 --__last2;
16725 while (true)
16726 {
16727 if (*__last2 < *__last1)
16728 {
16729 *--__result = *__last1;
16730 if (__first1 == __last1)
16731 return std::copy_backward(__first2, ++__last2, __result);
16732 --__last1;
16733 }
16734 else
16735 {
16736 *--__result = *__last2;
16737 if (__first2 == __last2)
16738 return std::copy_backward(__first1, ++__last1, __result);
16739 --__last2;
16740 }
16741 }
16742 }
16743
16744
16745
16746
16747
16748
16749 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
16750 typename _BidirectionalIterator3, typename _Compare>
16751 _BidirectionalIterator3
16752 __merge_backward(_BidirectionalIterator1 __first1,
16753 _BidirectionalIterator1 __last1,
16754 _BidirectionalIterator2 __first2,
16755 _BidirectionalIterator2 __last2,
16756 _BidirectionalIterator3 __result,
16757 _Compare __comp)
16758 {
16759 if (__first1 == __last1)
16760 return std::copy_backward(__first2, __last2, __result);
16761 if (__first2 == __last2)
16762 return std::copy_backward(__first1, __last1, __result);
16763 --__last1;
16764 --__last2;
16765 while (true)
16766 {
16767 if (__comp(*__last2, *__last1))
16768 {
16769 *--__result = *__last1;
16770 if (__first1 == __last1)
16771 return std::copy_backward(__first2, ++__last2, __result);
16772 --__last1;
16773 }
16774 else
16775 {
16776 *--__result = *__last2;
16777 if (__first2 == __last2)
16778 return std::copy_backward(__first1, ++__last1, __result);
16779 --__last2;
16780 }
16781 }
16782 }
16783
16784
16785
16786
16787
16788
16789 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
16790 typename _Distance>
16791 _BidirectionalIterator1
16792 __rotate_adaptive(_BidirectionalIterator1 __first,
16793 _BidirectionalIterator1 __middle,
16794 _BidirectionalIterator1 __last,
16795 _Distance __len1, _Distance __len2,
16796 _BidirectionalIterator2 __buffer,
16797 _Distance __buffer_size)
16798 {
16799 _BidirectionalIterator2 __buffer_end;
16800 if (__len1 > __len2 && __len2 <= __buffer_size)
16801 {
16802 __buffer_end = std::copy(__middle, __last, __buffer);
16803 std::copy_backward(__first, __middle, __last);
16804 return std::copy(__buffer, __buffer_end, __first);
16805 }
16806 else if (__len1 <= __buffer_size)
16807 {
16808 __buffer_end = std::copy(__first, __middle, __buffer);
16809 std::copy(__middle, __last, __first);
16810 return std::copy_backward(__buffer, __buffer_end, __last);
16811 }
16812 else
16813 {
16814 std::rotate(__first, __middle, __last);
16815 std::advance(__first, std::distance(__middle, __last));
16816 return __first;
16817 }
16818 }
16819
16820
16821
16822
16823
16824
16825 template<typename _BidirectionalIterator, typename _Distance,
16826 typename _Pointer>
16827 void
16828 __merge_adaptive(_BidirectionalIterator __first,
16829 _BidirectionalIterator __middle,
16830 _BidirectionalIterator __last,
16831 _Distance __len1, _Distance __len2,
16832 _Pointer __buffer, _Distance __buffer_size)
16833 {
16834 if (__len1 <= __len2 && __len1 <= __buffer_size)
16835 {
16836 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
16837 std::merge(__buffer, __buffer_end, __middle, __last, __first);
16838 }
16839 else if (__len2 <= __buffer_size)
16840 {
16841 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
16842 std::__merge_backward(__first, __middle, __buffer,
16843 __buffer_end, __last);
16844 }
16845 else
16846 {
16847 _BidirectionalIterator __first_cut = __first;
16848 _BidirectionalIterator __second_cut = __middle;
16849 _Distance __len11 = 0;
16850 _Distance __len22 = 0;
16851 if (__len1 > __len2)
16852 {
16853 __len11 = __len1 / 2;
16854 std::advance(__first_cut, __len11);
16855 __second_cut = std::lower_bound(__middle, __last,
16856 *__first_cut);
16857 __len22 = std::distance(__middle, __second_cut);
16858 }
16859 else
16860 {
16861 __len22 = __len2 / 2;
16862 std::advance(__second_cut, __len22);
16863 __first_cut = std::upper_bound(__first, __middle,
16864 *__second_cut);
16865 __len11 = std::distance(__first, __first_cut);
16866 }
16867 _BidirectionalIterator __new_middle =
16868 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
16869 __len1 - __len11, __len22, __buffer,
16870 __buffer_size);
16871 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
16872 __len22, __buffer, __buffer_size);
16873 std::__merge_adaptive(__new_middle, __second_cut, __last,
16874 __len1 - __len11,
16875 __len2 - __len22, __buffer, __buffer_size);
16876 }
16877 }
16878
16879
16880
16881
16882
16883
16884 template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
16885 typename _Compare>
16886 void
16887 __merge_adaptive(_BidirectionalIterator __first,
16888 _BidirectionalIterator __middle,
16889 _BidirectionalIterator __last,
16890 _Distance __len1, _Distance __len2,
16891 _Pointer __buffer, _Distance __buffer_size,
16892 _Compare __comp)
16893 {
16894 if (__len1 <= __len2 && __len1 <= __buffer_size)
16895 {
16896 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
16897 std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
16898 }
16899 else if (__len2 <= __buffer_size)
16900 {
16901 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
16902 std::__merge_backward(__first, __middle, __buffer, __buffer_end,
16903 __last, __comp);
16904 }
16905 else
16906 {
16907 _BidirectionalIterator __first_cut = __first;
16908 _BidirectionalIterator __second_cut = __middle;
16909 _Distance __len11 = 0;
16910 _Distance __len22 = 0;
16911 if (__len1 > __len2)
16912 {
16913 __len11 = __len1 / 2;
16914 std::advance(__first_cut, __len11);
16915 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
16916 __comp);
16917 __len22 = std::distance(__middle, __second_cut);
16918 }
16919 else
16920 {
16921 __len22 = __len2 / 2;
16922 std::advance(__second_cut, __len22);
16923 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
16924 __comp);
16925 __len11 = std::distance(__first, __first_cut);
16926 }
16927 _BidirectionalIterator __new_middle =
16928 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
16929 __len1 - __len11, __len22, __buffer,
16930 __buffer_size);
16931 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
16932 __len22, __buffer, __buffer_size, __comp);
16933 std::__merge_adaptive(__new_middle, __second_cut, __last,
16934 __len1 - __len11,
16935 __len2 - __len22, __buffer,
16936 __buffer_size, __comp);
16937 }
16938 }
16939 # 3435 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16940 template<typename _BidirectionalIterator>
16941 void
16942 inplace_merge(_BidirectionalIterator __first,
16943 _BidirectionalIterator __middle,
16944 _BidirectionalIterator __last)
16945 {
16946 typedef typename iterator_traits<_BidirectionalIterator>::value_type
16947 _ValueType;
16948 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
16949 _DistanceType;
16950
16951
16952
16953
16954
16955 ;
16956 ;
16957
16958 if (__first == __middle || __middle == __last)
16959 return;
16960
16961 _DistanceType __len1 = std::distance(__first, __middle);
16962 _DistanceType __len2 = std::distance(__middle, __last);
16963
16964 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
16965 __last);
16966 if (__buf.begin() == 0)
16967 std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
16968 else
16969 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
16970 __buf.begin(), _DistanceType(__buf.size()));
16971 }
16972 # 3489 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
16973 template<typename _BidirectionalIterator, typename _Compare>
16974 void
16975 inplace_merge(_BidirectionalIterator __first,
16976 _BidirectionalIterator __middle,
16977 _BidirectionalIterator __last,
16978 _Compare __comp)
16979 {
16980 typedef typename iterator_traits<_BidirectionalIterator>::value_type
16981 _ValueType;
16982 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
16983 _DistanceType;
16984
16985
16986
16987
16988
16989
16990 ;
16991 ;
16992
16993 if (__first == __middle || __middle == __last)
16994 return;
16995
16996 const _DistanceType __len1 = std::distance(__first, __middle);
16997 const _DistanceType __len2 = std::distance(__middle, __last);
16998
16999 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
17000 __last);
17001 if (__buf.begin() == 0)
17002 std::__merge_without_buffer(__first, __middle, __last, __len1,
17003 __len2, __comp);
17004 else
17005 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
17006 __buf.begin(), _DistanceType(__buf.size()),
17007 __comp);
17008 }
17009
17010 template<typename _RandomAccessIterator, typename _Pointer,
17011 typename _Distance>
17012 void
17013 __stable_sort_adaptive(_RandomAccessIterator __first,
17014 _RandomAccessIterator __last,
17015 _Pointer __buffer, _Distance __buffer_size)
17016 {
17017 const _Distance __len = (__last - __first + 1) / 2;
17018 const _RandomAccessIterator __middle = __first + __len;
17019 if (__len > __buffer_size)
17020 {
17021 std::__stable_sort_adaptive(__first, __middle,
17022 __buffer, __buffer_size);
17023 std::__stable_sort_adaptive(__middle, __last,
17024 __buffer, __buffer_size);
17025 }
17026 else
17027 {
17028 std::__merge_sort_with_buffer(__first, __middle, __buffer);
17029 std::__merge_sort_with_buffer(__middle, __last, __buffer);
17030 }
17031 std::__merge_adaptive(__first, __middle, __last,
17032 _Distance(__middle - __first),
17033 _Distance(__last - __middle),
17034 __buffer, __buffer_size);
17035 }
17036
17037 template<typename _RandomAccessIterator, typename _Pointer,
17038 typename _Distance, typename _Compare>
17039 void
17040 __stable_sort_adaptive(_RandomAccessIterator __first,
17041 _RandomAccessIterator __last,
17042 _Pointer __buffer, _Distance __buffer_size,
17043 _Compare __comp)
17044 {
17045 const _Distance __len = (__last - __first + 1) / 2;
17046 const _RandomAccessIterator __middle = __first + __len;
17047 if (__len > __buffer_size)
17048 {
17049 std::__stable_sort_adaptive(__first, __middle, __buffer,
17050 __buffer_size, __comp);
17051 std::__stable_sort_adaptive(__middle, __last, __buffer,
17052 __buffer_size, __comp);
17053 }
17054 else
17055 {
17056 std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
17057 std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
17058 }
17059 std::__merge_adaptive(__first, __middle, __last,
17060 _Distance(__middle - __first),
17061 _Distance(__last - __middle),
17062 __buffer, __buffer_size,
17063 __comp);
17064 }
17065 # 3598 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17066 template<typename _RandomAccessIterator>
17067 inline void
17068 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
17069 {
17070 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17071 _ValueType;
17072 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17073 _DistanceType;
17074
17075
17076
17077
17078
17079 ;
17080
17081 _Temporary_buffer<_RandomAccessIterator, _ValueType>
17082 buf(__first, __last);
17083 if (buf.begin() == 0)
17084 std::__inplace_stable_sort(__first, __last);
17085 else
17086 std::__stable_sort_adaptive(__first, __last, buf.begin(),
17087 _DistanceType(buf.size()));
17088 }
17089 # 3639 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17090 template<typename _RandomAccessIterator, typename _Compare>
17091 inline void
17092 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
17093 _Compare __comp)
17094 {
17095 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17096 _ValueType;
17097 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
17098 _DistanceType;
17099
17100
17101
17102
17103
17104
17105
17106 ;
17107
17108 _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
17109 if (buf.begin() == 0)
17110 std::__inplace_stable_sort(__first, __last, __comp);
17111 else
17112 std::__stable_sort_adaptive(__first, __last, buf.begin(),
17113 _DistanceType(buf.size()), __comp);
17114 }
17115 # 3680 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17116 template<typename _RandomAccessIterator>
17117 void
17118 nth_element(_RandomAccessIterator __first,
17119 _RandomAccessIterator __nth,
17120 _RandomAccessIterator __last)
17121 {
17122 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17123 _ValueType;
17124
17125
17126
17127
17128
17129 ;
17130 ;
17131
17132 while (__last - __first > 3)
17133 {
17134 _RandomAccessIterator __cut =
17135 std::__unguarded_partition(__first, __last,
17136 _ValueType(std::__median(*__first,
17137 *(__first
17138 + (__last
17139 - __first)
17140 / 2),
17141 *(__last
17142 - 1))));
17143 if (__cut <= __nth)
17144 __first = __cut;
17145 else
17146 __last = __cut;
17147 }
17148 std::__insertion_sort(__first, __last);
17149 }
17150 # 3731 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17151 template<typename _RandomAccessIterator, typename _Compare>
17152 void
17153 nth_element(_RandomAccessIterator __first,
17154 _RandomAccessIterator __nth,
17155 _RandomAccessIterator __last,
17156 _Compare __comp)
17157 {
17158 typedef typename iterator_traits<_RandomAccessIterator>::value_type
17159 _ValueType;
17160
17161
17162
17163
17164
17165
17166 ;
17167 ;
17168
17169 while (__last - __first > 3)
17170 {
17171 _RandomAccessIterator __cut =
17172 std::__unguarded_partition(__first, __last,
17173 _ValueType(std::__median(*__first,
17174 *(__first
17175 + (__last
17176 - __first)
17177 / 2),
17178 *(__last - 1),
17179 __comp)), __comp);
17180 if (__cut <= __nth)
17181 __first = __cut;
17182 else
17183 __last = __cut;
17184 }
17185 std::__insertion_sort(__first, __last, __comp);
17186 }
17187 # 3784 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17188 template<typename _ForwardIterator, typename _Tp>
17189 pair<_ForwardIterator, _ForwardIterator>
17190 equal_range(_ForwardIterator __first, _ForwardIterator __last,
17191 const _Tp& __val)
17192 {
17193 typedef typename iterator_traits<_ForwardIterator>::value_type
17194 _ValueType;
17195 typedef typename iterator_traits<_ForwardIterator>::difference_type
17196 _DistanceType;
17197
17198
17199
17200
17201
17202
17203 ;
17204
17205 _DistanceType __len = std::distance(__first, __last);
17206 _DistanceType __half;
17207 _ForwardIterator __middle, __left, __right;
17208
17209 while (__len > 0)
17210 {
17211 __half = __len >> 1;
17212 __middle = __first;
17213 std::advance(__middle, __half);
17214 if (*__middle < __val)
17215 {
17216 __first = __middle;
17217 ++__first;
17218 __len = __len - __half - 1;
17219 }
17220 else if (__val < *__middle)
17221 __len = __half;
17222 else
17223 {
17224 __left = std::lower_bound(__first, __middle, __val);
17225 std::advance(__first, __len);
17226 __right = std::upper_bound(++__middle, __first, __val);
17227 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
17228 }
17229 }
17230 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
17231 }
17232 # 3846 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17233 template<typename _ForwardIterator, typename _Tp, typename _Compare>
17234 pair<_ForwardIterator, _ForwardIterator>
17235 equal_range(_ForwardIterator __first, _ForwardIterator __last,
17236 const _Tp& __val,
17237 _Compare __comp)
17238 {
17239 typedef typename iterator_traits<_ForwardIterator>::value_type
17240 _ValueType;
17241 typedef typename iterator_traits<_ForwardIterator>::difference_type
17242 _DistanceType;
17243
17244
17245
17246
17247
17248
17249
17250 ;
17251
17252 _DistanceType __len = std::distance(__first, __last);
17253 _DistanceType __half;
17254 _ForwardIterator __middle, __left, __right;
17255
17256 while (__len > 0)
17257 {
17258 __half = __len >> 1;
17259 __middle = __first;
17260 std::advance(__middle, __half);
17261 if (__comp(*__middle, __val))
17262 {
17263 __first = __middle;
17264 ++__first;
17265 __len = __len - __half - 1;
17266 }
17267 else if (__comp(__val, *__middle))
17268 __len = __half;
17269 else
17270 {
17271 __left = std::lower_bound(__first, __middle, __val, __comp);
17272 std::advance(__first, __len);
17273 __right = std::upper_bound(++__middle, __first, __val, __comp);
17274 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
17275 }
17276 }
17277 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
17278 }
17279 # 3904 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17280 template<typename _ForwardIterator, typename _Tp>
17281 bool
17282 binary_search(_ForwardIterator __first, _ForwardIterator __last,
17283 const _Tp& __val)
17284 {
17285
17286
17287
17288
17289
17290
17291 ;
17292
17293 _ForwardIterator __i = std::lower_bound(__first, __last, __val);
17294 return __i != __last && !(__val < *__i);
17295 }
17296 # 3936 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17297 template<typename _ForwardIterator, typename _Tp, typename _Compare>
17298 bool
17299 binary_search(_ForwardIterator __first, _ForwardIterator __last,
17300 const _Tp& __val, _Compare __comp)
17301 {
17302
17303
17304
17305
17306
17307
17308 ;
17309
17310 _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
17311 return __i != __last && !__comp(__val, *__i);
17312 }
17313 # 3974 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17314 template<typename _InputIterator1, typename _InputIterator2>
17315 bool
17316 includes(_InputIterator1 __first1, _InputIterator1 __last1,
17317 _InputIterator2 __first2, _InputIterator2 __last2)
17318 {
17319
17320
17321
17322
17323
17324
17325
17326
17327 ;
17328 ;
17329
17330 while (__first1 != __last1 && __first2 != __last2)
17331 if (*__first2 < *__first1)
17332 return false;
17333 else if(*__first1 < *__first2)
17334 ++__first1;
17335 else
17336 ++__first1, ++__first2;
17337
17338 return __first2 == __last2;
17339 }
17340 # 4020 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17341 template<typename _InputIterator1, typename _InputIterator2,
17342 typename _Compare>
17343 bool
17344 includes(_InputIterator1 __first1, _InputIterator1 __last1,
17345 _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
17346 {
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356 ;
17357 ;
17358
17359 while (__first1 != __last1 && __first2 != __last2)
17360 if (__comp(*__first2, *__first1))
17361 return false;
17362 else if(__comp(*__first1, *__first2))
17363 ++__first1;
17364 else
17365 ++__first1, ++__first2;
17366
17367 return __first2 == __last2;
17368 }
17369 # 4066 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17370 template<typename _InputIterator1, typename _InputIterator2,
17371 typename _OutputIterator>
17372 _OutputIterator
17373 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
17374 _InputIterator2 __first2, _InputIterator2 __last2,
17375 _OutputIterator __result)
17376 {
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387 ;
17388 ;
17389
17390 while (__first1 != __last1 && __first2 != __last2)
17391 {
17392 if (*__first1 < *__first2)
17393 {
17394 *__result = *__first1;
17395 ++__first1;
17396 }
17397 else if (*__first2 < *__first1)
17398 {
17399 *__result = *__first2;
17400 ++__first2;
17401 }
17402 else
17403 {
17404 *__result = *__first1;
17405 ++__first1;
17406 ++__first2;
17407 }
17408 ++__result;
17409 }
17410 return std::copy(__first2, __last2, std::copy(__first1, __last1,
17411 __result));
17412 }
17413 # 4128 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17414 template<typename _InputIterator1, typename _InputIterator2,
17415 typename _OutputIterator, typename _Compare>
17416 _OutputIterator
17417 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
17418 _InputIterator2 __first2, _InputIterator2 __last2,
17419 _OutputIterator __result, _Compare __comp)
17420 {
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432 ;
17433 ;
17434
17435 while (__first1 != __last1 && __first2 != __last2)
17436 {
17437 if (__comp(*__first1, *__first2))
17438 {
17439 *__result = *__first1;
17440 ++__first1;
17441 }
17442 else if (__comp(*__first2, *__first1))
17443 {
17444 *__result = *__first2;
17445 ++__first2;
17446 }
17447 else
17448 {
17449 *__result = *__first1;
17450 ++__first1;
17451 ++__first2;
17452 }
17453 ++__result;
17454 }
17455 return std::copy(__first2, __last2, std::copy(__first1, __last1,
17456 __result));
17457 }
17458 # 4189 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17459 template<typename _InputIterator1, typename _InputIterator2,
17460 typename _OutputIterator>
17461 _OutputIterator
17462 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
17463 _InputIterator2 __first2, _InputIterator2 __last2,
17464 _OutputIterator __result)
17465 {
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476 ;
17477 ;
17478
17479 while (__first1 != __last1 && __first2 != __last2)
17480 if (*__first1 < *__first2)
17481 ++__first1;
17482 else if (*__first2 < *__first1)
17483 ++__first2;
17484 else
17485 {
17486 *__result = *__first1;
17487 ++__first1;
17488 ++__first2;
17489 ++__result;
17490 }
17491 return __result;
17492 }
17493 # 4243 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17494 template<typename _InputIterator1, typename _InputIterator2,
17495 typename _OutputIterator, typename _Compare>
17496 _OutputIterator
17497 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
17498 _InputIterator2 __first2, _InputIterator2 __last2,
17499 _OutputIterator __result, _Compare __comp)
17500 {
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512 ;
17513 ;
17514
17515 while (__first1 != __last1 && __first2 != __last2)
17516 if (__comp(*__first1, *__first2))
17517 ++__first1;
17518 else if (__comp(*__first2, *__first1))
17519 ++__first2;
17520 else
17521 {
17522 *__result = *__first1;
17523 ++__first1;
17524 ++__first2;
17525 ++__result;
17526 }
17527 return __result;
17528 }
17529 # 4297 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17530 template<typename _InputIterator1, typename _InputIterator2,
17531 typename _OutputIterator>
17532 _OutputIterator
17533 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17534 _InputIterator2 __first2, _InputIterator2 __last2,
17535 _OutputIterator __result)
17536 {
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547 ;
17548 ;
17549
17550 while (__first1 != __last1 && __first2 != __last2)
17551 if (*__first1 < *__first2)
17552 {
17553 *__result = *__first1;
17554 ++__first1;
17555 ++__result;
17556 }
17557 else if (*__first2 < *__first1)
17558 ++__first2;
17559 else
17560 {
17561 ++__first1;
17562 ++__first2;
17563 }
17564 return std::copy(__first1, __last1, __result);
17565 }
17566 # 4355 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17567 template<typename _InputIterator1, typename _InputIterator2,
17568 typename _OutputIterator, typename _Compare>
17569 _OutputIterator
17570 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17571 _InputIterator2 __first2, _InputIterator2 __last2,
17572 _OutputIterator __result, _Compare __comp)
17573 {
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585 ;
17586 ;
17587
17588 while (__first1 != __last1 && __first2 != __last2)
17589 if (__comp(*__first1, *__first2))
17590 {
17591 *__result = *__first1;
17592 ++__first1;
17593 ++__result;
17594 }
17595 else if (__comp(*__first2, *__first1))
17596 ++__first2;
17597 else
17598 {
17599 ++__first1;
17600 ++__first2;
17601 }
17602 return std::copy(__first1, __last1, __result);
17603 }
17604 # 4409 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17605 template<typename _InputIterator1, typename _InputIterator2,
17606 typename _OutputIterator>
17607 _OutputIterator
17608 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17609 _InputIterator2 __first2, _InputIterator2 __last2,
17610 _OutputIterator __result)
17611 {
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622 ;
17623 ;
17624
17625 while (__first1 != __last1 && __first2 != __last2)
17626 if (*__first1 < *__first2)
17627 {
17628 *__result = *__first1;
17629 ++__first1;
17630 ++__result;
17631 }
17632 else if (*__first2 < *__first1)
17633 {
17634 *__result = *__first2;
17635 ++__first2;
17636 ++__result;
17637 }
17638 else
17639 {
17640 ++__first1;
17641 ++__first2;
17642 }
17643 return std::copy(__first2, __last2, std::copy(__first1,
17644 __last1, __result));
17645 }
17646 # 4470 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17647 template<typename _InputIterator1, typename _InputIterator2,
17648 typename _OutputIterator, typename _Compare>
17649 _OutputIterator
17650 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
17651 _InputIterator2 __first2, _InputIterator2 __last2,
17652 _OutputIterator __result,
17653 _Compare __comp)
17654 {
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666 ;
17667 ;
17668
17669 while (__first1 != __last1 && __first2 != __last2)
17670 if (__comp(*__first1, *__first2))
17671 {
17672 *__result = *__first1;
17673 ++__first1;
17674 ++__result;
17675 }
17676 else if (__comp(*__first2, *__first1))
17677 {
17678 *__result = *__first2;
17679 ++__first2;
17680 ++__result;
17681 }
17682 else
17683 {
17684 ++__first1;
17685 ++__first2;
17686 }
17687 return std::copy(__first2, __last2, std::copy(__first1,
17688 __last1, __result));
17689 }
17690 # 4523 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17691 template<typename _ForwardIterator>
17692 _ForwardIterator
17693 max_element(_ForwardIterator __first, _ForwardIterator __last)
17694 {
17695
17696
17697
17698
17699 ;
17700
17701 if (__first == __last)
17702 return __first;
17703 _ForwardIterator __result = __first;
17704 while (++__first != __last)
17705 if (*__result < *__first)
17706 __result = __first;
17707 return __result;
17708 }
17709 # 4550 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17710 template<typename _ForwardIterator, typename _Compare>
17711 _ForwardIterator
17712 max_element(_ForwardIterator __first, _ForwardIterator __last,
17713 _Compare __comp)
17714 {
17715
17716
17717
17718
17719
17720 ;
17721
17722 if (__first == __last) return __first;
17723 _ForwardIterator __result = __first;
17724 while (++__first != __last)
17725 if (__comp(*__result, *__first)) __result = __first;
17726 return __result;
17727 }
17728
17729
17730
17731
17732
17733
17734
17735 template<typename _ForwardIterator>
17736 _ForwardIterator
17737 min_element(_ForwardIterator __first, _ForwardIterator __last)
17738 {
17739
17740
17741
17742
17743 ;
17744
17745 if (__first == __last)
17746 return __first;
17747 _ForwardIterator __result = __first;
17748 while (++__first != __last)
17749 if (*__first < *__result)
17750 __result = __first;
17751 return __result;
17752 }
17753 # 4602 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17754 template<typename _ForwardIterator, typename _Compare>
17755 _ForwardIterator
17756 min_element(_ForwardIterator __first, _ForwardIterator __last,
17757 _Compare __comp)
17758 {
17759
17760
17761
17762
17763
17764 ;
17765
17766 if (__first == __last)
17767 return __first;
17768 _ForwardIterator __result = __first;
17769 while (++__first != __last)
17770 if (__comp(*__first, *__result))
17771 __result = __first;
17772 return __result;
17773 }
17774 # 4637 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17775 template<typename _BidirectionalIterator>
17776 bool
17777 next_permutation(_BidirectionalIterator __first,
17778 _BidirectionalIterator __last)
17779 {
17780
17781
17782
17783
17784
17785 ;
17786
17787 if (__first == __last)
17788 return false;
17789 _BidirectionalIterator __i = __first;
17790 ++__i;
17791 if (__i == __last)
17792 return false;
17793 __i = __last;
17794 --__i;
17795
17796 for(;;)
17797 {
17798 _BidirectionalIterator __ii = __i;
17799 --__i;
17800 if (*__i < *__ii)
17801 {
17802 _BidirectionalIterator __j = __last;
17803 while (!(*__i < *--__j))
17804 {}
17805 std::iter_swap(__i, __j);
17806 std::reverse(__ii, __last);
17807 return true;
17808 }
17809 if (__i == __first)
17810 {
17811 std::reverse(__first, __last);
17812 return false;
17813 }
17814 }
17815 }
17816 # 4693 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17817 template<typename _BidirectionalIterator, typename _Compare>
17818 bool
17819 next_permutation(_BidirectionalIterator __first,
17820 _BidirectionalIterator __last, _Compare __comp)
17821 {
17822
17823
17824
17825
17826
17827
17828 ;
17829
17830 if (__first == __last)
17831 return false;
17832 _BidirectionalIterator __i = __first;
17833 ++__i;
17834 if (__i == __last)
17835 return false;
17836 __i = __last;
17837 --__i;
17838
17839 for(;;)
17840 {
17841 _BidirectionalIterator __ii = __i;
17842 --__i;
17843 if (__comp(*__i, *__ii))
17844 {
17845 _BidirectionalIterator __j = __last;
17846 while (!__comp(*__i, *--__j))
17847 {}
17848 std::iter_swap(__i, __j);
17849 std::reverse(__ii, __last);
17850 return true;
17851 }
17852 if (__i == __first)
17853 {
17854 std::reverse(__first, __last);
17855 return false;
17856 }
17857 }
17858 }
17859 # 4748 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17860 template<typename _BidirectionalIterator>
17861 bool
17862 prev_permutation(_BidirectionalIterator __first,
17863 _BidirectionalIterator __last)
17864 {
17865
17866
17867
17868
17869
17870 ;
17871
17872 if (__first == __last)
17873 return false;
17874 _BidirectionalIterator __i = __first;
17875 ++__i;
17876 if (__i == __last)
17877 return false;
17878 __i = __last;
17879 --__i;
17880
17881 for(;;)
17882 {
17883 _BidirectionalIterator __ii = __i;
17884 --__i;
17885 if (*__ii < *__i)
17886 {
17887 _BidirectionalIterator __j = __last;
17888 while (!(*--__j < *__i))
17889 {}
17890 std::iter_swap(__i, __j);
17891 std::reverse(__ii, __last);
17892 return true;
17893 }
17894 if (__i == __first)
17895 {
17896 std::reverse(__first, __last);
17897 return false;
17898 }
17899 }
17900 }
17901 # 4804 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17902 template<typename _BidirectionalIterator, typename _Compare>
17903 bool
17904 prev_permutation(_BidirectionalIterator __first,
17905 _BidirectionalIterator __last, _Compare __comp)
17906 {
17907
17908
17909
17910
17911
17912
17913 ;
17914
17915 if (__first == __last)
17916 return false;
17917 _BidirectionalIterator __i = __first;
17918 ++__i;
17919 if (__i == __last)
17920 return false;
17921 __i = __last;
17922 --__i;
17923
17924 for(;;)
17925 {
17926 _BidirectionalIterator __ii = __i;
17927 --__i;
17928 if (__comp(*__ii, *__i))
17929 {
17930 _BidirectionalIterator __j = __last;
17931 while (!__comp(*--__j, *__i))
17932 {}
17933 std::iter_swap(__i, __j);
17934 std::reverse(__ii, __last);
17935 return true;
17936 }
17937 if (__i == __first)
17938 {
17939 std::reverse(__first, __last);
17940 return false;
17941 }
17942 }
17943 }
17944 # 4863 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17945 template<typename _InputIterator, typename _ForwardIterator>
17946 _InputIterator
17947 find_first_of(_InputIterator __first1, _InputIterator __last1,
17948 _ForwardIterator __first2, _ForwardIterator __last2)
17949 {
17950
17951
17952
17953
17954
17955
17956 ;
17957 ;
17958
17959 for ( ; __first1 != __last1; ++__first1)
17960 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
17961 if (*__first1 == *__iter)
17962 return __first1;
17963 return __last1;
17964 }
17965 # 4899 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17966 template<typename _InputIterator, typename _ForwardIterator,
17967 typename _BinaryPredicate>
17968 _InputIterator
17969 find_first_of(_InputIterator __first1, _InputIterator __last1,
17970 _ForwardIterator __first2, _ForwardIterator __last2,
17971 _BinaryPredicate __comp)
17972 {
17973
17974
17975
17976
17977
17978
17979 ;
17980 ;
17981
17982 for ( ; __first1 != __last1; ++__first1)
17983 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
17984 if (__comp(*__first1, *__iter))
17985 return __first1;
17986 return __last1;
17987 }
17988 # 4929 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
17989 template<typename _ForwardIterator1, typename _ForwardIterator2>
17990 _ForwardIterator1
17991 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
17992 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
17993 forward_iterator_tag, forward_iterator_tag)
17994 {
17995 if (__first2 == __last2)
17996 return __last1;
17997 else
17998 {
17999 _ForwardIterator1 __result = __last1;
18000 while (1)
18001 {
18002 _ForwardIterator1 __new_result
18003 = std::search(__first1, __last1, __first2, __last2);
18004 if (__new_result == __last1)
18005 return __result;
18006 else
18007 {
18008 __result = __new_result;
18009 __first1 = __new_result;
18010 ++__first1;
18011 }
18012 }
18013 }
18014 }
18015
18016 template<typename _ForwardIterator1, typename _ForwardIterator2,
18017 typename _BinaryPredicate>
18018 _ForwardIterator1
18019 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
18020 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
18021 forward_iterator_tag, forward_iterator_tag,
18022 _BinaryPredicate __comp)
18023 {
18024 if (__first2 == __last2)
18025 return __last1;
18026 else
18027 {
18028 _ForwardIterator1 __result = __last1;
18029 while (1)
18030 {
18031 _ForwardIterator1 __new_result
18032 = std::search(__first1, __last1, __first2, __last2, __comp);
18033 if (__new_result == __last1)
18034 return __result;
18035 else
18036 {
18037 __result = __new_result;
18038 __first1 = __new_result;
18039 ++__first1;
18040 }
18041 }
18042 }
18043 }
18044
18045
18046 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
18047 _BidirectionalIterator1
18048 __find_end(_BidirectionalIterator1 __first1,
18049 _BidirectionalIterator1 __last1,
18050 _BidirectionalIterator2 __first2,
18051 _BidirectionalIterator2 __last2,
18052 bidirectional_iterator_tag, bidirectional_iterator_tag)
18053 {
18054
18055
18056
18057
18058
18059
18060 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
18061 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
18062
18063 _RevIterator1 __rlast1(__first1);
18064 _RevIterator2 __rlast2(__first2);
18065 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
18066 _RevIterator2(__last2), __rlast2);
18067
18068 if (__rresult == __rlast1)
18069 return __last1;
18070 else
18071 {
18072 _BidirectionalIterator1 __result = __rresult.base();
18073 std::advance(__result, -std::distance(__first2, __last2));
18074 return __result;
18075 }
18076 }
18077
18078 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
18079 typename _BinaryPredicate>
18080 _BidirectionalIterator1
18081 __find_end(_BidirectionalIterator1 __first1,
18082 _BidirectionalIterator1 __last1,
18083 _BidirectionalIterator2 __first2,
18084 _BidirectionalIterator2 __last2,
18085 bidirectional_iterator_tag, bidirectional_iterator_tag,
18086 _BinaryPredicate __comp)
18087 {
18088
18089
18090
18091
18092
18093
18094 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
18095 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
18096
18097 _RevIterator1 __rlast1(__first1);
18098 _RevIterator2 __rlast2(__first2);
18099 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
18100 _RevIterator2(__last2), __rlast2,
18101 __comp);
18102
18103 if (__rresult == __rlast1)
18104 return __last1;
18105 else
18106 {
18107 _BidirectionalIterator1 __result = __rresult.base();
18108 std::advance(__result, -std::distance(__first2, __last2));
18109 return __result;
18110 }
18111 }
18112 # 5079 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
18113 template<typename _ForwardIterator1, typename _ForwardIterator2>
18114 inline _ForwardIterator1
18115 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
18116 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
18117 {
18118
18119
18120
18121
18122
18123
18124 ;
18125 ;
18126
18127 return std::__find_end(__first1, __last1, __first2, __last2,
18128 std::__iterator_category(__first1),
18129 std::__iterator_category(__first2));
18130 }
18131 # 5124 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h" 3
18132 template<typename _ForwardIterator1, typename _ForwardIterator2,
18133 typename _BinaryPredicate>
18134 inline _ForwardIterator1
18135 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
18136 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
18137 _BinaryPredicate __comp)
18138 {
18139
18140
18141
18142
18143
18144
18145 ;
18146 ;
18147
18148 return std::__find_end(__first1, __last1, __first2, __last2,
18149 std::__iterator_category(__first1),
18150 std::__iterator_category(__first2),
18151 __comp);
18152 }
18153
18154 }
18155 # 70 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm" 2 3
18156 # 57 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
18157 # 1 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 1 3
18158 # 44 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18159
18160 # 45 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18161
18162 namespace std
18163 {
18164 template<typename _Type>
18165 inline bool
18166 __is_null_pointer(_Type* __ptr)
18167 { return __ptr == 0; }
18168
18169 template<typename _Type>
18170 inline bool
18171 __is_null_pointer(_Type)
18172 { return false; }
18173
18174 template<typename _CharT, typename _Traits, typename _Alloc>
18175 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
18176 basic_string<_CharT, _Traits, _Alloc>::
18177 _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
18178
18179 template<typename _CharT, typename _Traits, typename _Alloc>
18180 const _CharT
18181 basic_string<_CharT, _Traits, _Alloc>::
18182 _Rep::_S_terminal = _CharT();
18183
18184 template<typename _CharT, typename _Traits, typename _Alloc>
18185 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
18186 basic_string<_CharT, _Traits, _Alloc>::npos;
18187
18188
18189
18190 template<typename _CharT, typename _Traits, typename _Alloc>
18191 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18192 basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
18193 (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
18194 sizeof(size_type)];
18195
18196
18197
18198
18199
18200 template<typename _CharT, typename _Traits, typename _Alloc>
18201 template<typename _InIterator>
18202 _CharT*
18203 basic_string<_CharT, _Traits, _Alloc>::
18204 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
18205 input_iterator_tag)
18206 {
18207
18208 if (__beg == __end && __a == _Alloc())
18209 return _S_empty_rep()._M_refdata();
18210
18211
18212 _CharT __buf[128];
18213 size_type __len = 0;
18214 while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
18215 {
18216 __buf[__len++] = *__beg;
18217 ++__beg;
18218 }
18219 _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
18220 traits_type::copy(__r->_M_refdata(), __buf, __len);
18221 try
18222 {
18223 while (__beg != __end)
18224 {
18225 if (__len == __r->_M_capacity)
18226 {
18227
18228 _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
18229 traits_type::copy(__another->_M_refdata(),
18230 __r->_M_refdata(), __len);
18231 __r->_M_destroy(__a);
18232 __r = __another;
18233 }
18234 __r->_M_refdata()[__len++] = *__beg;
18235 ++__beg;
18236 }
18237 }
18238 catch(...)
18239 {
18240 __r->_M_destroy(__a);
18241 throw;
18242 }
18243 __r->_M_length = __len;
18244 __r->_M_refdata()[__len] = _Rep::_S_terminal;
18245 return __r->_M_refdata();
18246 }
18247
18248 template<typename _CharT, typename _Traits, typename _Alloc>
18249 template <typename _InIterator>
18250 _CharT*
18251 basic_string<_CharT, _Traits, _Alloc>::
18252 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
18253 forward_iterator_tag)
18254 {
18255
18256 if (__beg == __end && __a == _Alloc())
18257 return _S_empty_rep()._M_refdata();
18258
18259
18260 if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0))
18261 __throw_logic_error(("basic_string::_S_construct NULL not valid"));
18262
18263 const size_type __dnew = static_cast<size_type>(std::distance(__beg,
18264 __end));
18265
18266 _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
18267 try
18268 { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
18269 catch(...)
18270 {
18271 __r->_M_destroy(__a);
18272 throw;
18273 }
18274 __r->_M_length = __dnew;
18275 __r->_M_refdata()[__dnew] = _Rep::_S_terminal;
18276 return __r->_M_refdata();
18277 }
18278
18279 template<typename _CharT, typename _Traits, typename _Alloc>
18280 _CharT*
18281 basic_string<_CharT, _Traits, _Alloc>::
18282 _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
18283 {
18284
18285 if (__n == 0 && __a == _Alloc())
18286 return _S_empty_rep()._M_refdata();
18287
18288
18289 _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
18290 if (__n)
18291 traits_type::assign(__r->_M_refdata(), __n, __c);
18292
18293 __r->_M_length = __n;
18294 __r->_M_refdata()[__n] = _Rep::_S_terminal;
18295 return __r->_M_refdata();
18296 }
18297
18298 template<typename _CharT, typename _Traits, typename _Alloc>
18299 basic_string<_CharT, _Traits, _Alloc>::
18300 basic_string(const basic_string& __str)
18301 : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
18302 __str.get_allocator()),
18303 __str.get_allocator())
18304 { }
18305
18306 template<typename _CharT, typename _Traits, typename _Alloc>
18307 basic_string<_CharT, _Traits, _Alloc>::
18308 basic_string(const _Alloc& __a)
18309 : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
18310 { }
18311
18312 template<typename _CharT, typename _Traits, typename _Alloc>
18313 basic_string<_CharT, _Traits, _Alloc>::
18314 basic_string(const basic_string& __str, size_type __pos, size_type __n)
18315 : _M_dataplus(_S_construct(__str._M_data()
18316 + __str._M_check(__pos,
18317 "basic_string::basic_string"),
18318 __str._M_data() + __str._M_limit(__pos, __n)
18319 + __pos, _Alloc()), _Alloc())
18320 { }
18321
18322 template<typename _CharT, typename _Traits, typename _Alloc>
18323 basic_string<_CharT, _Traits, _Alloc>::
18324 basic_string(const basic_string& __str, size_type __pos,
18325 size_type __n, const _Alloc& __a)
18326 : _M_dataplus(_S_construct(__str._M_data()
18327 + __str._M_check(__pos,
18328 "basic_string::basic_string"),
18329 __str._M_data() + __str._M_limit(__pos, __n)
18330 + __pos, __a), __a)
18331 { }
18332
18333
18334 template<typename _CharT, typename _Traits, typename _Alloc>
18335 basic_string<_CharT, _Traits, _Alloc>::
18336 basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
18337 : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
18338 { }
18339
18340
18341 template<typename _CharT, typename _Traits, typename _Alloc>
18342 basic_string<_CharT, _Traits, _Alloc>::
18343 basic_string(const _CharT* __s, const _Alloc& __a)
18344 : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
18345 __s + npos, __a), __a)
18346 { }
18347
18348 template<typename _CharT, typename _Traits, typename _Alloc>
18349 basic_string<_CharT, _Traits, _Alloc>::
18350 basic_string(size_type __n, _CharT __c, const _Alloc& __a)
18351 : _M_dataplus(_S_construct(__n, __c, __a), __a)
18352 { }
18353
18354
18355 template<typename _CharT, typename _Traits, typename _Alloc>
18356 template<typename _InputIterator>
18357 basic_string<_CharT, _Traits, _Alloc>::
18358 basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
18359 : _M_dataplus(_S_construct(__beg, __end, __a), __a)
18360 { }
18361
18362 template<typename _CharT, typename _Traits, typename _Alloc>
18363 basic_string<_CharT, _Traits, _Alloc>&
18364 basic_string<_CharT, _Traits, _Alloc>::
18365 assign(const basic_string& __str)
18366 {
18367 if (_M_rep() != __str._M_rep())
18368 {
18369
18370 const allocator_type __a = this->get_allocator();
18371 _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
18372 _M_rep()->_M_dispose(__a);
18373 _M_data(__tmp);
18374 }
18375 return *this;
18376 }
18377
18378 template<typename _CharT, typename _Traits, typename _Alloc>
18379 basic_string<_CharT, _Traits, _Alloc>&
18380 basic_string<_CharT, _Traits, _Alloc>::
18381 assign(const _CharT* __s, size_type __n)
18382 {
18383 ;
18384 if (__n > this->max_size())
18385 __throw_length_error(("basic_string::assign"));
18386 if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
18387 || less<const _CharT*>()(_M_data() + this->size(), __s))
18388 return _M_replace_safe(size_type(0), this->size(), __s, __n);
18389 else
18390 {
18391
18392 const size_type __pos = __s - _M_data();
18393 if (__pos >= __n)
18394 traits_type::copy(_M_data(), __s, __n);
18395 else if (__pos)
18396 traits_type::move(_M_data(), __s, __n);
18397 _M_rep()->_M_set_sharable();
18398 _M_rep()->_M_length = __n;
18399 _M_data()[__n] = _Rep::_S_terminal;
18400 return *this;
18401 }
18402 }
18403
18404 template<typename _CharT, typename _Traits, typename _Alloc>
18405 basic_string<_CharT, _Traits, _Alloc>&
18406 basic_string<_CharT, _Traits, _Alloc>::
18407 insert(size_type __pos, const _CharT* __s, size_type __n)
18408 {
18409 ;
18410 _M_check(__pos, "basic_string::insert");
18411 if (this->max_size() - this->size() < __n)
18412 __throw_length_error(("basic_string::insert"));
18413 if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
18414 || less<const _CharT*>()(_M_data() + this->size(), __s))
18415 return _M_replace_safe(__pos, size_type(0), __s, __n);
18416 else
18417 {
18418
18419
18420
18421 const size_type __off = __s - _M_data();
18422 _M_mutate(__pos, 0, __n);
18423 __s = _M_data() + __off;
18424 _CharT* __p = _M_data() + __pos;
18425 if (__s + __n <= __p)
18426 traits_type::copy(__p, __s, __n);
18427 else if (__s >= __p)
18428 traits_type::copy(__p, __s + __n, __n);
18429 else
18430 {
18431 const size_type __nleft = __p - __s;
18432 traits_type::copy(__p, __s, __nleft);
18433 traits_type::copy(__p + __nleft, __p + __n, __n - __nleft);
18434 }
18435 return *this;
18436 }
18437 }
18438
18439 template<typename _CharT, typename _Traits, typename _Alloc>
18440 basic_string<_CharT, _Traits, _Alloc>&
18441 basic_string<_CharT, _Traits, _Alloc>::
18442 replace(size_type __pos, size_type __n1, const _CharT* __s,
18443 size_type __n2)
18444 {
18445 ;
18446 _M_check(__pos, "basic_string::replace");
18447 __n1 = _M_limit(__pos, __n1);
18448 if (this->max_size() - (this->size() - __n1) < __n2)
18449 __throw_length_error(("basic_string::replace"));
18450 bool __left;
18451 if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
18452 || less<const _CharT*>()(_M_data() + this->size(), __s))
18453 return _M_replace_safe(__pos, __n1, __s, __n2);
18454 else if ((__left = __s + __n2 <= _M_data() + __pos)
18455 || _M_data() + __pos + __n1 <= __s)
18456 {
18457
18458 const size_type __off = __s - _M_data();
18459 _M_mutate(__pos, __n1, __n2);
18460 if (__left)
18461 traits_type::copy(_M_data() + __pos,
18462 _M_data() + __off, __n2);
18463 else
18464 traits_type::copy(_M_data() + __pos,
18465 _M_data() + __off + __n2 - __n1, __n2);
18466 return *this;
18467 }
18468 else
18469 {
18470
18471 const basic_string __tmp(__s, __n2);
18472 return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
18473 }
18474 }
18475
18476 template<typename _CharT, typename _Traits, typename _Alloc>
18477 void
18478 basic_string<_CharT, _Traits, _Alloc>::_Rep::
18479 _M_destroy(const _Alloc& __a) throw ()
18480 {
18481
18482 if (this == &_S_empty_rep())
18483 return;
18484
18485 const size_type __size = sizeof(_Rep_base) +
18486 (this->_M_capacity + 1) * sizeof(_CharT);
18487 _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
18488 }
18489
18490 template<typename _CharT, typename _Traits, typename _Alloc>
18491 void
18492 basic_string<_CharT, _Traits, _Alloc>::_M_leak_hard()
18493 {
18494
18495 if (_M_rep() == &_S_empty_rep())
18496 return;
18497
18498 if (_M_rep()->_M_is_shared())
18499 _M_mutate(0, 0, 0);
18500 _M_rep()->_M_set_leaked();
18501 }
18502
18503 template<typename _CharT, typename _Traits, typename _Alloc>
18504 void
18505 basic_string<_CharT, _Traits, _Alloc>::
18506 _M_mutate(size_type __pos, size_type __len1, size_type __len2)
18507 {
18508 const size_type __old_size = this->size();
18509 const size_type __new_size = __old_size + __len2 - __len1;
18510 const size_type __how_much = __old_size - __pos - __len1;
18511
18512 if (__new_size > capacity() || _M_rep()->_M_is_shared())
18513 {
18514
18515 const allocator_type __a = get_allocator();
18516 _Rep* __r = _Rep::_S_create(__new_size, capacity(), __a);
18517
18518 if (__pos)
18519 traits_type::copy(__r->_M_refdata(), _M_data(), __pos);
18520 if (__how_much)
18521 traits_type::copy(__r->_M_refdata() + __pos + __len2,
18522 _M_data() + __pos + __len1, __how_much);
18523
18524 _M_rep()->_M_dispose(__a);
18525 _M_data(__r->_M_refdata());
18526 }
18527 else if (__how_much && __len1 != __len2)
18528 {
18529
18530 traits_type::move(_M_data() + __pos + __len2,
18531 _M_data() + __pos + __len1, __how_much);
18532 }
18533 _M_rep()->_M_set_sharable();
18534 _M_rep()->_M_length = __new_size;
18535 _M_data()[__new_size] = _Rep::_S_terminal;
18536
18537 }
18538
18539 template<typename _CharT, typename _Traits, typename _Alloc>
18540 void
18541 basic_string<_CharT, _Traits, _Alloc>::reserve(size_type __res)
18542 {
18543 if (__res != this->capacity() || _M_rep()->_M_is_shared())
18544 {
18545 if (__res > this->max_size())
18546 __throw_length_error(("basic_string::reserve"));
18547
18548 if (__res < this->size())
18549 __res = this->size();
18550 const allocator_type __a = get_allocator();
18551 _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
18552 _M_rep()->_M_dispose(__a);
18553 _M_data(__tmp);
18554 }
18555 }
18556
18557 template<typename _CharT, typename _Traits, typename _Alloc>
18558 void basic_string<_CharT, _Traits, _Alloc>::swap(basic_string& __s)
18559 {
18560 if (_M_rep()->_M_is_leaked())
18561 _M_rep()->_M_set_sharable();
18562 if (__s._M_rep()->_M_is_leaked())
18563 __s._M_rep()->_M_set_sharable();
18564 if (this->get_allocator() == __s.get_allocator())
18565 {
18566 _CharT* __tmp = _M_data();
18567 _M_data(__s._M_data());
18568 __s._M_data(__tmp);
18569 }
18570
18571 else
18572 {
18573 const basic_string __tmp1(_M_ibegin(), _M_iend(),
18574 __s.get_allocator());
18575 const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
18576 this->get_allocator());
18577 *this = __tmp2;
18578 __s = __tmp1;
18579 }
18580 }
18581
18582 template<typename _CharT, typename _Traits, typename _Alloc>
18583 typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
18584 basic_string<_CharT, _Traits, _Alloc>::_Rep::
18585 _S_create(size_type __capacity, size_type __old_capacity,
18586 const _Alloc& __alloc)
18587 {
18588 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
18589
18590
18591 if (__capacity > _S_max_size)
18592 __throw_length_error(("basic_string::_S_create"));
18593 # 501 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18594 const size_type __pagesize = 4096;
18595 const size_type __subpagesize = 128;
18596 const size_type __malloc_header_size = 4 * sizeof (void*);
18597 # 513 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc" 3
18598 const size_type __page_capacity = ((__pagesize - __malloc_header_size
18599 - sizeof(_Rep) - sizeof(_CharT))
18600 / sizeof(_CharT));
18601
18602 if (__capacity > __old_capacity && __capacity < 2 * __old_capacity
18603 && __capacity > __page_capacity)
18604 __capacity = 2 * __old_capacity;
18605
18606
18607
18608
18609 size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
18610
18611 const size_type __adj_size = __size + __malloc_header_size;
18612 if (__adj_size > __pagesize)
18613 {
18614 const size_type __extra = __pagesize - __adj_size % __pagesize;
18615 __capacity += __extra / sizeof(_CharT);
18616
18617 if (__capacity > _S_max_size)
18618 __capacity = _S_max_size;
18619 __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
18620 }
18621 else if (__size > __subpagesize)
18622 {
18623 const size_type __extra = __subpagesize - __adj_size % __subpagesize;
18624 __capacity += __extra / sizeof(_CharT);
18625 __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
18626 }
18627
18628
18629
18630 void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
18631 _Rep *__p = new (__place) _Rep;
18632 __p->_M_capacity = __capacity;
18633 __p->_M_set_sharable();
18634 __p->_M_length = 0;
18635 return __p;
18636 }
18637
18638 template<typename _CharT, typename _Traits, typename _Alloc>
18639 _CharT*
18640 basic_string<_CharT, _Traits, _Alloc>::_Rep::
18641 _M_clone(const _Alloc& __alloc, size_type __res)
18642 {
18643
18644 const size_type __requested_cap = this->_M_length + __res;
18645 _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
18646 __alloc);
18647 if (this->_M_length)
18648 traits_type::copy(__r->_M_refdata(), _M_refdata(),
18649 this->_M_length);
18650
18651 __r->_M_length = this->_M_length;
18652 __r->_M_refdata()[this->_M_length] = _Rep::_S_terminal;
18653 return __r->_M_refdata();
18654 }
18655
18656 template<typename _CharT, typename _Traits, typename _Alloc>
18657 void
18658 basic_string<_CharT, _Traits, _Alloc>::resize(size_type __n, _CharT __c)
18659 {
18660 if (__n > max_size())
18661 __throw_length_error(("basic_string::resize"));
18662 const size_type __size = this->size();
18663 if (__size < __n)
18664 this->append(__n - __size, __c);
18665 else if (__n < __size)
18666 this->erase(__n);
18667
18668 }
18669
18670 template<typename _CharT, typename _Traits, typename _Alloc>
18671 template<typename _InputIterator>
18672 basic_string<_CharT, _Traits, _Alloc>&
18673 basic_string<_CharT, _Traits, _Alloc>::
18674 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
18675 _InputIterator __k2, __false_type)
18676 {
18677 const basic_string __s(__k1, __k2);
18678 const size_type __n1 = __i2 - __i1;
18679 if (this->max_size() - (this->size() - __n1) < __s.size())
18680 __throw_length_error(("basic_string::_M_replace_dispatch"));
18681 return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
18682 __s.size());
18683 }
18684
18685 template<typename _CharT, typename _Traits, typename _Alloc>
18686 basic_string<_CharT, _Traits, _Alloc>&
18687 basic_string<_CharT, _Traits, _Alloc>::
18688 append(const basic_string& __str)
18689 {
18690
18691
18692
18693 const size_type __size = __str.size();
18694 const size_type __len = __size + this->size();
18695 if (__len > this->capacity())
18696 this->reserve(__len);
18697 return _M_replace_safe(this->size(), size_type(0), __str._M_data(),
18698 __str.size());
18699 }
18700
18701 template<typename _CharT, typename _Traits, typename _Alloc>
18702 basic_string<_CharT, _Traits, _Alloc>&
18703 basic_string<_CharT, _Traits, _Alloc>::
18704 append(const basic_string& __str, size_type __pos, size_type __n)
18705 {
18706
18707
18708
18709 __str._M_check(__pos, "basic_string::append");
18710 __n = __str._M_limit(__pos, __n);
18711 const size_type __len = __n + this->size();
18712 if (__len > this->capacity())
18713 this->reserve(__len);
18714 return _M_replace_safe(this->size(), size_type(0), __str._M_data()
18715 + __pos, __n);
18716 }
18717
18718 template<typename _CharT, typename _Traits, typename _Alloc>
18719 basic_string<_CharT, _Traits, _Alloc>&
18720 basic_string<_CharT, _Traits, _Alloc>::
18721 append(const _CharT* __s, size_type __n)
18722 {
18723 ;
18724 const size_type __len = __n + this->size();
18725 if (__len > this->capacity())
18726 this->reserve(__len);
18727 return _M_replace_safe(this->size(), size_type(0), __s, __n);
18728 }
18729
18730 template<typename _CharT, typename _Traits, typename _Alloc>
18731 basic_string<_CharT, _Traits, _Alloc>
18732 operator+(const _CharT* __lhs,
18733 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
18734 {
18735 ;
18736 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
18737 typedef typename __string_type::size_type __size_type;
18738 const __size_type __len = _Traits::length(__lhs);
18739 __string_type __str;
18740 __str.reserve(__len + __rhs.size());
18741 __str.append(__lhs, __len);
18742 __str.append(__rhs);
18743 return __str;
18744 }
18745
18746 template<typename _CharT, typename _Traits, typename _Alloc>
18747 basic_string<_CharT, _Traits, _Alloc>
18748 operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
18749 {
18750 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
18751 typedef typename __string_type::size_type __size_type;
18752 __string_type __str;
18753 const __size_type __len = __rhs.size();
18754 __str.reserve(__len + 1);
18755 __str.append(__size_type(1), __lhs);
18756 __str.append(__rhs);
18757 return __str;
18758 }
18759
18760 template<typename _CharT, typename _Traits, typename _Alloc>
18761 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18762 basic_string<_CharT, _Traits, _Alloc>::
18763 copy(_CharT* __s, size_type __n, size_type __pos) const
18764 {
18765 _M_check(__pos, "basic_string::copy");
18766 __n = _M_limit(__pos, __n);
18767 ;
18768 if (__n)
18769 traits_type::copy(__s, _M_data() + __pos, __n);
18770
18771 return __n;
18772 }
18773
18774 template<typename _CharT, typename _Traits, typename _Alloc>
18775 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18776 basic_string<_CharT, _Traits, _Alloc>::
18777 find(const _CharT* __s, size_type __pos, size_type __n) const
18778 {
18779 ;
18780 const size_type __size = this->size();
18781 const _CharT* __data = _M_data();
18782 for (; __pos + __n <= __size; ++__pos)
18783 if (traits_type::compare(__data + __pos, __s, __n) == 0)
18784 return __pos;
18785 return npos;
18786 }
18787
18788 template<typename _CharT, typename _Traits, typename _Alloc>
18789 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18790 basic_string<_CharT, _Traits, _Alloc>::
18791 find(_CharT __c, size_type __pos) const
18792 {
18793 const size_type __size = this->size();
18794 size_type __ret = npos;
18795 if (__pos < __size)
18796 {
18797 const _CharT* __data = _M_data();
18798 const size_type __n = __size - __pos;
18799 const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
18800 if (__p)
18801 __ret = __p - __data;
18802 }
18803 return __ret;
18804 }
18805
18806 template<typename _CharT, typename _Traits, typename _Alloc>
18807 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18808 basic_string<_CharT, _Traits, _Alloc>::
18809 rfind(const _CharT* __s, size_type __pos, size_type __n) const
18810 {
18811 ;
18812 const size_type __size = this->size();
18813 if (__n <= __size)
18814 {
18815 __pos = std::min(size_type(__size - __n), __pos);
18816 const _CharT* __data = _M_data();
18817 do
18818 {
18819 if (traits_type::compare(__data + __pos, __s, __n) == 0)
18820 return __pos;
18821 }
18822 while (__pos-- > 0);
18823 }
18824 return npos;
18825 }
18826
18827 template<typename _CharT, typename _Traits, typename _Alloc>
18828 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18829 basic_string<_CharT, _Traits, _Alloc>::
18830 rfind(_CharT __c, size_type __pos) const
18831 {
18832 size_type __size = this->size();
18833 if (__size)
18834 {
18835 if (--__size > __pos)
18836 __size = __pos;
18837 for (++__size; __size-- > 0; )
18838 if (traits_type::eq(_M_data()[__size], __c))
18839 return __size;
18840 }
18841 return npos;
18842 }
18843
18844 template<typename _CharT, typename _Traits, typename _Alloc>
18845 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18846 basic_string<_CharT, _Traits, _Alloc>::
18847 find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
18848 {
18849 ;
18850 for (; __n && __pos < this->size(); ++__pos)
18851 {
18852 const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
18853 if (__p)
18854 return __pos;
18855 }
18856 return npos;
18857 }
18858
18859 template<typename _CharT, typename _Traits, typename _Alloc>
18860 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18861 basic_string<_CharT, _Traits, _Alloc>::
18862 find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
18863 {
18864 ;
18865 size_type __size = this->size();
18866 if (__size && __n)
18867 {
18868 if (--__size > __pos)
18869 __size = __pos;
18870 do
18871 {
18872 if (traits_type::find(__s, __n, _M_data()[__size]))
18873 return __size;
18874 }
18875 while (__size-- != 0);
18876 }
18877 return npos;
18878 }
18879
18880 template<typename _CharT, typename _Traits, typename _Alloc>
18881 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18882 basic_string<_CharT, _Traits, _Alloc>::
18883 find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
18884 {
18885 ;
18886 for (; __pos < this->size(); ++__pos)
18887 if (!traits_type::find(__s, __n, _M_data()[__pos]))
18888 return __pos;
18889 return npos;
18890 }
18891
18892 template<typename _CharT, typename _Traits, typename _Alloc>
18893 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18894 basic_string<_CharT, _Traits, _Alloc>::
18895 find_first_not_of(_CharT __c, size_type __pos) const
18896 {
18897 for (; __pos < this->size(); ++__pos)
18898 if (!traits_type::eq(_M_data()[__pos], __c))
18899 return __pos;
18900 return npos;
18901 }
18902
18903 template<typename _CharT, typename _Traits, typename _Alloc>
18904 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18905 basic_string<_CharT, _Traits, _Alloc>::
18906 find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
18907 {
18908 ;
18909 size_type __size = this->size();
18910 if (__size)
18911 {
18912 if (--__size > __pos)
18913 __size = __pos;
18914 do
18915 {
18916 if (!traits_type::find(__s, __n, _M_data()[__size]))
18917 return __size;
18918 }
18919 while (__size--);
18920 }
18921 return npos;
18922 }
18923
18924 template<typename _CharT, typename _Traits, typename _Alloc>
18925 typename basic_string<_CharT, _Traits, _Alloc>::size_type
18926 basic_string<_CharT, _Traits, _Alloc>::
18927 find_last_not_of(_CharT __c, size_type __pos) const
18928 {
18929 size_type __size = this->size();
18930 if (__size)
18931 {
18932 if (--__size > __pos)
18933 __size = __pos;
18934 do
18935 {
18936 if (!traits_type::eq(_M_data()[__size], __c))
18937 return __size;
18938 }
18939 while (__size--);
18940 }
18941 return npos;
18942 }
18943
18944 template<typename _CharT, typename _Traits, typename _Alloc>
18945 int
18946 basic_string<_CharT, _Traits, _Alloc>::
18947 compare(size_type __pos, size_type __n, const basic_string& __str) const
18948 {
18949 _M_check(__pos, "basic_string::compare");
18950 __n = _M_limit(__pos, __n);
18951 const size_type __osize = __str.size();
18952 const size_type __len = std::min(__n, __osize);
18953 int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
18954 if (!__r)
18955 __r = __n - __osize;
18956 return __r;
18957 }
18958
18959 template<typename _CharT, typename _Traits, typename _Alloc>
18960 int
18961 basic_string<_CharT, _Traits, _Alloc>::
18962 compare(size_type __pos1, size_type __n1, const basic_string& __str,
18963 size_type __pos2, size_type __n2) const
18964 {
18965 _M_check(__pos1, "basic_string::compare");
18966 __str._M_check(__pos2, "basic_string::compare");
18967 __n1 = _M_limit(__pos1, __n1);
18968 __n2 = __str._M_limit(__pos2, __n2);
18969 const size_type __len = std::min(__n1, __n2);
18970 int __r = traits_type::compare(_M_data() + __pos1,
18971 __str.data() + __pos2, __len);
18972 if (!__r)
18973 __r = __n1 - __n2;
18974 return __r;
18975 }
18976
18977 template<typename _CharT, typename _Traits, typename _Alloc>
18978 int
18979 basic_string<_CharT, _Traits, _Alloc>::
18980 compare(const _CharT* __s) const
18981 {
18982 ;
18983 const size_type __size = this->size();
18984 const size_type __osize = traits_type::length(__s);
18985 const size_type __len = std::min(__size, __osize);
18986 int __r = traits_type::compare(_M_data(), __s, __len);
18987 if (!__r)
18988 __r = __size - __osize;
18989 return __r;
18990 }
18991
18992 template<typename _CharT, typename _Traits, typename _Alloc>
18993 int
18994 basic_string <_CharT, _Traits, _Alloc>::
18995 compare(size_type __pos, size_type __n1, const _CharT* __s) const
18996 {
18997 ;
18998 _M_check(__pos, "basic_string::compare");
18999 __n1 = _M_limit(__pos, __n1);
19000 const size_type __osize = traits_type::length(__s);
19001 const size_type __len = std::min(__n1, __osize);
19002 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
19003 if (!__r)
19004 __r = __n1 - __osize;
19005 return __r;
19006 }
19007
19008 template<typename _CharT, typename _Traits, typename _Alloc>
19009 int
19010 basic_string <_CharT, _Traits, _Alloc>::
19011 compare(size_type __pos, size_type __n1, const _CharT* __s,
19012 size_type __n2) const
19013 {
19014 ;
19015 _M_check(__pos, "basic_string::compare");
19016 __n1 = _M_limit(__pos, __n1);
19017 const size_type __len = std::min(__n1, __n2);
19018 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
19019 if (!__r)
19020 __r = __n1 - __n2;
19021 return __r;
19022 }
19023
19024
19025
19026
19027
19028 extern template class basic_string<char>;
19029 extern template
19030 basic_istream<char>&
19031 operator>>(basic_istream<char>&, string&);
19032 extern template
19033 basic_ostream<char>&
19034 operator<<(basic_ostream<char>&, const string&);
19035 extern template
19036 basic_istream<char>&
19037 getline(basic_istream<char>&, string&, char);
19038 extern template
19039 basic_istream<char>&
19040 getline(basic_istream<char>&, string&);
19041
19042
19043 extern template class basic_string<wchar_t>;
19044 extern template
19045 basic_istream<wchar_t>&
19046 operator>>(basic_istream<wchar_t>&, wstring&);
19047 extern template
19048 basic_ostream<wchar_t>&
19049 operator<<(basic_ostream<wchar_t>&, const wstring&);
19050 extern template
19051 basic_istream<wchar_t>&
19052 getline(basic_istream<wchar_t>&, wstring&, wchar_t);
19053 extern template
19054 basic_istream<wchar_t>&
19055 getline(basic_istream<wchar_t>&, wstring&);
19056
19057
19058 }
19059 # 58 "/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string" 2 3
19060 # 45 "/cern/ROOT/include/TString.h" 2
19061
19062
19063
19064
19065
19066 class TRegexp;
19067 class TPRegexp;
19068 class TString;
19069 class TSubString;
19070 class TObjArray;
19071 class TVirtualMutex;
19072
19073 extern TVirtualMutex *gStringMutex;
19074
19075 TString operator+(const TString &s1, const TString &s2);
19076 TString operator+(const TString &s, const char *cs);
19077 TString operator+(const char *cs, const TString &s);
19078 TString operator+(const TString &s, char c);
19079 TString operator+(const TString &s, Long_t i);
19080 TString operator+(const TString &s, ULong_t i);
19081 TString operator+(const TString &s, Long64_t i);
19082 TString operator+(const TString &s, ULong64_t i);
19083 TString operator+(char c, const TString &s);
19084 TString operator+(Long_t i, const TString &s);
19085 TString operator+(ULong_t i, const TString &s);
19086 TString operator+(Long64_t i, const TString &s);
19087 TString operator+(ULong64_t i, const TString &s);
19088 Bool_t operator==(const TString &s1, const TString &s2);
19089 Bool_t operator==(const TString &s1, const char *s2);
19090 Bool_t operator==(const TSubString &s1, const TSubString &s2);
19091 Bool_t operator==(const TSubString &s1, const TString &s2);
19092 Bool_t operator==(const TSubString &s1, const char *s2);
19093 # 88 "/cern/ROOT/include/TString.h"
19094 class TStringRef : public TRefCnt {
19095
19096 friend class TString;
19097 friend class TStringLong;
19098 friend class TSubString;
19099
19100 private:
19101 Ssiz_t fCapacity;
19102 Ssiz_t fNchars;
19103
19104 void UnLink();
19105
19106 Ssiz_t Length() const { return fNchars; }
19107 Ssiz_t Capacity() const { return fCapacity; }
19108 char *Data() const { return (char*)(this+1); }
19109
19110 char &operator[](Ssiz_t i) { return ((char*)(this+1))[i]; }
19111 char operator[](Ssiz_t i) const { return ((char*)(this+1))[i]; }
19112
19113 Ssiz_t First(char c) const;
19114 Ssiz_t First(const char *s) const;
19115 UInt_t Hash() const;
19116 UInt_t HashFoldCase() const;
19117 Ssiz_t Last(char) const;
19118
19119 static TStringRef *GetRep(Ssiz_t capac, Ssiz_t nchar);
19120 };
19121 # 125 "/cern/ROOT/include/TString.h"
19122 class TSubString {
19123
19124 friend class TStringLong;
19125 friend class TString;
19126
19127 friend Bool_t operator==(const TSubString &s1, const TSubString &s2);
19128 friend Bool_t operator==(const TSubString &s1, const TString &s2);
19129 friend Bool_t operator==(const TSubString &s1, const char *s2);
19130
19131 private:
19132 TString &fStr;
19133 Ssiz_t fBegin;
19134 Ssiz_t fExtent;
19135
19136
19137 TSubString(const TString &s, Ssiz_t start, Ssiz_t len);
19138
19139 protected:
19140 void SubStringError(Ssiz_t, Ssiz_t, Ssiz_t) const;
19141 void AssertElement(Ssiz_t i) const;
19142
19143 public:
19144 TSubString(const TSubString &s)
19145 : fStr(s.fStr), fBegin(s.fBegin), fExtent(s.fExtent) { }
19146
19147 TSubString &operator=(const char *s);
19148 TSubString &operator=(const TString &s);
19149 TSubString &operator=(const TSubString &s);
19150 char &operator()(Ssiz_t i);
19151 char &operator[](Ssiz_t i);
19152 char operator()(Ssiz_t i) const;
19153 char operator[](Ssiz_t i) const;
19154
19155 const char *Data() const;
19156 Ssiz_t Length() const { return fExtent; }
19157 Ssiz_t Start() const { return fBegin; }
19158 TString& String() { return fStr; }
19159 void ToLower();
19160 void ToUpper();
19161
19162
19163 Bool_t IsNull() const { return fBegin == kNPOS; }
19164 int operator!() const { return fBegin == kNPOS; }
19165 };
19166
19167
19168
19169
19170
19171
19172
19173 class TString {
19174
19175 friend class TSubString;
19176 friend class TStringRef;
19177
19178 friend TString operator+(const TString &s1, const TString &s2);
19179 friend TString operator+(const TString &s, const char *cs);
19180 friend TString operator+(const char *cs, const TString &s);
19181 friend TString operator+(const TString &s, char c);
19182 friend TString operator+(const TString &s, Long_t i);
19183 friend TString operator+(const TString &s, ULong_t i);
19184 friend TString operator+(const TString &s, Long64_t i);
19185 friend TString operator+(const TString &s, ULong64_t i);
19186 friend TString operator+(char c, const TString &s);
19187 friend TString operator+(Long_t i, const TString &s);
19188 friend TString operator+(ULong_t i, const TString &s);
19189 friend TString operator+(Long64_t i, const TString &s);
19190 friend TString operator+(ULong64_t i, const TString &s);
19191 friend Bool_t operator==(const TString &s1, const TString &s2);
19192 friend Bool_t operator==(const TString &s1, const char *s2);
19193
19194 private:
19195 static Ssiz_t fgInitialCapac;
19196 static Ssiz_t fgResizeInc;
19197 static Ssiz_t fgFreeboard;
19198
19199 void Clone();
19200 void Clone(Ssiz_t nc);
19201 void FormImp(const char *fmt, va_list ap);
19202
19203 protected:
19204 char *fData;
19205
19206
19207 TString(const char *a1, Ssiz_t n1, const char *a2, Ssiz_t n2);
19208 TStringRef *Pref() const { return (((TStringRef*) fData) - 1); }
19209 void AssertElement(Ssiz_t nc) const;
19210 void Clobber(Ssiz_t nc);
19211 void Cow();
19212 void Cow(Ssiz_t nc);
19213 static Ssiz_t AdjustCapacity(Ssiz_t nc);
19214 void InitChar(char c);
19215
19216 public:
19217 enum EStripType { kLeading = 0x1, kTrailing = 0x2, kBoth = 0x3 };
19218 enum ECaseCompare { kExact, kIgnoreCase };
19219
19220 TString();
19221 TString(Ssiz_t ic);
19222 TString(const TString &s) :
19223 fData(s.fData) { Pref()->AddReference(); }
19224
19225 TString(const char *s);
19226 TString(const char *s, Ssiz_t n);
19227 TString(const std::string &s);
19228 TString(char c) : fData(0) { InitChar(c); }
19229 TString(char c, Ssiz_t s);
19230 TString(const TSubString &sub);
19231
19232 virtual ~TString();
19233
19234
19235 virtual void FillBuffer(char *&buffer);
19236 virtual void ReadBuffer(char *&buffer);
19237 virtual Int_t Sizeof() const;
19238
19239 static TString *ReadString(TBuffer &b, const TClass *clReq);
19240 static void WriteString(TBuffer &b, const TString *a);
19241
19242 friend TBuffer &operator<<(TBuffer &b, const TString *obj);
19243
19244
19245 Bool_t Gets(FILE *fp, Bool_t chop=kTRUE);
19246 void Puts(FILE *fp);
19247
19248
19249 operator const char*() const { return fData; }
19250
19251
19252 TString &operator=(char s);
19253 TString &operator=(const char *s);
19254 TString &operator=(const TString &s);
19255 TString &operator=(const std::string &s);
19256 TString &operator=(const TSubString &s);
19257 TString &operator+=(const char *s);
19258 TString &operator+=(const TString &s);
19259 TString &operator+=(char c);
19260 TString &operator+=(Short_t i);
19261 TString &operator+=(UShort_t i);
19262 TString &operator+=(Int_t i);
19263 TString &operator+=(UInt_t i);
19264 TString &operator+=(Long_t i);
19265 TString &operator+=(ULong_t i);
19266 TString &operator+=(Float_t f);
19267 TString &operator+=(Double_t f);
19268 TString &operator+=(Long64_t i);
19269 TString &operator+=(ULong64_t i);
19270
19271
19272 char &operator[](Ssiz_t i);
19273 char &operator()(Ssiz_t i);
19274 TSubString operator()(Ssiz_t start, Ssiz_t len);
19275 TSubString operator()(const TRegexp &re);
19276 TSubString operator()(const TRegexp &re, Ssiz_t start);
19277 TSubString operator()(TPRegexp &re);
19278 TSubString operator()(TPRegexp &re, Ssiz_t start);
19279 TSubString SubString(const char *pat, Ssiz_t start = 0,
19280 ECaseCompare cmp = kExact);
19281 char operator[](Ssiz_t i) const;
19282 char operator()(Ssiz_t i) const;
19283 TSubString operator()(Ssiz_t start, Ssiz_t len) const;
19284 TSubString operator()(const TRegexp &re) const;
19285 TSubString operator()(const TRegexp &re, Ssiz_t start) const;
19286 TSubString operator()(TPRegexp &re) const;
19287 TSubString operator()(TPRegexp &re, Ssiz_t start) const;
19288 TSubString SubString(const char *pat, Ssiz_t start = 0,
19289 ECaseCompare cmp = kExact) const;
19290
19291
19292 TString &Append(const char *cs);
19293 TString &Append(const char *cs, Ssiz_t n);
19294 TString &Append(const TString &s);
19295 TString &Append(const TString &s, Ssiz_t n);
19296 TString &Append(char c, Ssiz_t rep = 1);
19297 Int_t Atoi() const;
19298 Long64_t Atoll() const;
19299 Double_t Atof() const;
19300 Bool_t BeginsWith(const char *s, ECaseCompare cmp = kExact) const;
19301 Bool_t BeginsWith(const TString &pat, ECaseCompare cmp = kExact) const;
19302 Ssiz_t Capacity() const { return Pref()->Capacity(); }
19303 Ssiz_t Capacity(Ssiz_t n);
19304 TString &Chop();
19305 int CompareTo(const char *cs, ECaseCompare cmp = kExact) const;
19306 int CompareTo(const TString &st, ECaseCompare cmp = kExact) const;
19307 Bool_t Contains(const char *pat, ECaseCompare cmp = kExact) const;
19308 Bool_t Contains(const TString &pat, ECaseCompare cmp = kExact) const;
19309 Bool_t Contains(const TRegexp &pat) const;
19310 Bool_t Contains(TPRegexp &pat) const;
19311 Int_t CountChar(Int_t c) const;
19312 TString Copy() const;
19313 const char *Data() const { return fData; }
19314 Bool_t EndsWith(const char *pat, ECaseCompare cmp = kExact) const;
19315 Ssiz_t First(char c) const { return Pref()->First(c); }
19316 Ssiz_t First(const char *cs) const { return Pref()->First(cs); }
19317 void Form(const char *fmt, ...);
19318 UInt_t Hash(ECaseCompare cmp = kExact) const;
19319 Ssiz_t Index(const char *pat, Ssiz_t i = 0,
19320 ECaseCompare cmp = kExact) const;
19321 Ssiz_t Index(const TString &s, Ssiz_t i = 0,
19322 ECaseCompare cmp = kExact) const;
19323 Ssiz_t Index(const char *pat, Ssiz_t patlen, Ssiz_t i,
19324 ECaseCompare cmp) const;
19325 Ssiz_t Index(const TString &s, Ssiz_t patlen, Ssiz_t i,
19326 ECaseCompare cmp) const;
19327 Ssiz_t Index(const TRegexp &pat, Ssiz_t i = 0) const;
19328 Ssiz_t Index(const TRegexp &pat, Ssiz_t *ext, Ssiz_t i = 0) const;
19329 Ssiz_t Index(TPRegexp &pat, Ssiz_t i = 0) const;
19330 Ssiz_t Index(TPRegexp &pat, Ssiz_t *ext, Ssiz_t i = 0) const;
19331 TString &Insert(Ssiz_t pos, const char *s);
19332 TString &Insert(Ssiz_t pos, const char *s, Ssiz_t extent);
19333 TString &Insert(Ssiz_t pos, const TString &s);
19334 TString &Insert(Ssiz_t pos, const TString &s, Ssiz_t extent);
19335 Bool_t IsAscii() const;
19336 Bool_t IsAlpha() const;
19337 Bool_t IsAlnum() const;
19338 Bool_t IsDigit() const;
19339 Bool_t IsFloat() const;
19340 Bool_t IsHex() const;
19341 Bool_t IsNull() const { return Pref()->fNchars == 0; }
19342 Bool_t IsWhitespace() const { return (Length() == CountChar(' ')); }
19343 Ssiz_t Last(char c) const { return Pref()->Last(c); }
19344 Ssiz_t Length() const { return Pref()->fNchars; }
19345 Bool_t MaybeRegexp() const;
19346 Bool_t MaybeWildcard() const;
19347 TString &Prepend(const char *cs);
19348 TString &Prepend(const char *cs, Ssiz_t n);
19349 TString &Prepend(const TString &s);
19350 TString &Prepend(const TString &s, Ssiz_t n);
19351 TString &Prepend(char c, Ssiz_t rep = 1);
19352 istream &ReadFile(istream &str);
19353 istream &ReadLine(istream &str,
19354 Bool_t skipWhite = kTRUE);
19355 istream &ReadString(istream &str);
19356 istream &ReadToDelim(istream &str, char delim = '\n');
19357 istream &ReadToken(istream &str);
19358 TString &Remove(Ssiz_t pos);
19359 TString &Remove(Ssiz_t pos, Ssiz_t n);
19360 TString &Remove(EStripType s, char c);
19361 TString &Replace(Ssiz_t pos, Ssiz_t n, const char *s);
19362 TString &Replace(Ssiz_t pos, Ssiz_t n, const char *s, Ssiz_t ns);
19363 TString &Replace(Ssiz_t pos, Ssiz_t n, const TString &s);
19364 TString &Replace(Ssiz_t pos, Ssiz_t n1, const TString &s, Ssiz_t n2);
19365 TString &ReplaceAll(const TString &s1, const TString &s2);
19366 TString &ReplaceAll(const TString &s1, const char *s2);
19367 TString &ReplaceAll(const char *s1, const TString &s2);
19368 TString &ReplaceAll(const char *s1, const char *s2);
19369 TString &ReplaceAll(const char *s1, Ssiz_t ls1, const char *s2, Ssiz_t ls2);
19370 void Resize(Ssiz_t n);
19371 TSubString Strip(EStripType s = kTrailing, char c = ' ');
19372 TSubString Strip(EStripType s = kTrailing, char c = ' ') const;
19373 void ToLower();
19374 void ToUpper();
19375 TObjArray *Tokenize(const TString &delim) const;
19376 Bool_t Tokenize(TString &tok, Ssiz_t &from, const char *delim = " ") const;
19377
19378
19379 static ULong_t Hash(const void *txt, Int_t ntxt);
19380 static Ssiz_t InitialCapacity(Ssiz_t ic = 15);
19381 static Ssiz_t MaxWaste(Ssiz_t mw = 15);
19382 static Ssiz_t ResizeIncrement(Ssiz_t ri = 16);
19383 static Ssiz_t GetInitialCapacity();
19384 static Ssiz_t GetResizeIncrement();
19385 static Ssiz_t GetMaxWaste();
19386 static TString Format(const char *fmt, ...);
19387
19388 private: static TClass *fgIsA; public: static TClass *Class(); static const char *Class_Name(); static Version_t Class_Version() { return 1; } static void Dictionary(); virtual TClass *IsA() const { return TString::Class(); } virtual void ShowMembers(TMemberInspector &insp, char *parent); virtual void Streamer(TBuffer &b); void StreamerNVirtual(TBuffer &b) { TString::Streamer(b); } static const char *DeclFileName() { return "/cern/ROOT/include/TString.h"; } static int ImplFileLine(); static const char *ImplFileName(); static int DeclFileLine() { return 391; }
19389 };
19390
19391
19392 istream &operator>>(istream &str, TString &s);
19393 ostream &operator<<(ostream &str, const TString &s);
19394
19395
19396
19397 TBuffer &operator>>(TBuffer &buf, TString *&sp);
19398
19399 TString ToLower(const TString &s);
19400 TString ToUpper(const TString &s);
19401
19402 inline UInt_t Hash(const TString &s) { return s.Hash(); }
19403 inline UInt_t Hash(const TString *s) { return s->Hash(); }
19404 UInt_t Hash(const char *s);
19405
19406 extern char *Form(const char *fmt, ...);
19407 extern void Printf(const char *fmt, ...);
19408 extern char *Strip(const char *str, char c = ' ');
19409 extern char *StrDup(const char *str);
19410 extern char *Compress(const char *str);
19411 extern int EscChar(const char *src, char *dst, int dstlen, char *specchars,
19412 char escchar);
19413 extern int UnEscChar(const char *src, char *dst, int dstlen, char *specchars,
19414 char escchar);
19415 # 431 "/cern/ROOT/include/TString.h"
19416 inline void TStringRef::UnLink()
19417 { if (RemoveReference() == 0) delete [] (char*)this; }
19418
19419 inline void TString::Cow()
19420 { if (Pref()->References() > 1) Clone(); }
19421
19422 inline void TString::Cow(Ssiz_t nc)
19423 { if (Pref()->References() > 1 || Capacity() < nc) Clone(nc); }
19424
19425 inline TString &TString::Append(const char *cs)
19426 { return Replace(Length(), 0, cs, cs ? strlen(cs) : 0); }
19427
19428 inline TString &TString::Append(const char *cs, Ssiz_t n)
19429 { return Replace(Length(), 0, cs, n); }
19430
19431 inline TString &TString::Append(const TString &s)
19432 { return Replace(Length(), 0, s.Data(), s.Length()); }
19433
19434 inline TString &TString::Append(const TString &s, Ssiz_t n)
19435 { return Replace(Length(), 0, s.Data(), TMath::Min(n, s.Length())); }
19436
19437 inline TString &TString::operator+=(const char *cs)
19438 { return Append(cs, cs ? strlen(cs) : 0); }
19439
19440 inline TString &TString::operator+=(const TString &s)
19441 { return Append(s.Data(), s.Length()); }
19442
19443 inline TString &TString::operator+=(char c)
19444 { return Append(c); }
19445
19446 inline TString &TString::operator+=(Long_t i)
19447 { return operator+=(::Form("%ld", i)); }
19448
19449 inline TString &TString::operator+=(ULong_t i)
19450 { return operator+=(::Form("%lu", i)); }
19451
19452 inline TString &TString::operator+=(Short_t i)
19453 { return operator+=((Long_t) i); }
19454
19455 inline TString &TString::operator+=(UShort_t i)
19456 { return operator+=((ULong_t) i); }
19457
19458 inline TString &TString::operator+=(Int_t i)
19459 { return operator+=((Long_t) i); }
19460
19461 inline TString &TString::operator+=(UInt_t i)
19462 { return operator+=((ULong_t) i); }
19463
19464 inline TString &TString::operator+=(Double_t f)
19465 { return operator+=(::Form("%9.9g", f)); }
19466
19467 inline TString &TString::operator+=(Float_t f)
19468 { return operator+=((Double_t) f); }
19469
19470 inline TString &TString::operator+=(Long64_t l)
19471 { return operator+=(::Form("%lld", l)); }
19472
19473 inline TString &TString::operator+=(ULong64_t ul)
19474 { return operator+=(::Form("%llu", ul)); }
19475
19476 inline Bool_t TString::BeginsWith(const char *s, ECaseCompare cmp) const
19477 { return Index(s, s ? strlen(s) : (Ssiz_t)0, (Ssiz_t)0, cmp) == 0; }
19478
19479 inline Bool_t TString::BeginsWith(const TString &pat, ECaseCompare cmp) const
19480 { return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) == 0; }
19481
19482 inline Bool_t TString::Contains(const TString &pat, ECaseCompare cmp) const
19483 { return Index(pat.Data(), pat.Length(), (Ssiz_t)0, cmp) != kNPOS; }
19484
19485 inline Bool_t TString::Contains(const char *s, ECaseCompare cmp) const
19486 { return Index(s, s ? strlen(s) : 0, (Ssiz_t)0, cmp) != kNPOS; }
19487
19488 inline Bool_t TString::Contains(const TRegexp &pat) const
19489 { return Index(pat, (Ssiz_t)0) != kNPOS; }
19490
19491 inline Bool_t TString::Contains(TPRegexp &pat) const
19492 { return Index(pat, (Ssiz_t)0) != kNPOS; }
19493
19494 inline Ssiz_t TString::Index(const char *s, Ssiz_t i, ECaseCompare cmp) const
19495 { return Index(s, s ? strlen(s) : 0, i, cmp); }
19496
19497 inline Ssiz_t TString::Index(const TString &s, Ssiz_t i, ECaseCompare cmp) const
19498 { return Index(s.Data(), s.Length(), i, cmp); }
19499
19500 inline Ssiz_t TString::Index(const TString &pat, Ssiz_t patlen, Ssiz_t i,
19501 ECaseCompare cmp) const
19502 { return Index(pat.Data(), patlen, i, cmp); }
19503
19504 inline TString &TString::Insert(Ssiz_t pos, const char *cs)
19505 { return Replace(pos, 0, cs, cs ? strlen(cs) : 0); }
19506
19507 inline TString &TString::Insert(Ssiz_t pos, const char *cs, Ssiz_t n)
19508 { return Replace(pos, 0, cs, n); }
19509
19510 inline TString &TString::Insert(Ssiz_t pos, const TString &s)
19511 { return Replace(pos, 0, s.Data(), s.Length()); }
19512
19513 inline TString &TString::Insert(Ssiz_t pos, const TString &s, Ssiz_t n)
19514 { return Replace(pos, 0, s.Data(), TMath::Min(n, s.Length())); }
19515
19516 inline TString &TString::Prepend(const char *cs)
19517 { return Replace(0, 0, cs, cs ? strlen(cs) : 0); }
19518
19519 inline TString &TString::Prepend(const char *cs, Ssiz_t n)
19520 { return Replace(0, 0, cs, n); }
19521
19522 inline TString &TString::Prepend(const TString &s)
19523 { return Replace(0, 0, s.Data(), s.Length()); }
19524
19525 inline TString &TString::Prepend(const TString &s, Ssiz_t n)
19526 { return Replace(0, 0, s.Data(), TMath::Min(n, s.Length())); }
19527
19528 inline TString &TString::Remove(Ssiz_t pos)
19529 { return Replace(pos, TMath::Max(0, Length()-pos), 0, 0); }
19530
19531 inline TString &TString::Remove(Ssiz_t pos, Ssiz_t n)
19532 { return Replace(pos, n, 0, 0); }
19533
19534 inline TString &TString::Chop()
19535 { return Remove(TMath::Max(0, Length()-1)); }
19536
19537 inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n, const char *cs)
19538 { return Replace(pos, n, cs, cs ? strlen(cs) : 0); }
19539
19540 inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n, const TString& s)
19541 { return Replace(pos, n, s.Data(), s.Length()); }
19542
19543 inline TString &TString::Replace(Ssiz_t pos, Ssiz_t n1, const TString &s,
19544 Ssiz_t n2)
19545 { return Replace(pos, n1, s.Data(), TMath::Min(s.Length(), n2)); }
19546
19547 inline TString &TString::ReplaceAll(const TString &s1, const TString &s2)
19548 { return ReplaceAll(s1.Data(), s1.Length(), s2.Data(), s2.Length()) ; }
19549
19550 inline TString &TString::ReplaceAll(const TString &s1, const char *s2)
19551 { return ReplaceAll(s1.Data(), s1.Length(), s2, s2 ? strlen(s2) : 0); }
19552
19553 inline TString &TString::ReplaceAll(const char *s1, const TString &s2)
19554 { return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2.Data(), s2.Length()); }
19555
19556 inline TString &TString::ReplaceAll(const char *s1,const char *s2)
19557 { return ReplaceAll(s1, s1 ? strlen(s1) : 0, s2, s2 ? strlen(s2) : 0); }
19558
19559 inline char &TString::operator()(Ssiz_t i)
19560 { Cow(); return fData[i]; }
19561
19562 inline char TString::operator[](Ssiz_t i) const
19563 { AssertElement(i); return fData[i]; }
19564
19565 inline char TString::operator()(Ssiz_t i) const
19566 { return fData[i]; }
19567
19568 inline const char *TSubString::Data() const
19569 { return fStr.Data() + fBegin; }
19570
19571
19572 inline char TSubString::operator[](Ssiz_t i) const
19573 { AssertElement(i); return fStr.fData[fBegin+i]; }
19574
19575 inline char TSubString::operator()(Ssiz_t i) const
19576 { return fStr.fData[fBegin+i]; }
19577
19578 inline TSubString &TSubString::operator=(const TSubString &s)
19579 { fStr = s.fStr; fBegin = s.fBegin; fExtent = s.fExtent; return *this; }
19580
19581
19582
19583
19584 inline Bool_t operator==(const TString &s1, const TString &s2)
19585 {
19586 return ((s1.Length() == s2.Length()) &&
19587 !memcmp(s1.Data(), s2.Data(), s1.Length()));
19588 }
19589
19590
19591 inline Bool_t operator!=(const TString &s1, const TString &s2)
19592 { return !(s1 == s2); }
19593
19594 inline Bool_t operator<(const TString &s1, const TString &s2)
19595 { return s1.CompareTo(s2) < 0; }
19596
19597 inline Bool_t operator>(const TString &s1, const TString &s2)
19598 { return s1.CompareTo(s2) > 0; }
19599
19600 inline Bool_t operator<=(const TString &s1, const TString &s2)
19601 { return s1.CompareTo(s2) <= 0; }
19602
19603 inline Bool_t operator>=(const TString &s1, const TString &s2)
19604 { return s1.CompareTo(s2) >= 0; }
19605
19606
19607 inline Bool_t operator!=(const TString &s1, const char *s2)
19608 { return !(s1 == s2); }
19609
19610 inline Bool_t operator<(const TString &s1, const char *s2)
19611 { return s1.CompareTo(s2) < 0; }
19612
19613 inline Bool_t operator>(const TString &s1, const char *s2)
19614 { return s1.CompareTo(s2) > 0; }
19615
19616 inline Bool_t operator<=(const TString &s1, const char *s2)
19617 { return s1.CompareTo(s2) <= 0; }
19618
19619 inline Bool_t operator>=(const TString &s1, const char *s2)
19620 { return s1.CompareTo(s2) >= 0; }
19621
19622 inline Bool_t operator==(const char *s1, const TString &s2)
19623 { return (s2 == s1); }
19624
19625 inline Bool_t operator!=(const char *s1, const TString &s2)
19626 { return !(s2 == s1); }
19627
19628 inline Bool_t operator<(const char *s1, const TString &s2)
19629 { return s2.CompareTo(s1) > 0; }
19630
19631 inline Bool_t operator>(const char *s1, const TString &s2)
19632 { return s2.CompareTo(s1) < 0; }
19633
19634 inline Bool_t operator<=(const char *s1, const TString &s2)
19635 { return s2.CompareTo(s1) >= 0; }
19636
19637 inline Bool_t operator>=(const char *s1, const TString &s2)
19638 { return s2.CompareTo(s1) <= 0; }
19639
19640
19641
19642
19643
19644 inline Bool_t operator==(const TString &s1, const TSubString &s2)
19645 { return (s2 == s1); }
19646
19647 inline Bool_t operator==(const char *s1, const TSubString &s2)
19648 { return (s2 == s1); }
19649
19650 inline Bool_t operator!=(const TSubString &s1, const char *s2)
19651 { return !(s1 == s2); }
19652
19653 inline Bool_t operator!=(const TSubString &s1, const TString &s2)
19654 { return !(s1 == s2); }
19655
19656 inline Bool_t operator!=(const TSubString &s1, const TSubString &s2)
19657 { return !(s1 == s2); }
19658
19659 inline Bool_t operator!=(const TString &s1, const TSubString &s2)
19660 { return !(s2 == s1); }
19661
19662 inline Bool_t operator!=(const char *s1, const TSubString &s2)
19663 { return !(s2 == s1); }
19664 # 4 "include/PamVMCGeoID.h" 2
19665
19666 struct pGeoID {
19667
19668 };
19669
19670 class PamVMCGeoID {
19671
19672 protected:
19673
19674 TString fvolname;
19675 Int_t fvoffset;
19676
19677 public:
19678
19679 PamVMCGeoID(): fvoffset(0), fvolname("none") {};
19680 PamVMCGeoID(const char *vname,Int_t voff): fvoffset(voff), fvolname(vname) {};
19681 virtual ~PamVMCGeoID(){};
19682
19683 virtual void FillVolID(pGeoID * gid) = 0;
19684 void SetVolName(const char *vname) {fvolname=vname;}
19685 void SetVolOffset(Int_t voff) {fvoffset=voff;}
19686
19687 const char *GetVolName() { return fvolname.Data();}
19688
19689 Int_t GetVolOffset() { return fvoffset;}
19690
19691 void Print() const {
19692 };
19693
19694 };
19695 # 5 "include/PamVMCCaloID.h" 2
19696
19697
19698
19699
19700 struct pCalID: public pGeoID {
19701 Int_t casiNo;
19702 Int_t caplNo;
19703 Int_t castNo;
19704
19705 pCalID(): casiNo(-1), caplNo(-1), castNo(-1) {};
19706
19707 };
19708
19709 class PamVMCCaloID : public PamVMCGeoID {
19710 private:
19711
19712 pCalID fcalid;
19713
19714 public:
19715 PamVMCCaloID() {};
19716 PamVMCCaloID( "CAST" ,3): PamVMCGeoID( "CAST" ,3) {};
19717 void FillVolID(pGeoID *gid){ };
19718
19719
19720 };
19721 # 2 "src/PamVMCCaloID.cxx" 2

  ViewVC Help
Powered by ViewVC 1.1.23