]> git.wh0rd.org - ICEs.git/blob - 212337/Command.ii
more
[ICEs.git] / 212337 / Command.ii
1 # 1 "Command.cc"
2 # 1 "<built-in>"
3 #define __STDC__ 1
4 #define __cplusplus 1
5 #define __STDC_HOSTED__ 1
6 #define __GNUC__ 4
7 #define __GNUG__ 4
8 #define __GNUC_MINOR__ 2
9 #define __GNUC_PATCHLEVEL__ 3
10 #define __SIZE_TYPE__ long unsigned int
11 #define __PTRDIFF_TYPE__ long int
12 #define __WCHAR_TYPE__ int
13 #define __WINT_TYPE__ unsigned int
14 #define __INTMAX_TYPE__ long int
15 #define __UINTMAX_TYPE__ long unsigned int
16 #define __GXX_WEAK__ 1
17 #define __DEPRECATED 1
18 #define __EXCEPTIONS 1
19 #define __GXX_ABI_VERSION 1002
20 #define __SCHAR_MAX__ 127
21 #define __SHRT_MAX__ 32767
22 #define __INT_MAX__ 2147483647
23 #define __LONG_MAX__ 9223372036854775807L
24 #define __LONG_LONG_MAX__ 9223372036854775807LL
25 #define __WCHAR_MAX__ 2147483647
26 #define __CHAR_BIT__ 8
27 #define __INTMAX_MAX__ 9223372036854775807L
28 #define __FLT_EVAL_METHOD__ 0
29 #define __DEC_EVAL_METHOD__ 2
30 #define __FLT_RADIX__ 2
31 #define __FLT_MANT_DIG__ 24
32 #define __FLT_DIG__ 6
33 #define __FLT_MIN_EXP__ (-125)
34 #define __FLT_MIN_10_EXP__ (-37)
35 #define __FLT_MAX_EXP__ 128
36 #define __FLT_MAX_10_EXP__ 38
37 #define __FLT_MAX__ 3.40282347e+38F
38 #define __FLT_MIN__ 1.17549435e-38F
39 #define __FLT_EPSILON__ 1.19209290e-7F
40 #define __FLT_DENORM_MIN__ 1.40129846e-45F
41 #define __FLT_HAS_DENORM__ 1
42 #define __FLT_HAS_INFINITY__ 1
43 #define __FLT_HAS_QUIET_NAN__ 1
44 #define __DBL_MANT_DIG__ 53
45 #define __DBL_DIG__ 15
46 #define __DBL_MIN_EXP__ (-1021)
47 #define __DBL_MIN_10_EXP__ (-307)
48 #define __DBL_MAX_EXP__ 1024
49 #define __DBL_MAX_10_EXP__ 308
50 #define __DBL_MAX__ 1.7976931348623157e+308
51 #define __DBL_MIN__ 2.2250738585072014e-308
52 #define __DBL_EPSILON__ 2.2204460492503131e-16
53 #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
54 #define __DBL_HAS_DENORM__ 1
55 #define __DBL_HAS_INFINITY__ 1
56 #define __DBL_HAS_QUIET_NAN__ 1
57 #define __LDBL_MANT_DIG__ 64
58 #define __LDBL_DIG__ 18
59 #define __LDBL_MIN_EXP__ (-16381)
60 #define __LDBL_MIN_10_EXP__ (-4931)
61 #define __LDBL_MAX_EXP__ 16384
62 #define __LDBL_MAX_10_EXP__ 4932
63 #define __DECIMAL_DIG__ 21
64 #define __LDBL_MAX__ 1.18973149535723176502e+4932L
65 #define __LDBL_MIN__ 3.36210314311209350626e-4932L
66 #define __LDBL_EPSILON__ 1.08420217248550443401e-19L
67 #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
68 #define __LDBL_HAS_DENORM__ 1
69 #define __LDBL_HAS_INFINITY__ 1
70 #define __LDBL_HAS_QUIET_NAN__ 1
71 #define __DEC32_MANT_DIG__ 7
72 #define __DEC32_MIN_EXP__ (-95)
73 #define __DEC32_MAX_EXP__ 96
74 #define __DEC32_MIN__ 1E-95DF
75 #define __DEC32_MAX__ 9.999999E96DF
76 #define __DEC32_EPSILON__ 1E-6DF
77 #define __DEC32_DEN__ 0.000001E-95DF
78 #define __DEC64_MANT_DIG__ 16
79 #define __DEC64_MIN_EXP__ (-383)
80 #define __DEC64_MAX_EXP__ 384
81 #define __DEC64_MIN__ 1E-383DD
82 #define __DEC64_MAX__ 9.999999999999999E384DD
83 #define __DEC64_EPSILON__ 1E-15DD
84 #define __DEC64_DEN__ 0.000000000000001E-383DD
85 #define __DEC128_MANT_DIG__ 34
86 #define __DEC128_MIN_EXP__ (-6143)
87 #define __DEC128_MAX_EXP__ 6144
88 #define __DEC128_MIN__ 1E-6143DL
89 #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
90 #define __DEC128_EPSILON__ 1E-33DL
91 #define __DEC128_DEN__ 0.000000000000000000000000000000001E-6143DL
92 #define __REGISTER_PREFIX__
93 #define __USER_LABEL_PREFIX__
94 #define __VERSION__ "4.2.3 (Gentoo 4.2.3 p1.0)"
95 #define __GNUC_GNU_INLINE__ 1
96 #define _LP64 1
97 #define __LP64__ 1
98 #define __OPTIMIZE__ 1
99 #define __FINITE_MATH_ONLY__ 0
100 #define __amd64 1
101 #define __amd64__ 1
102 #define __x86_64 1
103 #define __x86_64__ 1
104 #define __tune_k8__ 1
105 #define __MMX__ 1
106 #define __3dNOW__ 1
107 #define __3dNOW_A__ 1
108 #define __SSE__ 1
109 #define __SSE2__ 1
110 #define __SSE3__ 1
111 #define __SSE_MATH__ 1
112 #define __SSE2_MATH__ 1
113 #define __k8 1
114 #define __k8__ 1
115 #define __gnu_linux__ 1
116 #define __linux 1
117 #define __linux__ 1
118 #define linux 1
119 #define __unix 1
120 #define __unix__ 1
121 #define unix 1
122 #define __ELF__ 1
123 # 1 "<command-line>"
124 #define _GNU_SOURCE 1
125 #define HAVE_CONFIG_H 1
126 #define LOCALEDIR "/usr/share/locale"
127 #define HAVE_CONFIG_H 1
128 # 1 "Command.cc"
129 # 35 "Command.cc"
130 # 1 "Command.h" 1
131 # 36 "Command.h"
132 #define _D_COMMAND_H_
133
134 # 1 "common.h" 1
135 # 36 "common.h"
136 #define _D_COMMON_H_
137
138
139 # 1 "../config.h" 1
140 # 19 "../config.h"
141 #define ENABLE_MESSAGE_DIGEST 1
142 # 29 "../config.h"
143 #define ENABLE_SSL 1
144
145
146 #define HAVE_ALLOCA 1
147
148
149
150 #define HAVE_ALLOCA_H 1
151
152
153 #define HAVE_ARGZ_COUNT 1
154
155
156 #define HAVE_ARGZ_H 1
157
158
159 #define HAVE_ARGZ_NEXT 1
160
161
162 #define HAVE_ARGZ_STRINGIFY 1
163
164
165 #define HAVE_ARPA_INET_H 1
166
167
168 #define HAVE_ASPRINTF 1
169
170
171 #define HAVE_BASENAME 1
172
173
174 #define HAVE_BUILTIN_EXPECT 1
175 # 71 "../config.h"
176 #define HAVE_DAEMON 1
177
178
179
180
181
182
183
184 #define HAVE_DECL_FEOF_UNLOCKED 1
185
186
187
188 #define HAVE_DECL_FGETS_UNLOCKED 1
189
190
191
192 #define HAVE_DECL_GETC_UNLOCKED 1
193
194
195
196 #define HAVE_DECL__SNPRINTF 0
197
198
199
200 #define HAVE_DECL__SNWPRINTF 0
201
202
203
204
205
206 #define HAVE_EVP_DIGESTINIT_EX 1
207
208
209 #define HAVE_EVP_SHA256 1
210
211
212 #define HAVE_FCNTL_H 1
213
214
215 #define HAVE_FTRUNCATE 1
216
217
218 #define HAVE_FWPRINTF 1
219
220
221 #define HAVE_GAI_STRERROR 1
222
223
224 #define HAVE_GETADDRINFO 1
225
226
227 #define HAVE_GETCWD 1
228
229
230 #define HAVE_GETEGID 1
231
232
233 #define HAVE_GETEUID 1
234
235
236 #define HAVE_GETGID 1
237
238
239 #define HAVE_GETPAGESIZE 1
240
241
242
243
244
245 #define HAVE_GETTIMEOFDAY 1
246
247
248 #define HAVE_GETUID 1
249
250
251 #define HAVE_ICONV 1
252
253
254 #define HAVE_INET_ATON 1
255
256
257 #define HAVE_INET_NTOA 1
258
259
260 #define HAVE_INTMAX_T 1
261
262
263 #define HAVE_INTTYPES_H 1
264
265
266
267 #define HAVE_INTTYPES_H_WITH_UINTMAX 1
268
269
270
271
272
273 #define HAVE_LANGINFO_CODESET 1
274
275
276 #define HAVE_LANGINFO_H 1
277
278
279 #define HAVE_LC_MESSAGES 1
280 # 192 "../config.h"
281 #define HAVE_LIBGEN_H 1
282
283
284
285
286
287 #define HAVE_LIBINTL_H 1
288
289
290 #define HAVE_LIBSSL 1
291
292
293 #define HAVE_LIBXML2 1
294
295
296 #define HAVE_LIMITS_H 1
297
298
299 #define HAVE_LOCALE_H 1
300
301
302 #define HAVE_LOCALTIME_R 1
303
304
305 #define HAVE_LONG_LONG_INT 1
306
307
308
309 #define HAVE_MALLOC 1
310
311
312 #define HAVE_MALLOC_H 1
313
314
315 #define HAVE_MEMCHR 1
316
317
318 #define HAVE_MEMORY_H 1
319
320
321 #define HAVE_MEMPCPY 1
322
323
324 #define HAVE_MEMSET 1
325
326
327 #define HAVE_MKDIR 1
328
329
330 #define HAVE_MMAP 1
331
332
333 #define HAVE_MUNMAP 1
334
335
336 #define HAVE_NETDB_H 1
337
338
339 #define HAVE_NETINET_IN_H 1
340
341
342 #define HAVE_NL_LANGINFO 1
343
344
345
346 #define HAVE_NL_LOCALE_NAME 1
347
348
349
350
351
352 #define HAVE_POSIX_MEMALIGN 1
353
354
355 #define HAVE_POSIX_PRINTF 1
356
357
358 #define HAVE_PTHREAD_MUTEX_RECURSIVE 1
359
360
361 #define HAVE_PTHREAD_RWLOCK 1
362
363
364 #define HAVE_PUTENV 1
365
366
367 #define HAVE_RANDOM 1
368
369
370
371 #define HAVE_REALLOC 1
372
373
374 #define HAVE_RMDIR 1
375
376
377 #define HAVE_SELECT 1
378
379
380 #define HAVE_SETENV 1
381
382
383 #define HAVE_SETLOCALE 1
384
385
386 #define HAVE_SIGACTION 1
387
388
389 #define HAVE_SLEEP 1
390
391
392 #define HAVE_SNPRINTF 1
393
394
395 #define HAVE_SOCKET 1
396
397
398 #define HAVE_SRANDOM 1
399
400
401
402
403
404
405 #define HAVE_STDBOOL_H 1
406
407
408 #define HAVE_STDDEF_H 1
409
410
411 #define HAVE_STDINT_H 1
412
413
414
415 #define HAVE_STDINT_H_WITH_UINTMAX 1
416
417
418 #define HAVE_STDIO_EXT_H 1
419
420
421 #define HAVE_STDLIB_H 1
422
423
424 #define HAVE_STPCPY 1
425
426
427 #define HAVE_STRCASECMP 1
428
429
430 #define HAVE_STRCHR 1
431
432
433 #define HAVE_STRCSPN 1
434
435
436 #define HAVE_STRDUP 1
437
438
439 #define HAVE_STRERROR 1
440
441
442 #define HAVE_STRINGS_H 1
443
444
445 #define HAVE_STRING_H 1
446
447
448 #define HAVE_STRPTIME 1
449
450
451 #define HAVE_STRSTR 1
452
453
454 #define HAVE_STRTOL 1
455
456
457 #define HAVE_STRTOUL 1
458
459
460 #define HAVE_SYS_PARAM_H 1
461
462
463 #define HAVE_SYS_SELECT_H 1
464
465
466 #define HAVE_SYS_SOCKET_H 1
467
468
469 #define HAVE_SYS_STAT_H 1
470
471
472 #define HAVE_SYS_TIME_H 1
473
474
475 #define HAVE_SYS_TYPES_H 1
476
477
478 #define HAVE_TIMEGM 1
479
480
481 #define HAVE_TSEARCH 1
482
483
484 #define HAVE_UINTMAX_T 1
485
486
487 #define HAVE_UNISTD_H 1
488
489
490 #define HAVE_UNSETENV 1
491
492
493 #define HAVE_UNSIGNED_LONG_LONG_INT 1
494
495
496 #define HAVE_USLEEP 1
497
498
499
500 #define HAVE_VISIBILITY 1
501
502
503 #define HAVE_VPRINTF 1
504
505
506 #define HAVE_WCHAR_T 1
507
508
509 #define HAVE_WCSLEN 1
510
511
512
513
514
515 #define HAVE_WINT_T 1
516 # 435 "../config.h"
517 #define HAVE___ARGZ_COUNT 1
518
519
520 #define HAVE___ARGZ_NEXT 1
521
522
523 #define HAVE___ARGZ_STRINGIFY 1
524
525
526 #define HAVE___FSETLOCKING 1
527
528
529 #define ICONV_CONST
530
531
532 #define INTDIV0_RAISES_SIGFPE 1
533
534
535
536 #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
537
538
539 #define PACKAGE "aria2c"
540
541
542 #define PACKAGE_BUGREPORT "t-tujikawa@users.sourceforge.net"
543
544
545 #define PACKAGE_NAME "aria2c"
546
547
548 #define PACKAGE_STRING "aria2c 0.13.0"
549
550
551 #define PACKAGE_TARNAME "aria2c"
552
553
554 #define PACKAGE_VERSION "0.13.0"
555 # 481 "../config.h"
556 #define SELECT_TYPE_ARG1 int
557
558
559 #define SELECT_TYPE_ARG234 (fd_set *)
560
561
562 #define SELECT_TYPE_ARG5 (struct timeval *)
563
564
565
566 #define SIZE_MAX (((1UL << 63) - 1) * 2 + 1)
567 # 502 "../config.h"
568 #define STDC_HEADERS 1
569
570
571 #define TARGET "x86_64-pc-linux-gnu"
572
573
574 #define TIME_WITH_SYS_TIME 1
575
576
577
578
579
580 #define USE_POSIX_THREADS 1
581
582
583
584 #define USE_POSIX_THREADS_WEAK 1
585 # 538 "../config.h"
586 #define VERSION "0.13.0"
587 # 570 "../config.h"
588 #define __EXTENSIONS__ 1
589
590
591 #define _POSIX_PTHREAD_SEMANTICS 1
592
593
594 #define _TANDEM_SOURCE 1
595 # 610 "../config.h"
596 #define __libc_lock_t gl_lock_t
597 #define __libc_lock_define gl_lock_define
598 #define __libc_lock_define_initialized gl_lock_define_initialized
599 #define __libc_lock_init gl_lock_init
600 #define __libc_lock_lock gl_lock_lock
601 #define __libc_lock_unlock gl_lock_unlock
602 #define __libc_lock_recursive_t gl_recursive_lock_t
603 #define __libc_lock_define_recursive gl_recursive_lock_define
604 #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
605 #define __libc_lock_init_recursive gl_recursive_lock_init
606 #define __libc_lock_lock_recursive gl_recursive_lock_lock
607 #define __libc_lock_unlock_recursive gl_recursive_lock_unlock
608 #define glthread_in_use libintl_thread_in_use
609 #define glthread_lock_init libintl_lock_init
610 #define glthread_lock_lock libintl_lock_lock
611 #define glthread_lock_unlock libintl_lock_unlock
612 #define glthread_lock_destroy libintl_lock_destroy
613 #define glthread_rwlock_init libintl_rwlock_init
614 #define glthread_rwlock_rdlock libintl_rwlock_rdlock
615 #define glthread_rwlock_wrlock libintl_rwlock_wrlock
616 #define glthread_rwlock_unlock libintl_rwlock_unlock
617 #define glthread_rwlock_destroy libintl_rwlock_destroy
618 #define glthread_recursive_lock_init libintl_recursive_lock_init
619 #define glthread_recursive_lock_lock libintl_recursive_lock_lock
620 #define glthread_recursive_lock_unlock libintl_recursive_lock_unlock
621 #define glthread_recursive_lock_destroy libintl_recursive_lock_destroy
622 #define glthread_once libintl_once
623 #define glthread_once_call libintl_once_call
624 #define glthread_once_singlethreaded libintl_once_singlethreaded
625 # 40 "common.h" 2
626 # 51 "common.h"
627 # 1 "../lib/gettext.h" 1
628 # 20 "../lib/gettext.h"
629 #define _LIBGETTEXT_H 1
630 # 45 "../lib/gettext.h"
631 #define gettext(Msgid) ((const char *) (Msgid))
632 #define dgettext(Domainname,Msgid) ((const char *) (Msgid))
633 #define dcgettext(Domainname,Msgid,Category) ((const char *) (Msgid))
634 #define ngettext(Msgid1,Msgid2,N) ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
635
636 #define dngettext(Domainname,Msgid1,Msgid2,N) ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
637
638 #define dcngettext(Domainname,Msgid1,Msgid2,N,Category) ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
639
640 #define textdomain(Domainname) ((const char *) (Domainname))
641 #define bindtextdomain(Domainname,Dirname) ((const char *) (Dirname))
642 #define bind_textdomain_codeset(Domainname,Codeset) ((const char *) (Codeset))
643 # 67 "../lib/gettext.h"
644 #define gettext_noop(String) String
645 # 52 "common.h" 2
646 #define _(String) gettext(String)
647
648
649 #define __STDC_LIMIT_MACROS
650 # 39 "Command.h" 2
651 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 1 3
652 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 3
653 #define _GLIBCXX_DEQUE 1
654
655
656 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 3
657
658 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 1 3
659 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 3
660 #define _FUNCTEXCEPT_H 1
661
662 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 1 3
663 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
664 #define _CXXCONFIG 1
665
666
667 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3
668 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 3
669 #define _GLIBCXX_OS_DEFINES 1
670
671
672
673
674
675 #define __NO_CTYPE 1
676
677 # 1 "/usr/include/features.h" 1 3 4
678
679
680
681
682
683
684
685 # 1 "/usr/include/gentoo-multilib/amd64/features.h" 1 3 4
686 # 20 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
687 #define _FEATURES_H 1
688 # 93 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
689 #undef __USE_ISOC99
690 #undef __USE_ISOC95
691 #undef __USE_POSIX
692 #undef __USE_POSIX2
693 #undef __USE_POSIX199309
694 #undef __USE_POSIX199506
695 #undef __USE_XOPEN
696 #undef __USE_XOPEN_EXTENDED
697 #undef __USE_UNIX98
698 #undef __USE_XOPEN2K
699 #undef __USE_LARGEFILE
700 #undef __USE_LARGEFILE64
701 #undef __USE_FILE_OFFSET64
702 #undef __USE_BSD
703 #undef __USE_SVID
704 #undef __USE_MISC
705 #undef __USE_ATFILE
706 #undef __USE_GNU
707 #undef __USE_REENTRANT
708 #undef __USE_FORTIFY_LEVEL
709 #undef __FAVOR_BSD
710 #undef __KERNEL_STRICT_NAMES
711
712
713
714
715 #define __KERNEL_STRICT_NAMES
716
717
718
719 #define __USE_ANSI 1
720 # 133 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
721 #define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
722 # 150 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
723 #undef _ISOC99_SOURCE
724 #define _ISOC99_SOURCE 1
725 #undef _POSIX_SOURCE
726 #define _POSIX_SOURCE 1
727 #undef _POSIX_C_SOURCE
728 #define _POSIX_C_SOURCE 200112L
729 #undef _XOPEN_SOURCE
730 #define _XOPEN_SOURCE 600
731 #undef _XOPEN_SOURCE_EXTENDED
732 #define _XOPEN_SOURCE_EXTENDED 1
733 #undef _LARGEFILE64_SOURCE
734 #define _LARGEFILE64_SOURCE 1
735 #undef _BSD_SOURCE
736 #define _BSD_SOURCE 1
737 #undef _SVID_SOURCE
738 #define _SVID_SOURCE 1
739 #undef _ATFILE_SOURCE
740 #define _ATFILE_SOURCE 1
741 # 186 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
742 #define __USE_ISOC99 1
743
744
745
746
747
748 #define __USE_ISOC95 1
749 # 210 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
750 #define __USE_POSIX 1
751
752
753
754 #define __USE_POSIX2 1
755
756
757
758 #define __USE_POSIX199309 1
759
760
761
762 #define __USE_POSIX199506 1
763
764
765
766 #define __USE_XOPEN2K 1
767
768
769
770 #define __USE_XOPEN 1
771
772 #define __USE_XOPEN_EXTENDED 1
773 #define __USE_UNIX98 1
774 #undef _LARGEFILE_SOURCE
775 #define _LARGEFILE_SOURCE 1
776
777 #define __USE_XOPEN2K 1
778 #undef __USE_ISOC99
779 #define __USE_ISOC99 1
780 # 249 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
781 #define __USE_LARGEFILE 1
782
783
784
785 #define __USE_LARGEFILE64 1
786
787
788
789
790
791
792
793 #define __USE_MISC 1
794
795
796
797 #define __USE_BSD 1
798
799
800
801 #define __USE_SVID 1
802
803
804
805 #define __USE_ATFILE 1
806
807
808
809 #define __USE_GNU 1
810 # 292 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
811 #define __USE_FORTIFY_LEVEL 0
812
813
814
815 #define __STDC_IEC_559__ 1
816 #define __STDC_IEC_559_COMPLEX__ 1
817
818
819 #define __STDC_ISO_10646__ 200009L
820
821
822
823
824
825
826
827 #undef __GNU_LIBRARY__
828 #define __GNU_LIBRARY__ 6
829
830
831
832 #define __GLIBC__ 2
833 #define __GLIBC_MINOR__ 7
834
835 #define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
836
837
838
839
840
841
842
843 #define __GLIBC_HAVE_LONG_LONG 1
844
845
846
847
848
849 # 1 "/usr/include/sys/cdefs.h" 1 3 4
850
851
852
853
854
855
856
857 # 1 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 1 3 4
858 # 21 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
859 #define _SYS_CDEFS_H 1
860 # 36 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
861 #undef __P
862 #undef __PMT
863 # 51 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
864 #define __THROW throw ()
865 #define __NTH(fct) fct throw ()
866 # 74 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
867 #define __P(args) args
868 #define __PMT(args) args
869
870
871
872
873 #define __CONCAT(x,y) x ## y
874 #define __STRING(x) #x
875
876
877 #define __ptr_t void *
878 #define __long_double_t long double
879
880
881
882
883 #define __BEGIN_DECLS extern "C" {
884 #define __END_DECLS }
885 # 114 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
886 #define __BEGIN_NAMESPACE_STD
887 #define __END_NAMESPACE_STD
888 #define __USING_NAMESPACE_STD(name)
889 #define __BEGIN_NAMESPACE_C99
890 #define __END_NAMESPACE_C99
891 #define __USING_NAMESPACE_C99(name)
892
893
894
895
896
897 #define __bounded
898 #define __unbounded
899 #define __ptrvalue
900
901
902
903
904 #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
905 #define __bos0(ptr) __builtin_object_size (ptr, 0)
906 # 142 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
907 #define __warndecl(name,msg) extern void name (void)
908 #define __warnattr(msg)
909 #define __errordecl(name,msg) extern void name (void)
910
911
912
913
914
915 #define __flexarr []
916 # 177 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
917 #define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))
918
919 #define __REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias))
920
921
922
923
924
925 #define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
926 #define __ASMNAME2(prefix,cname) __STRING (prefix) cname
927 # 207 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
928 #define __attribute_malloc__ __attribute__ ((__malloc__))
929 # 216 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
930 #define __attribute_pure__ __attribute__ ((__pure__))
931 # 225 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
932 #define __attribute_used__ __attribute__ ((__used__))
933 #define __attribute_noinline__ __attribute__ ((__noinline__))
934
935
936
937
938
939
940
941 #define __attribute_deprecated__ __attribute__ ((__deprecated__))
942 # 246 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
943 #define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
944 # 256 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
945 #define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))
946 # 265 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
947 #define __nonnull(params) __attribute__ ((__nonnull__ params))
948
949
950
951
952
953
954
955 #define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))
956 # 282 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
957 #define __wur
958
959
960
961
962 #define __always_inline __inline __attribute__ ((__always_inline__))
963 # 337 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
964 #define __restrict_arr
965 # 348 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
966 # 1 "/usr/include/bits/wordsize.h" 1 3 4
967
968
969
970
971
972
973
974 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
975
976
977
978 #define __WORDSIZE 64
979 #define __WORDSIZE_COMPAT32 1
980 # 9 "/usr/include/bits/wordsize.h" 2 3 4
981 # 349 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 2 3 4
982 # 370 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
983 #define __LDBL_REDIR1(name,proto,alias) name proto
984 #define __LDBL_REDIR(name,proto) name proto
985 #define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW
986 #define __LDBL_REDIR_NTH(name,proto) name proto __THROW
987 #define __LDBL_REDIR_DECL(name)
988
989 #define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)
990 #define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)
991 # 9 "/usr/include/sys/cdefs.h" 2 3 4
992 # 331 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4
993 # 354 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
994 # 1 "/usr/include/gnu/stubs.h" 1 3 4
995
996
997
998
999
1000
1001
1002 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 1 3 4
1003
1004
1005
1006 # 1 "/usr/include/bits/wordsize.h" 1 3 4
1007
1008
1009
1010
1011
1012
1013
1014 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
1015
1016
1017
1018 #define __WORDSIZE 64
1019 #define __WORDSIZE_COMPAT32 1
1020 # 9 "/usr/include/bits/wordsize.h" 2 3 4
1021 # 5 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4
1022
1023
1024
1025
1026 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
1027
1028
1029
1030 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 1 3 4
1031 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 3 4
1032 #define __stub_bdflush
1033 #define __stub_chflags
1034 #define __stub_fattach
1035 #define __stub_fchflags
1036 #define __stub_fdetach
1037 #define __stub_getmsg
1038 #define __stub_gtty
1039 #define __stub_lchmod
1040 #define __stub_putmsg
1041 #define __stub_revoke
1042 #define __stub_setlogin
1043 #define __stub_sigreturn
1044 #define __stub_sstk
1045 #define __stub_stty
1046 # 5 "/usr/include/gnu/stubs-64.h" 2 3 4
1047 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4
1048 # 9 "/usr/include/gnu/stubs.h" 2 3 4
1049 # 355 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4
1050 # 9 "/usr/include/features.h" 2 3 4
1051 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 2 3
1052
1053
1054
1055 #define __NO_STRING_INLINES
1056 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 2 3
1057
1058
1059 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3
1060 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h" 3
1061 #define _GLIBCXX_CPU_DEFINES 1
1062 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 2 3
1063
1064
1065 #define __GLIBCXX__ 20080201
1066
1067
1068 #define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
1069
1070
1071 #define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))
1072 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1073 #define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
1074 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1075 #define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY(default) {
1076 #define _GLIBCXX_END_NAMESPACE }
1077
1078
1079
1080
1081 #define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X,Y) _GLIBCXX_BEGIN_NAMESPACE(X)
1082 #define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
1083 # 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1084 #define _GLIBCXX_STD std
1085 #define _GLIBCXX_EXT __gnu_cxx
1086
1087
1088
1089
1090 #undef _GLIBCXX_LONG_DOUBLE_COMPAT
1091
1092
1093
1094 namespace std __attribute__ ((__visibility__ ("default"))) {
1095
1096
1097
1098
1099
1100
1101
1102 #define _GLIBCXX_LDBL_NAMESPACE
1103 #define _GLIBCXX_BEGIN_LDBL_NAMESPACE
1104 #define _GLIBCXX_END_LDBL_NAMESPACE
1105
1106 }
1107 # 175 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1108 #define _GLIBCXX_EXTERN_TEMPLATE 1
1109
1110
1111
1112
1113
1114
1115
1116 #define _GLIBCXX_WEAK_DEFINITION
1117 # 193 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1118 #define _GLIBCXX_FAST_MATH 0
1119
1120
1121
1122
1123
1124
1125 #define __N(msgid) (msgid)
1126
1127
1128 #undef min
1129 #undef max
1130
1131
1132
1133
1134
1135
1136 #define _GLIBCXX_HAVE_ACOSF 1
1137
1138
1139 #define _GLIBCXX_HAVE_ACOSL 1
1140
1141
1142 #define _GLIBCXX_HAVE_ASINF 1
1143
1144
1145 #define _GLIBCXX_HAVE_ASINL 1
1146
1147
1148 #define _GLIBCXX_HAVE_ATAN2F 1
1149
1150
1151 #define _GLIBCXX_HAVE_ATAN2L 1
1152
1153
1154 #define _GLIBCXX_HAVE_ATANF 1
1155
1156
1157 #define _GLIBCXX_HAVE_ATANL 1
1158
1159
1160 #define _GLIBCXX_HAVE_CEILF 1
1161
1162
1163 #define _GLIBCXX_HAVE_CEILL 1
1164
1165
1166 #define _GLIBCXX_HAVE_COMPLEX_H 1
1167
1168
1169 #define _GLIBCXX_HAVE_COPYSIGN 1
1170
1171
1172 #define _GLIBCXX_HAVE_COPYSIGNF 1
1173
1174
1175 #define _GLIBCXX_HAVE_COPYSIGNL 1
1176
1177
1178 #define _GLIBCXX_HAVE_COSF 1
1179
1180
1181 #define _GLIBCXX_HAVE_COSHF 1
1182
1183
1184 #define _GLIBCXX_HAVE_COSHL 1
1185
1186
1187 #define _GLIBCXX_HAVE_COSL 1
1188
1189
1190 #define _GLIBCXX_HAVE_ENDIAN_H 1
1191
1192
1193 #define _GLIBCXX_HAVE_EXPF 1
1194
1195
1196 #define _GLIBCXX_HAVE_EXPL 1
1197
1198
1199 #define _GLIBCXX_HAVE_FABSF 1
1200
1201
1202 #define _GLIBCXX_HAVE_FABSL 1
1203
1204
1205 #define _GLIBCXX_HAVE_FENV_H 1
1206
1207
1208 #define _GLIBCXX_HAVE_FINITE 1
1209
1210
1211 #define _GLIBCXX_HAVE_FINITEF 1
1212
1213
1214 #define _GLIBCXX_HAVE_FINITEL 1
1215
1216
1217 #define _GLIBCXX_HAVE_FLOAT_H 1
1218
1219
1220 #define _GLIBCXX_HAVE_FLOORF 1
1221
1222
1223 #define _GLIBCXX_HAVE_FLOORL 1
1224
1225
1226 #define _GLIBCXX_HAVE_FMODF 1
1227
1228
1229 #define _GLIBCXX_HAVE_FMODL 1
1230 # 313 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1231 #define _GLIBCXX_HAVE_FREXPF 1
1232
1233
1234 #define _GLIBCXX_HAVE_FREXPL 1
1235
1236
1237 #define _GLIBCXX_HAVE_GCONV_H 1
1238
1239
1240 #define _GLIBCXX_HAVE_GETIPINFO 1
1241
1242
1243 #define _GLIBCXX_HAVE_GETPAGESIZE 1
1244
1245
1246
1247 #define _GLIBCXX_HAVE_GTHR_DEFAULT 1
1248
1249
1250 #define _GLIBCXX_HAVE_HYPOT 1
1251
1252
1253 #define _GLIBCXX_HAVE_HYPOTF 1
1254
1255
1256 #define _GLIBCXX_HAVE_HYPOTL 1
1257
1258
1259 #define _GLIBCXX_HAVE_ICONV 1
1260
1261
1262 #define _GLIBCXX_HAVE_ICONV_CLOSE 1
1263
1264
1265 #define _GLIBCXX_HAVE_ICONV_OPEN 1
1266
1267
1268
1269
1270
1271 #define _GLIBCXX_HAVE_INT64_T 1
1272
1273
1274 #define _GLIBCXX_HAVE_INTTYPES_H 1
1275
1276
1277 #define _GLIBCXX_HAVE_ISINF 1
1278
1279
1280 #define _GLIBCXX_HAVE_ISINFF 1
1281
1282
1283 #define _GLIBCXX_HAVE_ISINFL 1
1284
1285
1286 #define _GLIBCXX_HAVE_ISNAN 1
1287
1288
1289 #define _GLIBCXX_HAVE_ISNANF 1
1290
1291
1292 #define _GLIBCXX_HAVE_ISNANL 1
1293
1294
1295 #define _GLIBCXX_HAVE_ISWBLANK 1
1296
1297
1298 #define _GLIBCXX_HAVE_LC_MESSAGES 1
1299
1300
1301 #define _GLIBCXX_HAVE_LDEXPF 1
1302
1303
1304 #define _GLIBCXX_HAVE_LDEXPL 1
1305
1306
1307
1308
1309
1310 #define _GLIBCXX_HAVE_LIBM 1
1311
1312
1313 #define _GLIBCXX_HAVE_LIMIT_AS 1
1314
1315
1316 #define _GLIBCXX_HAVE_LIMIT_DATA 1
1317
1318
1319 #define _GLIBCXX_HAVE_LIMIT_FSIZE 1
1320
1321
1322 #define _GLIBCXX_HAVE_LIMIT_RSS 1
1323
1324
1325 #define _GLIBCXX_HAVE_LIMIT_VMEM 0
1326
1327
1328 #define _GLIBCXX_HAVE_LOCALE_H 1
1329
1330
1331 #define _GLIBCXX_HAVE_LOG10F 1
1332
1333
1334 #define _GLIBCXX_HAVE_LOG10L 1
1335
1336
1337 #define _GLIBCXX_HAVE_LOGF 1
1338
1339
1340 #define _GLIBCXX_HAVE_LOGL 1
1341 # 431 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1342 #define _GLIBCXX_HAVE_MBSTATE_T 1
1343
1344
1345 #define _GLIBCXX_HAVE_MEMORY_H 1
1346
1347
1348 #define _GLIBCXX_HAVE_MMAP 1
1349
1350
1351 #define _GLIBCXX_HAVE_MODF 1
1352
1353
1354 #define _GLIBCXX_HAVE_MODFF 1
1355
1356
1357 #define _GLIBCXX_HAVE_MODFL 1
1358
1359
1360
1361
1362
1363 #define _GLIBCXX_HAVE_NL_LANGINFO 1
1364
1365
1366 #define _GLIBCXX_HAVE_POLL 1
1367
1368
1369 #define _GLIBCXX_HAVE_POWF 1
1370
1371
1372 #define _GLIBCXX_HAVE_POWL 1
1373
1374
1375
1376
1377
1378 #define _GLIBCXX_HAVE_SETENV 1
1379
1380
1381 #define _GLIBCXX_HAVE_SIGSETJMP 1
1382
1383
1384 #define _GLIBCXX_HAVE_SINCOS 1
1385
1386
1387 #define _GLIBCXX_HAVE_SINCOSF 1
1388
1389
1390 #define _GLIBCXX_HAVE_SINCOSL 1
1391
1392
1393 #define _GLIBCXX_HAVE_SINF 1
1394
1395
1396 #define _GLIBCXX_HAVE_SINHF 1
1397
1398
1399 #define _GLIBCXX_HAVE_SINHL 1
1400
1401
1402 #define _GLIBCXX_HAVE_SINL 1
1403
1404
1405 #define _GLIBCXX_HAVE_SQRTF 1
1406
1407
1408 #define _GLIBCXX_HAVE_SQRTL 1
1409
1410
1411 #define _GLIBCXX_HAVE_STDBOOL_H 1
1412
1413
1414 #define _GLIBCXX_HAVE_STDINT_H 1
1415
1416
1417 #define _GLIBCXX_HAVE_STDLIB_H 1
1418
1419
1420 #define _GLIBCXX_HAVE_STRERROR_L 1
1421
1422
1423 #define _GLIBCXX_HAVE_STRERROR_R 1
1424
1425
1426 #define _GLIBCXX_HAVE_STRINGS_H 1
1427
1428
1429 #define _GLIBCXX_HAVE_STRING_H 1
1430
1431
1432 #define _GLIBCXX_HAVE_STRTOF 1
1433
1434
1435 #define _GLIBCXX_HAVE_STRTOLD 1
1436
1437
1438 #define _GLIBCXX_HAVE_STRXFRM_L 1
1439
1440
1441
1442
1443
1444 #define _GLIBCXX_HAVE_SYS_IOCTL_H 1
1445
1446
1447 #define _GLIBCXX_HAVE_SYS_IPC_H 1
1448 # 548 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1449 #define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
1450
1451
1452 #define _GLIBCXX_HAVE_SYS_SEM_H 1
1453
1454
1455 #define _GLIBCXX_HAVE_SYS_STAT_H 1
1456
1457
1458 #define _GLIBCXX_HAVE_SYS_TIME_H 1
1459
1460
1461 #define _GLIBCXX_HAVE_SYS_TYPES_H 1
1462
1463
1464 #define _GLIBCXX_HAVE_SYS_UIO_H 1
1465
1466
1467
1468
1469
1470 #define _GLIBCXX_HAVE_S_ISREG 1
1471
1472
1473 #define _GLIBCXX_HAVE_TANF 1
1474
1475
1476 #define _GLIBCXX_HAVE_TANHF 1
1477
1478
1479 #define _GLIBCXX_HAVE_TANHL 1
1480
1481
1482 #define _GLIBCXX_HAVE_TANL 1
1483
1484
1485 #define _GLIBCXX_HAVE_TLS 1
1486
1487
1488 #define _GLIBCXX_HAVE_UNISTD_H 1
1489
1490
1491 #define _GLIBCXX_HAVE_VFWSCANF 1
1492
1493
1494 #define _GLIBCXX_HAVE_VSWSCANF 1
1495
1496
1497 #define _GLIBCXX_HAVE_VWSCANF 1
1498
1499
1500 #define _GLIBCXX_HAVE_WCHAR_H 1
1501
1502
1503 #define _GLIBCXX_HAVE_WCSTOF 1
1504
1505
1506 #define _GLIBCXX_HAVE_WCTYPE_H 1
1507
1508
1509 #define _GLIBCXX_HAVE_WRITEV 1
1510 # 803 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1511 #define _GLIBCXX_HAVE___BUILTIN_ABS 1
1512
1513
1514 #define _GLIBCXX_HAVE___BUILTIN_COS 1
1515
1516
1517 #define _GLIBCXX_HAVE___BUILTIN_COSF 1
1518
1519
1520 #define _GLIBCXX_HAVE___BUILTIN_COSL 1
1521
1522
1523 #define _GLIBCXX_HAVE___BUILTIN_FABS 1
1524
1525
1526 #define _GLIBCXX_HAVE___BUILTIN_FABSF 1
1527
1528
1529 #define _GLIBCXX_HAVE___BUILTIN_FABSL 1
1530
1531
1532 #define _GLIBCXX_HAVE___BUILTIN_LABS 1
1533
1534
1535 #define _GLIBCXX_HAVE___BUILTIN_SIN 1
1536
1537
1538 #define _GLIBCXX_HAVE___BUILTIN_SINF 1
1539
1540
1541 #define _GLIBCXX_HAVE___BUILTIN_SINL 1
1542
1543
1544 #define _GLIBCXX_HAVE___BUILTIN_SQRT 1
1545
1546
1547 #define _GLIBCXX_HAVE___BUILTIN_SQRTF 1
1548
1549
1550 #define _GLIBCXX_HAVE___BUILTIN_SQRTL 1
1551
1552
1553 #define _GLIBCXX_HAVE___SIGNBIT 1
1554
1555
1556 #define _GLIBCXX_HAVE___SIGNBITF 1
1557
1558
1559 #define _GLIBCXX_HAVE___SIGNBITL 1
1560
1561
1562
1563
1564
1565 #define _GLIBCXX_PACKAGE_BUGREPORT ""
1566
1567
1568 #define _GLIBCXX_PACKAGE_NAME "package-unused"
1569
1570
1571 #define _GLIBCXX_PACKAGE_STRING "package-unused version-unused"
1572
1573
1574 #define _GLIBCXX_PACKAGE_TARNAME "libstdc++"
1575
1576
1577 #define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused"
1578
1579
1580 #define STDC_HEADERS 1
1581
1582
1583
1584
1585
1586 #define _GLIBCXX_ATOMIC_BUILTINS 1
1587 # 887 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1588 #define _GLIBCXX_HOSTED 1
1589
1590
1591
1592
1593
1594
1595
1596 #define _GLIBCXX_RES_LIMITS 1
1597 # 904 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1598 #define _GLIBCXX_SYMVER 1
1599
1600
1601
1602
1603
1604 #define _GLIBCXX_SYMVER_GNU 1
1605
1606
1607
1608
1609
1610
1611 #define _GLIBCXX_USE_C99 1
1612
1613
1614
1615
1616 #define _GLIBCXX_USE_C99_COMPLEX 1
1617
1618
1619
1620
1621 #define _GLIBCXX_USE_C99_COMPLEX_TR1 1
1622
1623
1624
1625 #define _GLIBCXX_USE_C99_CTYPE_TR1 1
1626
1627
1628
1629 #define _GLIBCXX_USE_C99_FENV_TR1 1
1630
1631
1632
1633 #define _GLIBCXX_USE_C99_INTTYPES_TR1 1
1634
1635
1636
1637 #define _GLIBCXX_USE_C99_MATH 1
1638
1639
1640
1641 #define _GLIBCXX_USE_C99_MATH_TR1 1
1642
1643
1644
1645 #define _GLIBCXX_USE_C99_STDINT_TR1 1
1646
1647
1648 #define _GLIBCXX_USE_ICONV 1
1649
1650
1651 #define _GLIBCXX_USE_LFS 1
1652
1653
1654 #define _GLIBCXX_USE_LONG_LONG 1
1655
1656
1657
1658
1659
1660
1661 #define _GLIBCXX_USE_RANDOM_TR1 1
1662
1663
1664 #define _GLIBCXX_USE_WCHAR_T 1
1665 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 2 3
1666 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception_defines.h" 1 3
1667 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception_defines.h" 3
1668 #define _EXCEPTION_DEFINES_H 1
1669 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception_defines.h" 3
1670 #define __throw_exception_again throw
1671 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 2 3
1672
1673 namespace std __attribute__ ((__visibility__ ("default"))) {
1674
1675
1676 void
1677 __throw_bad_exception(void) __attribute__((__noreturn__));
1678
1679
1680 void
1681 __throw_bad_alloc(void) __attribute__((__noreturn__));
1682
1683
1684 void
1685 __throw_bad_cast(void) __attribute__((__noreturn__));
1686
1687 void
1688 __throw_bad_typeid(void) __attribute__((__noreturn__));
1689
1690
1691 void
1692 __throw_logic_error(const char*) __attribute__((__noreturn__));
1693
1694 void
1695 __throw_domain_error(const char*) __attribute__((__noreturn__));
1696
1697 void
1698 __throw_invalid_argument(const char*) __attribute__((__noreturn__));
1699
1700 void
1701 __throw_length_error(const char*) __attribute__((__noreturn__));
1702
1703 void
1704 __throw_out_of_range(const char*) __attribute__((__noreturn__));
1705
1706 void
1707 __throw_runtime_error(const char*) __attribute__((__noreturn__));
1708
1709 void
1710 __throw_range_error(const char*) __attribute__((__noreturn__));
1711
1712 void
1713 __throw_overflow_error(const char*) __attribute__((__noreturn__));
1714
1715 void
1716 __throw_underflow_error(const char*) __attribute__((__noreturn__));
1717
1718
1719 void
1720 __throw_ios_failure(const char*) __attribute__((__noreturn__));
1721
1722 }
1723 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
1724 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 1 3
1725 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
1726 #define _ALGOBASE_H 1
1727
1728
1729 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 1 3
1730 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 3
1731 #define _GLIBCXX_CSTRING 1
1732
1733
1734 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 3
1735
1736
1737 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 1 3
1738 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 3
1739 #define _GLIBCXX_CSTDDEF 1
1740
1741
1742 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 3
1743
1744
1745 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
1746 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1747 #define _STDDEF_H
1748 #define _STDDEF_H_
1749
1750 #define _ANSI_STDDEF_H
1751
1752 #define __STDDEF_H__
1753 # 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1754 #define _PTRDIFF_T
1755 #define _T_PTRDIFF_
1756 #define _T_PTRDIFF
1757 #define __PTRDIFF_T
1758 #define _PTRDIFF_T_
1759 #define _BSD_PTRDIFF_T_
1760 #define ___int_ptrdiff_t_h
1761 #define _GCC_PTRDIFF_T
1762
1763
1764
1765 typedef long int ptrdiff_t;
1766 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1767 #undef __need_ptrdiff_t
1768 # 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1769 #define __size_t__
1770 #define __SIZE_T__
1771 #define _SIZE_T
1772 #define _SYS_SIZE_T_H
1773 #define _T_SIZE_
1774 #define _T_SIZE
1775 #define __SIZE_T
1776 #define _SIZE_T_
1777 #define _BSD_SIZE_T_
1778 #define _SIZE_T_DEFINED_
1779 #define _SIZE_T_DEFINED
1780 #define _BSD_SIZE_T_DEFINED_
1781 #define _SIZE_T_DECLARED
1782 #define ___int_size_t_h
1783 #define _GCC_SIZE_T
1784 #define _SIZET_
1785
1786
1787
1788 #define __size_t
1789
1790
1791
1792
1793
1794 typedef long unsigned int size_t;
1795 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1796 #undef __need_size_t
1797 # 265 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1798 #define __wchar_t__
1799 #define __WCHAR_T__
1800 #define _WCHAR_T
1801 #define _T_WCHAR_
1802 #define _T_WCHAR
1803 #define __WCHAR_T
1804 #define _WCHAR_T_
1805 #define _BSD_WCHAR_T_
1806 #define _WCHAR_T_DEFINED_
1807 #define _WCHAR_T_DEFINED
1808 #define _WCHAR_T_H
1809 #define ___int_wchar_t_h
1810 #define __INT_WCHAR_T_H
1811 #define _GCC_WCHAR_T
1812 #define _WCHAR_T_DECLARED
1813 # 292 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1814 #undef _BSD_WCHAR_T_
1815 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1816 #undef __need_wchar_t
1817 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1818 #undef NULL
1819
1820 #define NULL __null
1821 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1822 #undef __need_NULL
1823
1824
1825
1826
1827 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
1828 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 2 3
1829
1830 namespace std __attribute__ ((__visibility__ ("default"))) {
1831
1832 using ::ptrdiff_t;
1833 using ::size_t;
1834
1835 }
1836 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 2 3
1837 # 1 "/usr/include/string.h" 1 3 4
1838
1839
1840
1841
1842
1843
1844
1845 # 1 "/usr/include/gentoo-multilib/amd64/string.h" 1 3 4
1846 # 24 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
1847 #define _STRING_H 1
1848
1849 # 1 "/usr/include/features.h" 1 3 4
1850 # 27 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
1851
1852 extern "C" {
1853
1854
1855 #define __need_size_t
1856 #define __need_NULL
1857 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
1858 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1859 #undef __need_ptrdiff_t
1860 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1861 #undef __need_size_t
1862 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1863 #undef __need_wchar_t
1864 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1865 #undef NULL
1866
1867 #define NULL __null
1868 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1869 #undef __need_NULL
1870
1871
1872
1873
1874 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
1875 # 34 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
1876
1877
1878
1879
1880 extern void *memcpy (void *__restrict __dest,
1881 __const void *__restrict __src, size_t __n)
1882 throw () __attribute__ ((__nonnull__ (1, 2)));
1883
1884
1885 extern void *memmove (void *__dest, __const void *__src, size_t __n)
1886 throw () __attribute__ ((__nonnull__ (1, 2)));
1887
1888
1889
1890
1891
1892
1893 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
1894 int __c, size_t __n)
1895 throw () __attribute__ ((__nonnull__ (1, 2)));
1896
1897
1898
1899
1900
1901 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1902
1903
1904 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
1905 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1906
1907
1908 extern void *memchr (__const void *__s, int __c, size_t __n)
1909 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1910
1911
1912
1913
1914
1915 extern void *rawmemchr (__const void *__s, int __c)
1916 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1917
1918
1919 extern void *memrchr (__const void *__s, int __c, size_t __n)
1920 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1921
1922
1923
1924
1925
1926 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
1927 throw () __attribute__ ((__nonnull__ (1, 2)));
1928
1929 extern char *strncpy (char *__restrict __dest,
1930 __const char *__restrict __src, size_t __n)
1931 throw () __attribute__ ((__nonnull__ (1, 2)));
1932
1933
1934 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
1935 throw () __attribute__ ((__nonnull__ (1, 2)));
1936
1937 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
1938 size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
1939
1940
1941 extern int strcmp (__const char *__s1, __const char *__s2)
1942 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1943
1944 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
1945 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1946
1947
1948 extern int strcoll (__const char *__s1, __const char *__s2)
1949 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1950
1951 extern size_t strxfrm (char *__restrict __dest,
1952 __const char *__restrict __src, size_t __n)
1953 throw () __attribute__ ((__nonnull__ (2)));
1954
1955
1956
1957
1958
1959
1960 # 1 "/usr/include/xlocale.h" 1 3 4
1961
1962
1963
1964
1965
1966
1967
1968 # 1 "/usr/include/gentoo-multilib/amd64/xlocale.h" 1 3 4
1969 # 22 "/usr/include/gentoo-multilib/amd64/xlocale.h" 3 4
1970 #define _XLOCALE_H 1
1971
1972
1973
1974
1975
1976 typedef struct __locale_struct
1977 {
1978
1979 struct locale_data *__locales[13];
1980
1981
1982 const unsigned short int *__ctype_b;
1983 const int *__ctype_tolower;
1984 const int *__ctype_toupper;
1985
1986
1987 const char *__names[13];
1988 } *__locale_t;
1989 # 9 "/usr/include/xlocale.h" 2 3 4
1990 # 119 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
1991
1992
1993 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
1994 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1995
1996 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
1997 __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
1998
1999
2000
2001
2002 extern char *strdup (__const char *__s)
2003 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2004
2005
2006
2007
2008
2009
2010 extern char *strndup (__const char *__string, size_t __n)
2011 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2012
2013
2014
2015
2016 #define strdupa(s) (__extension__ ({ __const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); }))
2017 # 154 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2018 #define strndupa(s,n) (__extension__ ({ __const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); }))
2019 # 165 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2020
2021
2022 extern char *strchr (__const char *__s, int __c)
2023 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2024
2025 extern char *strrchr (__const char *__s, int __c)
2026 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2027
2028
2029
2030
2031
2032 extern char *strchrnul (__const char *__s, int __c)
2033 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2034
2035
2036
2037
2038
2039 extern size_t strcspn (__const char *__s, __const char *__reject)
2040 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2041
2042
2043 extern size_t strspn (__const char *__s, __const char *__accept)
2044 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2045
2046 extern char *strpbrk (__const char *__s, __const char *__accept)
2047 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2048
2049 extern char *strstr (__const char *__haystack, __const char *__needle)
2050 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2051
2052
2053
2054 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
2055 throw () __attribute__ ((__nonnull__ (2)));
2056
2057
2058
2059
2060 extern char *__strtok_r (char *__restrict __s,
2061 __const char *__restrict __delim,
2062 char **__restrict __save_ptr)
2063 throw () __attribute__ ((__nonnull__ (2, 3)));
2064
2065 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
2066 char **__restrict __save_ptr)
2067 throw () __attribute__ ((__nonnull__ (2, 3)));
2068
2069
2070
2071
2072 extern char *strcasestr (__const char *__haystack, __const char *__needle)
2073 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2074
2075
2076
2077
2078
2079
2080 extern void *memmem (__const void *__haystack, size_t __haystacklen,
2081 __const void *__needle, size_t __needlelen)
2082 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
2083
2084
2085
2086 extern void *__mempcpy (void *__restrict __dest,
2087 __const void *__restrict __src, size_t __n)
2088 throw () __attribute__ ((__nonnull__ (1, 2)));
2089 extern void *mempcpy (void *__restrict __dest,
2090 __const void *__restrict __src, size_t __n)
2091 throw () __attribute__ ((__nonnull__ (1, 2)));
2092
2093
2094
2095
2096
2097 extern size_t strlen (__const char *__s)
2098 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2099
2100
2101
2102
2103
2104 extern size_t strnlen (__const char *__string, size_t __maxlen)
2105 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2106
2107
2108
2109
2110
2111 extern char *strerror (int __errnum) throw ();
2112
2113 # 281 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2114 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
2115 throw () __attribute__ ((__nonnull__ (2)));
2116
2117
2118
2119
2120
2121 extern char *strerror_l (int __errnum, __locale_t __l) throw ();
2122
2123
2124
2125
2126
2127 extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
2128
2129
2130
2131 extern void bcopy (__const void *__src, void *__dest, size_t __n)
2132 throw () __attribute__ ((__nonnull__ (1, 2)));
2133
2134
2135 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
2136
2137
2138 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
2139 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2140
2141
2142 extern char *index (__const char *__s, int __c)
2143 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2144
2145
2146 extern char *rindex (__const char *__s, int __c)
2147 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2148
2149
2150
2151 extern int ffs (int __i) throw () __attribute__ ((__const__));
2152
2153
2154
2155
2156 extern int ffsl (long int __l) throw () __attribute__ ((__const__));
2157
2158 __extension__ extern int ffsll (long long int __ll)
2159 throw () __attribute__ ((__const__));
2160
2161
2162
2163
2164 extern int strcasecmp (__const char *__s1, __const char *__s2)
2165 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2166
2167
2168 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
2169 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2170
2171
2172
2173
2174
2175 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
2176 __locale_t __loc)
2177 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
2178
2179 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
2180 size_t __n, __locale_t __loc)
2181 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
2182
2183
2184
2185
2186
2187 extern char *strsep (char **__restrict __stringp,
2188 __const char *__restrict __delim)
2189 throw () __attribute__ ((__nonnull__ (1, 2)));
2190
2191
2192
2193
2194 extern int strverscmp (__const char *__s1, __const char *__s2)
2195 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2196
2197
2198 extern char *strsignal (int __sig) throw ();
2199
2200
2201 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
2202 throw () __attribute__ ((__nonnull__ (1, 2)));
2203 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
2204 throw () __attribute__ ((__nonnull__ (1, 2)));
2205
2206
2207
2208 extern char *__stpncpy (char *__restrict __dest,
2209 __const char *__restrict __src, size_t __n)
2210 throw () __attribute__ ((__nonnull__ (1, 2)));
2211 extern char *stpncpy (char *__restrict __dest,
2212 __const char *__restrict __src, size_t __n)
2213 throw () __attribute__ ((__nonnull__ (1, 2)));
2214
2215
2216 extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
2217
2218
2219 extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
2220
2221
2222
2223
2224
2225
2226 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
2227 # 432 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2228 }
2229 # 9 "/usr/include/string.h" 2 3 4
2230 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 2 3
2231
2232
2233 #undef memcpy
2234 #undef memmove
2235 #undef strcpy
2236 #undef strncpy
2237 #undef strcat
2238 #undef strncat
2239 #undef memcmp
2240 #undef strcmp
2241 #undef strcoll
2242 #undef strncmp
2243 #undef strxfrm
2244 #undef memchr
2245 #undef strchr
2246 #undef strcspn
2247 #undef strpbrk
2248 #undef strrchr
2249 #undef strspn
2250 #undef strstr
2251 #undef strtok
2252 #undef memset
2253 #undef strerror
2254 #undef strlen
2255
2256 namespace std __attribute__ ((__visibility__ ("default"))) {
2257
2258 using ::memcpy;
2259 using ::memmove;
2260 using ::strcpy;
2261 using ::strncpy;
2262 using ::strcat;
2263 using ::strncat;
2264 using ::memcmp;
2265 using ::strcmp;
2266 using ::strcoll;
2267 using ::strncmp;
2268 using ::strxfrm;
2269 using ::strcspn;
2270 using ::strspn;
2271 using ::strtok;
2272 using ::memset;
2273 using ::strerror;
2274 using ::strlen;
2275
2276 using ::memchr;
2277
2278 inline void*
2279 memchr(void* __p, int __c, size_t __n)
2280 { return memchr(const_cast<const void*>(__p), __c, __n); }
2281
2282 using ::strchr;
2283
2284 inline char*
2285 strchr(char* __s1, int __n)
2286 { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
2287
2288 using ::strpbrk;
2289
2290 inline char*
2291 strpbrk(char* __s1, const char* __s2)
2292 { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
2293
2294 using ::strrchr;
2295
2296 inline char*
2297 strrchr(char* __s1, int __n)
2298 { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
2299
2300 using ::strstr;
2301
2302 inline char*
2303 strstr(char* __s1, const char* __s2)
2304 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
2305
2306 }
2307 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
2308 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 1 3
2309 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 3
2310 #define _GLIBCXX_CLIMITS 1
2311
2312
2313 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 3
2314
2315 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 1 3 4
2316
2317
2318
2319
2320
2321
2322 #define _GCC_LIMITS_H_
2323
2324
2325
2326 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/syslimits.h" 1 3 4
2327
2328
2329
2330
2331
2332 #define _GCC_NEXT_LIMITS_H
2333 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 1 3 4
2334 # 122 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 3 4
2335 # 1 "/usr/include/limits.h" 1 3 4
2336
2337
2338
2339
2340
2341
2342
2343 # 1 "/usr/include/gentoo-multilib/amd64/limits.h" 1 3 4
2344 # 25 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4
2345 #define _LIBC_LIMITS_H_ 1
2346
2347 # 1 "/usr/include/features.h" 1 3 4
2348 # 28 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2349
2350
2351
2352
2353
2354 #define MB_LEN_MAX 16
2355 # 133 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4
2356 #define LLONG_MIN (-LLONG_MAX-1)
2357
2358
2359 #define LLONG_MAX __LONG_LONG_MAX__
2360
2361
2362 #define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
2363
2364
2365
2366
2367
2368 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
2369
2370
2371
2372
2373
2374
2375
2376 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 1 3 4
2377 # 26 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 3 4
2378 #define _BITS_POSIX1_LIM_H 1
2379
2380
2381
2382
2383
2384 #define _POSIX_AIO_LISTIO_MAX 2
2385
2386
2387 #define _POSIX_AIO_MAX 1
2388
2389
2390 #define _POSIX_ARG_MAX 4096
2391
2392
2393
2394 #define _POSIX_CHILD_MAX 25
2395
2396
2397
2398
2399
2400 #define _POSIX_DELAYTIMER_MAX 32
2401
2402
2403
2404 #define _POSIX_HOST_NAME_MAX 255
2405
2406
2407 #define _POSIX_LINK_MAX 8
2408
2409
2410 #define _POSIX_LOGIN_NAME_MAX 9
2411
2412
2413 #define _POSIX_MAX_CANON 255
2414
2415
2416
2417 #define _POSIX_MAX_INPUT 255
2418
2419
2420 #define _POSIX_MQ_OPEN_MAX 8
2421
2422
2423 #define _POSIX_MQ_PRIO_MAX 32
2424
2425
2426 #define _POSIX_NAME_MAX 14
2427
2428
2429
2430 #define _POSIX_NGROUPS_MAX 8
2431
2432
2433
2434
2435
2436
2437 #define _POSIX_OPEN_MAX 20
2438
2439
2440
2441
2442
2443
2444 #define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX
2445
2446
2447 #define _POSIX_PATH_MAX 256
2448
2449
2450 #define _POSIX_PIPE_BUF 512
2451
2452
2453
2454 #define _POSIX_RE_DUP_MAX 255
2455
2456
2457 #define _POSIX_RTSIG_MAX 8
2458
2459
2460 #define _POSIX_SEM_NSEMS_MAX 256
2461
2462
2463 #define _POSIX_SEM_VALUE_MAX 32767
2464
2465
2466 #define _POSIX_SIGQUEUE_MAX 32
2467
2468
2469 #define _POSIX_SSIZE_MAX 32767
2470
2471
2472 #define _POSIX_STREAM_MAX 8
2473
2474
2475 #define _POSIX_SYMLINK_MAX 255
2476
2477
2478
2479 #define _POSIX_SYMLOOP_MAX 8
2480
2481
2482 #define _POSIX_TIMER_MAX 32
2483
2484
2485 #define _POSIX_TTY_NAME_MAX 9
2486
2487
2488 #define _POSIX_TZNAME_MAX 6
2489
2490
2491 #define _POSIX_QLIMIT 1
2492
2493
2494
2495 #define _POSIX_HIWAT _POSIX_PIPE_BUF
2496
2497
2498 #define _POSIX_UIO_MAXIOV 16
2499
2500
2501 #define _POSIX_CLOCKRES_MIN 20000000
2502
2503
2504
2505 # 1 "/usr/include/bits/local_lim.h" 1 3 4
2506
2507
2508
2509
2510
2511
2512
2513 # 1 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 1 3 4
2514 # 26 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 3 4
2515 #define __undef_NR_OPEN
2516
2517
2518 #define __undef_LINK_MAX
2519
2520
2521 #define __undef_OPEN_MAX
2522
2523
2524
2525 # 1 "/usr/include/linux/limits.h" 1 3 4
2526
2527 #define _LINUX_LIMITS_H
2528
2529 #define NR_OPEN 1024
2530
2531 #define NGROUPS_MAX 65536
2532 #define ARG_MAX 131072
2533 #define LINK_MAX 127
2534 #define MAX_CANON 255
2535 #define MAX_INPUT 255
2536 #define NAME_MAX 255
2537 #define PATH_MAX 4096
2538 #define PIPE_BUF 4096
2539 #define XATTR_NAME_MAX 255
2540 #define XATTR_SIZE_MAX 65536
2541 #define XATTR_LIST_MAX 65536
2542
2543 #define RTSIG_MAX 32
2544 # 37 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 2 3 4
2545
2546
2547
2548 #undef NR_OPEN
2549 #undef __undef_NR_OPEN
2550
2551
2552
2553 #undef LINK_MAX
2554 #undef __undef_LINK_MAX
2555
2556
2557
2558 #undef OPEN_MAX
2559 #undef __undef_OPEN_MAX
2560
2561
2562
2563 #define _POSIX_THREAD_KEYS_MAX 128
2564
2565 #define PTHREAD_KEYS_MAX 1024
2566
2567
2568 #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
2569
2570 #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
2571
2572
2573 #define _POSIX_THREAD_THREADS_MAX 64
2574
2575 #undef PTHREAD_THREADS_MAX
2576
2577
2578
2579 #define AIO_PRIO_DELTA_MAX 20
2580
2581
2582 #define PTHREAD_STACK_MIN 16384
2583
2584
2585 #define DELAYTIMER_MAX 2147483647
2586
2587
2588 #define TTY_NAME_MAX 32
2589
2590
2591 #define LOGIN_NAME_MAX 256
2592
2593
2594 #define HOST_NAME_MAX 64
2595
2596
2597 #define MQ_PRIO_MAX 32768
2598
2599
2600 #define SEM_VALUE_MAX (2147483647)
2601 # 9 "/usr/include/bits/local_lim.h" 2 3 4
2602 # 154 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 2 3 4
2603
2604
2605
2606 #define SSIZE_MAX LONG_MAX
2607 # 9 "/usr/include/bits/posix1_lim.h" 2 3 4
2608 # 146 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2609
2610
2611
2612 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
2613
2614
2615
2616
2617
2618
2619
2620 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 1 3 4
2621 # 24 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 3 4
2622 #define _BITS_POSIX2_LIM_H 1
2623
2624
2625
2626 #define _POSIX2_BC_BASE_MAX 99
2627
2628
2629 #define _POSIX2_BC_DIM_MAX 2048
2630
2631
2632 #define _POSIX2_BC_SCALE_MAX 99
2633
2634
2635 #define _POSIX2_BC_STRING_MAX 1000
2636
2637
2638
2639 #define _POSIX2_COLL_WEIGHTS_MAX 2
2640
2641
2642
2643 #define _POSIX2_EXPR_NEST_MAX 32
2644
2645
2646 #define _POSIX2_LINE_MAX 2048
2647
2648
2649
2650 #define _POSIX2_RE_DUP_MAX 255
2651
2652
2653
2654 #define _POSIX2_CHARCLASS_NAME_MAX 14
2655
2656
2657
2658
2659
2660
2661
2662 #define BC_BASE_MAX _POSIX2_BC_BASE_MAX
2663
2664
2665 #define BC_DIM_MAX _POSIX2_BC_DIM_MAX
2666
2667
2668 #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX
2669
2670
2671 #define BC_STRING_MAX _POSIX2_BC_STRING_MAX
2672
2673
2674 #define COLL_WEIGHTS_MAX 255
2675
2676
2677 #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX
2678
2679
2680 #define LINE_MAX _POSIX2_LINE_MAX
2681
2682
2683 #define CHARCLASS_NAME_MAX 2048
2684
2685
2686
2687 #define RE_DUP_MAX (0x7fff)
2688 # 9 "/usr/include/bits/posix2_lim.h" 2 3 4
2689 # 150 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2690
2691
2692
2693 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
2694
2695
2696
2697
2698
2699
2700
2701 # 1 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 1 3 4
2702 # 31 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2703 #define _XOPEN_LIM_H 1
2704
2705 #define __need_IOV_MAX
2706 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
2707
2708
2709
2710
2711
2712
2713
2714 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4
2715 # 40 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4
2716 #define IOV_MAX 1024
2717 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4
2718 # 35 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 2 3 4
2719 # 66 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2720 #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV
2721
2722
2723
2724
2725 #define NL_ARGMAX _POSIX_ARG_MAX
2726
2727
2728 #define NL_LANGMAX _POSIX2_LINE_MAX
2729
2730
2731 #define NL_MSGMAX INT_MAX
2732
2733
2734
2735 #define NL_NMAX INT_MAX
2736
2737
2738 #define NL_SETMAX INT_MAX
2739
2740
2741 #define NL_TEXTMAX INT_MAX
2742
2743
2744 #define NZERO 20
2745 # 110 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2746 #define WORD_BIT 32
2747 # 133 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2748 #define LONG_BIT 64
2749 # 9 "/usr/include/bits/xopen_lim.h" 2 3 4
2750 # 154 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2751 # 9 "/usr/include/limits.h" 2 3 4
2752 # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 2 3 4
2753 # 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/syslimits.h" 2 3 4
2754 #undef _GCC_NEXT_LIMITS_H
2755 # 12 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 2 3 4
2756
2757
2758 #define _LIMITS_H___
2759
2760
2761 #undef CHAR_BIT
2762 #define CHAR_BIT __CHAR_BIT__
2763
2764
2765
2766
2767
2768
2769
2770 #undef SCHAR_MIN
2771 #define SCHAR_MIN (-SCHAR_MAX - 1)
2772 #undef SCHAR_MAX
2773 #define SCHAR_MAX __SCHAR_MAX__
2774
2775
2776 #undef UCHAR_MAX
2777
2778
2779
2780 #define UCHAR_MAX (SCHAR_MAX * 2 + 1)
2781 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 3 4
2782 #undef CHAR_MIN
2783 #define CHAR_MIN SCHAR_MIN
2784 #undef CHAR_MAX
2785 #define CHAR_MAX SCHAR_MAX
2786
2787
2788
2789 #undef SHRT_MIN
2790 #define SHRT_MIN (-SHRT_MAX - 1)
2791 #undef SHRT_MAX
2792 #define SHRT_MAX __SHRT_MAX__
2793
2794
2795 #undef USHRT_MAX
2796
2797
2798
2799 #define USHRT_MAX (SHRT_MAX * 2 + 1)
2800
2801
2802
2803 #undef INT_MIN
2804 #define INT_MIN (-INT_MAX - 1)
2805 #undef INT_MAX
2806 #define INT_MAX __INT_MAX__
2807
2808
2809 #undef UINT_MAX
2810 #define UINT_MAX (INT_MAX * 2U + 1U)
2811
2812
2813
2814 #undef LONG_MIN
2815 #define LONG_MIN (-LONG_MAX - 1L)
2816 #undef LONG_MAX
2817 #define LONG_MAX __LONG_MAX__
2818
2819
2820 #undef ULONG_MAX
2821 #define ULONG_MAX (LONG_MAX * 2UL + 1UL)
2822 # 105 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 3 4
2823 #undef LONG_LONG_MIN
2824 #define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
2825 #undef LONG_LONG_MAX
2826 #define LONG_LONG_MAX __LONG_LONG_MAX__
2827
2828
2829 #undef ULONG_LONG_MAX
2830 #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
2831 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 2 3
2832 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
2833 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 1 3
2834 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
2835 #define _GLIBCXX_CSTDLIB 1
2836
2837
2838 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
2839 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
2840 # 1 "/usr/include/stdlib.h" 1 3 4
2841
2842
2843
2844
2845
2846
2847
2848 # 1 "/usr/include/gentoo-multilib/amd64/stdlib.h" 1 3 4
2849 # 25 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2850 # 1 "/usr/include/features.h" 1 3 4
2851 # 26 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2852
2853
2854 #define __need_size_t
2855
2856 #define __need_wchar_t
2857 #define __need_NULL
2858
2859 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
2860 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2861 #undef __need_ptrdiff_t
2862 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2863 #undef __need_size_t
2864 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2865 #undef __need_wchar_t
2866 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2867 #undef NULL
2868
2869 #define NULL __null
2870 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2871 #undef __need_NULL
2872
2873
2874
2875
2876 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
2877 # 34 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2878
2879 extern "C" {
2880
2881
2882 #define _STDLIB_H 1
2883
2884
2885
2886 # 1 "/usr/include/bits/waitflags.h" 1 3 4
2887
2888
2889
2890
2891
2892
2893
2894 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 1 3 4
2895 # 26 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 3 4
2896 #define WNOHANG 1
2897 #define WUNTRACED 2
2898
2899
2900 #define WSTOPPED 2
2901 #define WEXITED 4
2902 #define WCONTINUED 8
2903 #define WNOWAIT 0x01000000
2904
2905 #define __WNOTHREAD 0x20000000
2906
2907 #define __WALL 0x40000000
2908 #define __WCLONE 0x80000000
2909 # 9 "/usr/include/bits/waitflags.h" 2 3 4
2910 # 43 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2911 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
2912
2913
2914
2915
2916
2917
2918
2919 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 1 3 4
2920 # 29 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 3 4
2921 #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
2922
2923
2924 #define __WTERMSIG(status) ((status) & 0x7f)
2925
2926
2927 #define __WSTOPSIG(status) __WEXITSTATUS(status)
2928
2929
2930 #define __WIFEXITED(status) (__WTERMSIG(status) == 0)
2931
2932
2933 #define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
2934
2935
2936
2937 #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
2938
2939
2940
2941
2942 #define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
2943
2944
2945
2946 #define __WCOREDUMP(status) ((status) & __WCOREFLAG)
2947
2948
2949 #define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig))
2950 #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
2951 #define __W_CONTINUED 0xffff
2952 #define __WCOREFLAG 0x80
2953
2954
2955
2956
2957 # 1 "/usr/include/endian.h" 1 3 4
2958
2959
2960
2961
2962
2963
2964
2965 # 1 "/usr/include/gentoo-multilib/amd64/endian.h" 1 3 4
2966 # 20 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4
2967 #define _ENDIAN_H 1
2968
2969 # 1 "/usr/include/features.h" 1 3 4
2970 # 23 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4
2971 # 32 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4
2972 #define __LITTLE_ENDIAN 1234
2973 #define __BIG_ENDIAN 4321
2974 #define __PDP_ENDIAN 3412
2975
2976
2977 # 1 "/usr/include/bits/endian.h" 1 3 4
2978
2979
2980
2981
2982
2983
2984
2985 # 1 "/usr/include/gentoo-multilib/amd64/bits/endian.h" 1 3 4
2986
2987
2988
2989
2990
2991
2992 #define __BYTE_ORDER __LITTLE_ENDIAN
2993 # 9 "/usr/include/bits/endian.h" 2 3 4
2994 # 38 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4
2995
2996
2997
2998
2999 #define __FLOAT_WORD_ORDER __BYTE_ORDER
3000
3001
3002
3003 #define LITTLE_ENDIAN __LITTLE_ENDIAN
3004 #define BIG_ENDIAN __BIG_ENDIAN
3005 #define PDP_ENDIAN __PDP_ENDIAN
3006 #define BYTE_ORDER __BYTE_ORDER
3007
3008
3009
3010 #define __LONG_LONG_PAIR(HI,LO) LO, HI
3011 # 9 "/usr/include/endian.h" 2 3 4
3012 # 66 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 2 3 4
3013
3014 union wait
3015 {
3016 int w_status;
3017 struct
3018 {
3019
3020 unsigned int __w_termsig:7;
3021 unsigned int __w_coredump:1;
3022 unsigned int __w_retcode:8;
3023 unsigned int:16;
3024
3025
3026
3027
3028
3029
3030
3031 } __wait_terminated;
3032 struct
3033 {
3034
3035 unsigned int __w_stopval:8;
3036 unsigned int __w_stopsig:8;
3037 unsigned int:16;
3038
3039
3040
3041
3042
3043
3044 } __wait_stopped;
3045 };
3046
3047 #define w_termsig __wait_terminated.__w_termsig
3048 #define w_coredump __wait_terminated.__w_coredump
3049 #define w_retcode __wait_terminated.__w_retcode
3050 #define w_stopsig __wait_stopped.__w_stopsig
3051 #define w_stopval __wait_stopped.__w_stopval
3052 # 9 "/usr/include/bits/waitstatus.h" 2 3 4
3053 # 44 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
3054 # 55 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3055 #define __WAIT_INT(status) (*(int *) &(status))
3056 # 64 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3057 #define __WAIT_STATUS void *
3058 #define __WAIT_STATUS_DEFN void *
3059 # 85 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3060 #define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status))
3061 #define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status))
3062 #define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status))
3063 #define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status))
3064 #define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status))
3065 #define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status))
3066
3067 #define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status))
3068
3069
3070
3071
3072
3073 typedef struct
3074 {
3075 int quot;
3076 int rem;
3077 } div_t;
3078
3079
3080
3081 typedef struct
3082 {
3083 long int quot;
3084 long int rem;
3085 } ldiv_t;
3086 #define __ldiv_t_defined 1
3087
3088
3089
3090
3091
3092
3093 __extension__ typedef struct
3094 {
3095 long long int quot;
3096 long long int rem;
3097 } lldiv_t;
3098 #define __lldiv_t_defined 1
3099
3100
3101
3102
3103
3104 #define RAND_MAX 2147483647
3105
3106
3107
3108
3109 #define EXIT_FAILURE 1
3110 #define EXIT_SUCCESS 0
3111
3112
3113
3114 #define MB_CUR_MAX (__ctype_get_mb_cur_max ())
3115 extern size_t __ctype_get_mb_cur_max (void) throw () ;
3116
3117
3118
3119
3120 extern double atof (__const char *__nptr)
3121 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3122
3123 extern int atoi (__const char *__nptr)
3124 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3125
3126 extern long int atol (__const char *__nptr)
3127 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3128
3129
3130
3131
3132
3133 __extension__ extern long long int atoll (__const char *__nptr)
3134 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3135
3136
3137
3138
3139
3140 extern double strtod (__const char *__restrict __nptr,
3141 char **__restrict __endptr)
3142 throw () __attribute__ ((__nonnull__ (1))) ;
3143
3144
3145
3146
3147
3148 extern float strtof (__const char *__restrict __nptr,
3149 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
3150
3151 extern long double strtold (__const char *__restrict __nptr,
3152 char **__restrict __endptr)
3153 throw () __attribute__ ((__nonnull__ (1))) ;
3154
3155
3156
3157
3158
3159 extern long int strtol (__const char *__restrict __nptr,
3160 char **__restrict __endptr, int __base)
3161 throw () __attribute__ ((__nonnull__ (1))) ;
3162
3163 extern unsigned long int strtoul (__const char *__restrict __nptr,
3164 char **__restrict __endptr, int __base)
3165 throw () __attribute__ ((__nonnull__ (1))) ;
3166
3167
3168
3169
3170 __extension__
3171 extern long long int strtoq (__const char *__restrict __nptr,
3172 char **__restrict __endptr, int __base)
3173 throw () __attribute__ ((__nonnull__ (1))) ;
3174
3175 __extension__
3176 extern unsigned long long int strtouq (__const char *__restrict __nptr,
3177 char **__restrict __endptr, int __base)
3178 throw () __attribute__ ((__nonnull__ (1))) ;
3179
3180
3181
3182
3183
3184 __extension__
3185 extern long long int strtoll (__const char *__restrict __nptr,
3186 char **__restrict __endptr, int __base)
3187 throw () __attribute__ ((__nonnull__ (1))) ;
3188
3189 __extension__
3190 extern unsigned long long int strtoull (__const char *__restrict __nptr,
3191 char **__restrict __endptr, int __base)
3192 throw () __attribute__ ((__nonnull__ (1))) ;
3193
3194 # 236 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3195 # 1 "/usr/include/xlocale.h" 1 3 4
3196 # 237 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
3197
3198
3199
3200 extern long int strtol_l (__const char *__restrict __nptr,
3201 char **__restrict __endptr, int __base,
3202 __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ;
3203
3204 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
3205 char **__restrict __endptr,
3206 int __base, __locale_t __loc)
3207 throw () __attribute__ ((__nonnull__ (1, 4))) ;
3208
3209 __extension__
3210 extern long long int strtoll_l (__const char *__restrict __nptr,
3211 char **__restrict __endptr, int __base,
3212 __locale_t __loc)
3213 throw () __attribute__ ((__nonnull__ (1, 4))) ;
3214
3215 __extension__
3216 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
3217 char **__restrict __endptr,
3218 int __base, __locale_t __loc)
3219 throw () __attribute__ ((__nonnull__ (1, 4))) ;
3220
3221 extern double strtod_l (__const char *__restrict __nptr,
3222 char **__restrict __endptr, __locale_t __loc)
3223 throw () __attribute__ ((__nonnull__ (1, 3))) ;
3224
3225 extern float strtof_l (__const char *__restrict __nptr,
3226 char **__restrict __endptr, __locale_t __loc)
3227 throw () __attribute__ ((__nonnull__ (1, 3))) ;
3228
3229 extern long double strtold_l (__const char *__restrict __nptr,
3230 char **__restrict __endptr,
3231 __locale_t __loc)
3232 throw () __attribute__ ((__nonnull__ (1, 3))) ;
3233 # 311 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3234 extern char *l64a (long int __n) throw () ;
3235
3236
3237 extern long int a64l (__const char *__s)
3238 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3239
3240
3241
3242
3243 # 1 "/usr/include/sys/types.h" 1 3 4
3244
3245
3246
3247
3248
3249
3250
3251 # 1 "/usr/include/gentoo-multilib/amd64/sys/types.h" 1 3 4
3252 # 25 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
3253 #define _SYS_TYPES_H 1
3254
3255 # 1 "/usr/include/features.h" 1 3 4
3256 # 28 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3257
3258 extern "C" {
3259
3260 # 1 "/usr/include/bits/types.h" 1 3 4
3261
3262
3263
3264
3265
3266
3267
3268 # 1 "/usr/include/gentoo-multilib/amd64/bits/types.h" 1 3 4
3269 # 25 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
3270 #define _BITS_TYPES_H 1
3271
3272 # 1 "/usr/include/features.h" 1 3 4
3273 # 28 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
3274 # 1 "/usr/include/bits/wordsize.h" 1 3 4
3275
3276
3277
3278
3279
3280
3281
3282 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
3283
3284
3285
3286 #define __WORDSIZE 64
3287 #define __WORDSIZE_COMPAT32 1
3288 # 9 "/usr/include/bits/wordsize.h" 2 3 4
3289 # 29 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
3290
3291
3292 typedef unsigned char __u_char;
3293 typedef unsigned short int __u_short;
3294 typedef unsigned int __u_int;
3295 typedef unsigned long int __u_long;
3296
3297
3298 typedef signed char __int8_t;
3299 typedef unsigned char __uint8_t;
3300 typedef signed short int __int16_t;
3301 typedef unsigned short int __uint16_t;
3302 typedef signed int __int32_t;
3303 typedef unsigned int __uint32_t;
3304
3305 typedef signed long int __int64_t;
3306 typedef unsigned long int __uint64_t;
3307
3308
3309
3310
3311
3312
3313
3314 typedef long int __quad_t;
3315 typedef unsigned long int __u_quad_t;
3316 # 99 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
3317 #define __S16_TYPE short int
3318 #define __U16_TYPE unsigned short int
3319 #define __S32_TYPE int
3320 #define __U32_TYPE unsigned int
3321 #define __SLONGWORD_TYPE long int
3322 #define __ULONGWORD_TYPE unsigned long int
3323 # 118 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
3324 #define __SQUAD_TYPE long int
3325 #define __UQUAD_TYPE unsigned long int
3326 #define __SWORD_TYPE long int
3327 #define __UWORD_TYPE unsigned long int
3328 #define __SLONG32_TYPE int
3329 #define __ULONG32_TYPE unsigned int
3330 #define __S64_TYPE long int
3331 #define __U64_TYPE unsigned long int
3332
3333 #define __STD_TYPE typedef
3334
3335
3336
3337 # 1 "/usr/include/bits/typesizes.h" 1 3 4
3338
3339
3340
3341
3342
3343
3344
3345 # 1 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 1 3 4
3346 # 25 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 3 4
3347 #define _BITS_TYPESIZES_H 1
3348
3349
3350
3351
3352 #define __DEV_T_TYPE __UQUAD_TYPE
3353 #define __UID_T_TYPE __U32_TYPE
3354 #define __GID_T_TYPE __U32_TYPE
3355 #define __INO_T_TYPE __ULONGWORD_TYPE
3356 #define __INO64_T_TYPE __UQUAD_TYPE
3357 #define __MODE_T_TYPE __U32_TYPE
3358 #define __NLINK_T_TYPE __UWORD_TYPE
3359 #define __OFF_T_TYPE __SLONGWORD_TYPE
3360 #define __OFF64_T_TYPE __SQUAD_TYPE
3361 #define __PID_T_TYPE __S32_TYPE
3362 #define __RLIM_T_TYPE __ULONGWORD_TYPE
3363 #define __RLIM64_T_TYPE __UQUAD_TYPE
3364 #define __BLKCNT_T_TYPE __SLONGWORD_TYPE
3365 #define __BLKCNT64_T_TYPE __SQUAD_TYPE
3366 #define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
3367 #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
3368 #define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
3369 #define __FSFILCNT64_T_TYPE __UQUAD_TYPE
3370 #define __ID_T_TYPE __U32_TYPE
3371 #define __CLOCK_T_TYPE __SLONGWORD_TYPE
3372 #define __TIME_T_TYPE __SLONGWORD_TYPE
3373 #define __USECONDS_T_TYPE __U32_TYPE
3374 #define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
3375 #define __DADDR_T_TYPE __S32_TYPE
3376 #define __SWBLK_T_TYPE __SLONGWORD_TYPE
3377 #define __KEY_T_TYPE __S32_TYPE
3378 #define __CLOCKID_T_TYPE __S32_TYPE
3379 #define __TIMER_T_TYPE void *
3380 #define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
3381 #define __FSID_T_TYPE struct { int __val[2]; }
3382 #define __SSIZE_T_TYPE __SWORD_TYPE
3383
3384
3385 #define __FD_SETSIZE 1024
3386 # 9 "/usr/include/bits/typesizes.h" 2 3 4
3387 # 132 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
3388
3389
3390 typedef unsigned long int __dev_t;
3391 typedef unsigned int __uid_t;
3392 typedef unsigned int __gid_t;
3393 typedef unsigned long int __ino_t;
3394 typedef unsigned long int __ino64_t;
3395 typedef unsigned int __mode_t;
3396 typedef unsigned long int __nlink_t;
3397 typedef long int __off_t;
3398 typedef long int __off64_t;
3399 typedef int __pid_t;
3400 typedef struct { int __val[2]; } __fsid_t;
3401 typedef long int __clock_t;
3402 typedef unsigned long int __rlim_t;
3403 typedef unsigned long int __rlim64_t;
3404 typedef unsigned int __id_t;
3405 typedef long int __time_t;
3406 typedef unsigned int __useconds_t;
3407 typedef long int __suseconds_t;
3408
3409 typedef int __daddr_t;
3410 typedef long int __swblk_t;
3411 typedef int __key_t;
3412
3413
3414 typedef int __clockid_t;
3415
3416
3417 typedef void * __timer_t;
3418
3419
3420 typedef long int __blksize_t;
3421
3422
3423
3424
3425 typedef long int __blkcnt_t;
3426 typedef long int __blkcnt64_t;
3427
3428
3429 typedef unsigned long int __fsblkcnt_t;
3430 typedef unsigned long int __fsblkcnt64_t;
3431
3432
3433 typedef unsigned long int __fsfilcnt_t;
3434 typedef unsigned long int __fsfilcnt64_t;
3435
3436 typedef long int __ssize_t;
3437
3438
3439
3440 typedef __off64_t __loff_t;
3441 typedef __quad_t *__qaddr_t;
3442 typedef char *__caddr_t;
3443
3444
3445 typedef long int __intptr_t;
3446
3447
3448 typedef unsigned int __socklen_t;
3449
3450
3451 #undef __STD_TYPE
3452 # 9 "/usr/include/bits/types.h" 2 3 4
3453 # 32 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3454
3455
3456
3457 typedef __u_char u_char;
3458 typedef __u_short u_short;
3459 typedef __u_int u_int;
3460 typedef __u_long u_long;
3461 typedef __quad_t quad_t;
3462 typedef __u_quad_t u_quad_t;
3463 typedef __fsid_t fsid_t;
3464 #define __u_char_defined
3465
3466
3467
3468 typedef __loff_t loff_t;
3469
3470
3471
3472 typedef __ino_t ino_t;
3473
3474
3475
3476 #define __ino_t_defined
3477
3478
3479 typedef __ino64_t ino64_t;
3480 #define __ino64_t_defined
3481
3482
3483
3484 typedef __dev_t dev_t;
3485 #define __dev_t_defined
3486
3487
3488
3489 typedef __gid_t gid_t;
3490 #define __gid_t_defined
3491
3492
3493
3494 typedef __mode_t mode_t;
3495 #define __mode_t_defined
3496
3497
3498
3499 typedef __nlink_t nlink_t;
3500 #define __nlink_t_defined
3501
3502
3503
3504 typedef __uid_t uid_t;
3505 #define __uid_t_defined
3506
3507
3508
3509
3510 typedef __off_t off_t;
3511
3512
3513
3514 #define __off_t_defined
3515
3516
3517 typedef __off64_t off64_t;
3518 #define __off64_t_defined
3519
3520
3521
3522 typedef __pid_t pid_t;
3523 #define __pid_t_defined
3524
3525
3526
3527 typedef __id_t id_t;
3528 #define __id_t_defined
3529
3530
3531
3532 typedef __ssize_t ssize_t;
3533 #define __ssize_t_defined
3534
3535
3536
3537
3538 typedef __daddr_t daddr_t;
3539 typedef __caddr_t caddr_t;
3540 #define __daddr_t_defined
3541
3542
3543
3544
3545 typedef __key_t key_t;
3546 #define __key_t_defined
3547
3548
3549
3550 #define __need_clock_t
3551
3552 #define __need_time_t
3553 #define __need_timer_t
3554 #define __need_clockid_t
3555 # 1 "/usr/include/time.h" 1 3 4
3556
3557
3558
3559
3560
3561
3562
3563 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
3564 # 55 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3565 #define __clock_t_defined 1
3566
3567 # 1 "/usr/include/bits/types.h" 1 3 4
3568 # 58 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3569
3570
3571
3572 typedef __clock_t clock_t;
3573
3574
3575
3576
3577
3578
3579 #undef __need_clock_t
3580
3581
3582 #define __time_t_defined 1
3583
3584 # 1 "/usr/include/bits/types.h" 1 3 4
3585 # 74 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3586
3587
3588
3589 typedef __time_t time_t;
3590
3591
3592
3593
3594
3595
3596 #undef __need_time_t
3597
3598
3599
3600 #define __clockid_t_defined 1
3601
3602 # 1 "/usr/include/bits/types.h" 1 3 4
3603 # 91 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3604
3605
3606 typedef __clockid_t clockid_t;
3607
3608
3609 #undef __clockid_time_t
3610
3611
3612
3613 #define __timer_t_defined 1
3614
3615 # 1 "/usr/include/bits/types.h" 1 3 4
3616 # 103 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3617
3618
3619 typedef __timer_t timer_t;
3620
3621
3622 #undef __need_timer_t
3623 # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3624 #undef __need_timespec
3625 # 9 "/usr/include/time.h" 2 3 4
3626 # 134 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3627
3628
3629
3630 typedef __useconds_t useconds_t;
3631 #define __useconds_t_defined
3632
3633
3634 typedef __suseconds_t suseconds_t;
3635 #define __suseconds_t_defined
3636
3637
3638
3639 #define __need_size_t
3640 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
3641 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3642 #undef __need_ptrdiff_t
3643 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3644 #undef __need_size_t
3645 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3646 #undef __need_wchar_t
3647 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3648 #undef NULL
3649
3650 #define NULL __null
3651 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3652 #undef __need_NULL
3653
3654
3655
3656
3657 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
3658 # 148 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3659
3660
3661
3662 typedef unsigned long int ulong;
3663 typedef unsigned short int ushort;
3664 typedef unsigned int uint;
3665 # 188 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
3666 #define __intN_t(N,MODE) typedef int int ##N ##_t __attribute__ ((__mode__ (MODE)))
3667
3668 #define __u_intN_t(N,MODE) typedef unsigned int u_int ##N ##_t __attribute__ ((__mode__ (MODE)))
3669
3670
3671
3672 #define __int8_t_defined
3673 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
3674 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
3675 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
3676 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
3677
3678
3679 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
3680 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
3681 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
3682 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
3683
3684 typedef int register_t __attribute__ ((__mode__ (__word__)));
3685
3686
3687
3688
3689
3690 #define __BIT_TYPES_DEFINED__ 1
3691
3692
3693
3694
3695 # 1 "/usr/include/endian.h" 1 3 4
3696 # 218 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3697
3698
3699 # 1 "/usr/include/sys/select.h" 1 3 4
3700
3701
3702
3703
3704
3705
3706
3707 # 1 "/usr/include/gentoo-multilib/amd64/sys/select.h" 1 3 4
3708 # 23 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3709 #define _SYS_SELECT_H 1
3710
3711 # 1 "/usr/include/features.h" 1 3 4
3712 # 26 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3713
3714
3715 # 1 "/usr/include/bits/types.h" 1 3 4
3716 # 29 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3717
3718
3719 # 1 "/usr/include/bits/select.h" 1 3 4
3720
3721
3722
3723
3724
3725
3726
3727 # 1 "/usr/include/gentoo-multilib/amd64/bits/select.h" 1 3 4
3728 # 26 "/usr/include/gentoo-multilib/amd64/bits/select.h" 3 4
3729 #define __FD_ZERO(s) do { unsigned int __i; fd_set *__arr = (s); for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) __FDS_BITS (__arr)[__i] = 0; } while (0)
3730
3731
3732
3733
3734
3735
3736 #define __FD_SET(d,s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
3737 #define __FD_CLR(d,s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
3738 #define __FD_ISSET(d,s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
3739 # 9 "/usr/include/bits/select.h" 2 3 4
3740 # 32 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3741
3742
3743 # 1 "/usr/include/bits/sigset.h" 1 3 4
3744
3745
3746
3747
3748
3749
3750
3751 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4
3752 # 22 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4
3753 #define _SIGSET_H_types 1
3754
3755 typedef int __sig_atomic_t;
3756
3757
3758
3759 #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
3760 typedef struct
3761 {
3762 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
3763 } __sigset_t;
3764 # 9 "/usr/include/bits/sigset.h" 2 3 4
3765 # 35 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3766
3767
3768 #define __sigset_t_defined
3769 typedef __sigset_t sigset_t;
3770
3771
3772
3773 #define __need_time_t
3774 #define __need_timespec
3775 # 1 "/usr/include/time.h" 1 3 4
3776
3777
3778
3779
3780
3781
3782
3783 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
3784 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3785 #undef __need_clock_t
3786 # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3787 #undef __need_time_t
3788 # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3789 #undef __clockid_time_t
3790 # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3791 #undef __need_timer_t
3792
3793
3794
3795
3796
3797
3798 #define __timespec_defined 1
3799
3800 # 1 "/usr/include/bits/types.h" 1 3 4
3801 # 118 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3802
3803
3804
3805 struct timespec
3806 {
3807 __time_t tv_sec;
3808 long int tv_nsec;
3809 };
3810
3811
3812 #undef __need_timespec
3813 # 9 "/usr/include/time.h" 2 3 4
3814 # 45 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3815 #define __need_timeval
3816 # 1 "/usr/include/bits/time.h" 1 3 4
3817
3818
3819
3820
3821
3822
3823
3824 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4
3825 # 62 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
3826 #undef __need_timeval
3827
3828 #define _STRUCT_TIMEVAL 1
3829 # 1 "/usr/include/bits/types.h" 1 3 4
3830 # 66 "/usr/include/gentoo-multilib/amd64/bits/time.h" 2 3 4
3831
3832
3833
3834 struct timeval
3835 {
3836 __time_t tv_sec;
3837 __suseconds_t tv_usec;
3838 };
3839 # 9 "/usr/include/bits/time.h" 2 3 4
3840 # 47 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3841 # 55 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3842 typedef long int __fd_mask;
3843
3844
3845 #undef __NFDBITS
3846 #undef __FDELT
3847 #undef __FDMASK
3848
3849 #define __NFDBITS (8 * sizeof (__fd_mask))
3850 #define __FDELT(d) ((d) / __NFDBITS)
3851 #define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
3852
3853
3854 typedef struct
3855 {
3856
3857
3858
3859 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
3860 #define __FDS_BITS(set) ((set)->fds_bits)
3861
3862
3863
3864
3865 } fd_set;
3866
3867
3868 #define FD_SETSIZE __FD_SETSIZE
3869
3870
3871
3872 typedef __fd_mask fd_mask;
3873
3874
3875 #define NFDBITS __NFDBITS
3876
3877
3878
3879
3880 #define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp)
3881 #define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp)
3882 #define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp)
3883 #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)
3884
3885
3886 extern "C" {
3887 # 109 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3888 extern int select (int __nfds, fd_set *__restrict __readfds,
3889 fd_set *__restrict __writefds,
3890 fd_set *__restrict __exceptfds,
3891 struct timeval *__restrict __timeout);
3892 # 121 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3893 extern int pselect (int __nfds, fd_set *__restrict __readfds,
3894 fd_set *__restrict __writefds,
3895 fd_set *__restrict __exceptfds,
3896 const struct timespec *__restrict __timeout,
3897 const __sigset_t *__restrict __sigmask);
3898
3899
3900 }
3901 # 9 "/usr/include/sys/select.h" 2 3 4
3902 # 221 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3903
3904
3905 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
3906
3907
3908
3909
3910
3911
3912
3913 # 1 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 1 3 4
3914 # 22 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4
3915 #define _SYS_SYSMACROS_H 1
3916
3917 # 1 "/usr/include/features.h" 1 3 4
3918 # 25 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 2 3 4
3919
3920
3921
3922
3923
3924 __extension__
3925 extern unsigned int gnu_dev_major (unsigned long long int __dev)
3926 throw ();
3927 __extension__
3928 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
3929 throw ();
3930 __extension__
3931 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
3932 unsigned int __minor)
3933 throw ();
3934 # 65 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4
3935 #define major(dev) gnu_dev_major (dev)
3936 #define minor(dev) gnu_dev_minor (dev)
3937 #define makedev(maj,min) gnu_dev_makedev (maj, min)
3938 # 9 "/usr/include/sys/sysmacros.h" 2 3 4
3939 # 224 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3940
3941
3942
3943
3944 typedef __blksize_t blksize_t;
3945 #define __blksize_t_defined
3946
3947
3948
3949
3950
3951 typedef __blkcnt_t blkcnt_t;
3952 #define __blkcnt_t_defined
3953
3954
3955 typedef __fsblkcnt_t fsblkcnt_t;
3956 #define __fsblkcnt_t_defined
3957
3958
3959 typedef __fsfilcnt_t fsfilcnt_t;
3960 #define __fsfilcnt_t_defined
3961 # 262 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
3962 typedef __blkcnt64_t blkcnt64_t;
3963 typedef __fsblkcnt64_t fsblkcnt64_t;
3964 typedef __fsfilcnt64_t fsfilcnt64_t;
3965
3966
3967
3968
3969
3970 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
3971
3972
3973
3974
3975
3976
3977
3978 # 1 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 1 3 4
3979 # 21 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
3980 #define _BITS_PTHREADTYPES_H 1
3981
3982 # 1 "/usr/include/bits/wordsize.h" 1 3 4
3983
3984
3985
3986
3987
3988
3989
3990 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
3991
3992
3993
3994 #define __WORDSIZE 64
3995 #define __WORDSIZE_COMPAT32 1
3996 # 9 "/usr/include/bits/wordsize.h" 2 3 4
3997 # 24 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 2 3 4
3998
3999
4000 #define __SIZEOF_PTHREAD_ATTR_T 56
4001 #define __SIZEOF_PTHREAD_MUTEX_T 40
4002 #define __SIZEOF_PTHREAD_MUTEXATTR_T 4
4003 #define __SIZEOF_PTHREAD_COND_T 48
4004 #define __SIZEOF_PTHREAD_CONDATTR_T 4
4005 #define __SIZEOF_PTHREAD_RWLOCK_T 56
4006 #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
4007 #define __SIZEOF_PTHREAD_BARRIER_T 32
4008 #define __SIZEOF_PTHREAD_BARRIERATTR_T 4
4009 # 50 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4010 typedef unsigned long int pthread_t;
4011
4012
4013 typedef union
4014 {
4015 char __size[56];
4016 long int __align;
4017 } pthread_attr_t;
4018
4019
4020
4021 typedef struct __pthread_internal_list
4022 {
4023 struct __pthread_internal_list *__prev;
4024 struct __pthread_internal_list *__next;
4025 } __pthread_list_t;
4026 # 76 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4027 typedef union
4028 {
4029 struct __pthread_mutex_s
4030 {
4031 int __lock;
4032 unsigned int __count;
4033 int __owner;
4034
4035 unsigned int __nusers;
4036
4037
4038
4039 int __kind;
4040
4041 int __spins;
4042 __pthread_list_t __list;
4043 #define __PTHREAD_MUTEX_HAVE_PREV 1
4044 # 101 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4045 } __data;
4046 char __size[40];
4047 long int __align;
4048 } pthread_mutex_t;
4049
4050 typedef union
4051 {
4052 char __size[4];
4053 int __align;
4054 } pthread_mutexattr_t;
4055
4056
4057
4058
4059 typedef union
4060 {
4061 struct
4062 {
4063 int __lock;
4064 unsigned int __futex;
4065 __extension__ unsigned long long int __total_seq;
4066 __extension__ unsigned long long int __wakeup_seq;
4067 __extension__ unsigned long long int __woken_seq;
4068 void *__mutex;
4069 unsigned int __nwaiters;
4070 unsigned int __broadcast_seq;
4071 } __data;
4072 char __size[48];
4073 __extension__ long long int __align;
4074 } pthread_cond_t;
4075
4076 typedef union
4077 {
4078 char __size[4];
4079 int __align;
4080 } pthread_condattr_t;
4081
4082
4083
4084 typedef unsigned int pthread_key_t;
4085
4086
4087
4088 typedef int pthread_once_t;
4089
4090
4091
4092
4093
4094 typedef union
4095 {
4096
4097 struct
4098 {
4099 int __lock;
4100 unsigned int __nr_readers;
4101 unsigned int __readers_wakeup;
4102 unsigned int __writer_wakeup;
4103 unsigned int __nr_readers_queued;
4104 unsigned int __nr_writers_queued;
4105 int __writer;
4106 int __shared;
4107 unsigned long int __pad1;
4108 unsigned long int __pad2;
4109
4110
4111 unsigned int __flags;
4112 } __data;
4113 # 187 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4114 char __size[56];
4115 long int __align;
4116 } pthread_rwlock_t;
4117
4118 typedef union
4119 {
4120 char __size[8];
4121 long int __align;
4122 } pthread_rwlockattr_t;
4123
4124
4125
4126
4127
4128 typedef volatile int pthread_spinlock_t;
4129
4130
4131
4132
4133 typedef union
4134 {
4135 char __size[32];
4136 long int __align;
4137 } pthread_barrier_t;
4138
4139 typedef union
4140 {
4141 char __size[4];
4142 int __align;
4143 } pthread_barrierattr_t;
4144 # 9 "/usr/include/bits/pthreadtypes.h" 2 3 4
4145 # 271 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
4146
4147
4148 }
4149 # 9 "/usr/include/sys/types.h" 2 3 4
4150 # 321 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
4151
4152
4153
4154
4155
4156
4157 extern long int random (void) throw ();
4158
4159
4160 extern void srandom (unsigned int __seed) throw ();
4161
4162
4163
4164
4165
4166 extern char *initstate (unsigned int __seed, char *__statebuf,
4167 size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
4168
4169
4170
4171 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
4172
4173
4174
4175
4176
4177
4178
4179 struct random_data
4180 {
4181 int32_t *fptr;
4182 int32_t *rptr;
4183 int32_t *state;
4184 int rand_type;
4185 int rand_deg;
4186 int rand_sep;
4187 int32_t *end_ptr;
4188 };
4189
4190 extern int random_r (struct random_data *__restrict __buf,
4191 int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
4192
4193 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
4194 throw () __attribute__ ((__nonnull__ (2)));
4195
4196 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
4197 size_t __statelen,
4198 struct random_data *__restrict __buf)
4199 throw () __attribute__ ((__nonnull__ (2, 4)));
4200
4201 extern int setstate_r (char *__restrict __statebuf,
4202 struct random_data *__restrict __buf)
4203 throw () __attribute__ ((__nonnull__ (1, 2)));
4204
4205
4206
4207
4208
4209
4210 extern int rand (void) throw ();
4211
4212 extern void srand (unsigned int __seed) throw ();
4213
4214
4215
4216
4217 extern int rand_r (unsigned int *__seed) throw ();
4218
4219
4220
4221
4222
4223
4224
4225 extern double drand48 (void) throw ();
4226 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
4227
4228
4229 extern long int lrand48 (void) throw ();
4230 extern long int nrand48 (unsigned short int __xsubi[3])
4231 throw () __attribute__ ((__nonnull__ (1)));
4232
4233
4234 extern long int mrand48 (void) throw ();
4235 extern long int jrand48 (unsigned short int __xsubi[3])
4236 throw () __attribute__ ((__nonnull__ (1)));
4237
4238
4239 extern void srand48 (long int __seedval) throw ();
4240 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
4241 throw () __attribute__ ((__nonnull__ (1)));
4242 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
4243
4244
4245
4246
4247
4248 struct drand48_data
4249 {
4250 unsigned short int __x[3];
4251 unsigned short int __old_x[3];
4252 unsigned short int __c;
4253 unsigned short int __init;
4254 unsigned long long int __a;
4255 };
4256
4257
4258 extern int drand48_r (struct drand48_data *__restrict __buffer,
4259 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
4260 extern int erand48_r (unsigned short int __xsubi[3],
4261 struct drand48_data *__restrict __buffer,
4262 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
4263
4264
4265 extern int lrand48_r (struct drand48_data *__restrict __buffer,
4266 long int *__restrict __result)
4267 throw () __attribute__ ((__nonnull__ (1, 2)));
4268 extern int nrand48_r (unsigned short int __xsubi[3],
4269 struct drand48_data *__restrict __buffer,
4270 long int *__restrict __result)
4271 throw () __attribute__ ((__nonnull__ (1, 2)));
4272
4273
4274 extern int mrand48_r (struct drand48_data *__restrict __buffer,
4275 long int *__restrict __result)
4276 throw () __attribute__ ((__nonnull__ (1, 2)));
4277 extern int jrand48_r (unsigned short int __xsubi[3],
4278 struct drand48_data *__restrict __buffer,
4279 long int *__restrict __result)
4280 throw () __attribute__ ((__nonnull__ (1, 2)));
4281
4282
4283 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
4284 throw () __attribute__ ((__nonnull__ (2)));
4285
4286 extern int seed48_r (unsigned short int __seed16v[3],
4287 struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
4288
4289 extern int lcong48_r (unsigned short int __param[7],
4290 struct drand48_data *__buffer)
4291 throw () __attribute__ ((__nonnull__ (1, 2)));
4292
4293
4294
4295
4296
4297
4298 #define __malloc_and_calloc_defined
4299
4300
4301 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
4302
4303 extern void *calloc (size_t __nmemb, size_t __size)
4304 throw () __attribute__ ((__malloc__)) ;
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315 extern void *realloc (void *__ptr, size_t __size)
4316 throw () __attribute__ ((__warn_unused_result__));
4317
4318 extern void free (void *__ptr) throw ();
4319
4320
4321
4322
4323 extern void cfree (void *__ptr) throw ();
4324
4325
4326
4327 # 1 "/usr/include/alloca.h" 1 3 4
4328
4329
4330
4331
4332
4333
4334
4335 # 1 "/usr/include/gentoo-multilib/amd64/alloca.h" 1 3 4
4336 # 20 "/usr/include/gentoo-multilib/amd64/alloca.h" 3 4
4337 #define _ALLOCA_H 1
4338
4339 # 1 "/usr/include/features.h" 1 3 4
4340 # 23 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4
4341
4342 #define __need_size_t
4343 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
4344 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4345 #undef __need_ptrdiff_t
4346 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4347 #undef __need_size_t
4348 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4349 #undef __need_wchar_t
4350 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4351 #undef NULL
4352
4353 #define NULL __null
4354 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4355 #undef __need_NULL
4356
4357
4358
4359
4360 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
4361 # 26 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4
4362
4363 extern "C" {
4364
4365
4366 #undef alloca
4367
4368
4369 extern void *alloca (size_t __size) throw ();
4370
4371
4372 #define alloca(size) __builtin_alloca (size)
4373
4374
4375 }
4376 # 9 "/usr/include/alloca.h" 2 3 4
4377 # 498 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
4378
4379
4380
4381
4382 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
4383
4384
4385
4386
4387 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
4388 throw () __attribute__ ((__nonnull__ (1))) ;
4389
4390
4391
4392
4393 extern void abort (void) throw () __attribute__ ((__noreturn__));
4394
4395
4396
4397 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
4398
4399
4400
4401
4402
4403 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
4404 throw () __attribute__ ((__nonnull__ (1)));
4405
4406
4407
4408
4409
4410
4411 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
4412
4413
4414
4415
4416
4417
4418 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
4419
4420
4421
4422
4423
4424
4425 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
4426
4427
4428
4429
4430 extern char *__secure_getenv (__const char *__name)
4431 throw () __attribute__ ((__nonnull__ (1))) ;
4432
4433
4434
4435
4436
4437 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
4438
4439
4440
4441
4442
4443 extern int setenv (__const char *__name, __const char *__value, int __replace)
4444 throw () __attribute__ ((__nonnull__ (2)));
4445
4446
4447 extern int unsetenv (__const char *__name) throw ();
4448
4449
4450
4451
4452
4453
4454 extern int clearenv (void) throw ();
4455 # 583 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4456 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
4457 # 594 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4458 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
4459 # 604 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4460 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
4461 # 614 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4462 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
4463 # 625 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4464 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
4465 # 635 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4466 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476 extern int system (__const char *__command) ;
4477
4478
4479
4480
4481
4482
4483 extern char *canonicalize_file_name (__const char *__name)
4484 throw () __attribute__ ((__nonnull__ (1))) ;
4485 # 662 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4486 extern char *realpath (__const char *__restrict __name,
4487 char *__restrict __resolved) throw () ;
4488
4489
4490
4491
4492
4493 #define __COMPAR_FN_T
4494 typedef int (*__compar_fn_t) (__const void *, __const void *);
4495
4496
4497 typedef __compar_fn_t comparison_fn_t;
4498
4499
4500
4501
4502
4503
4504 extern void *bsearch (__const void *__key, __const void *__base,
4505 size_t __nmemb, size_t __size, __compar_fn_t __compar)
4506 __attribute__ ((__nonnull__ (1, 2, 5))) ;
4507
4508
4509
4510 extern void qsort (void *__base, size_t __nmemb, size_t __size,
4511 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
4512
4513
4514
4515 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
4516 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
4517
4518
4519
4520 __extension__ extern long long int llabs (long long int __x)
4521 throw () __attribute__ ((__const__)) ;
4522
4523
4524
4525
4526
4527
4528
4529 extern div_t div (int __numer, int __denom)
4530 throw () __attribute__ ((__const__)) ;
4531 extern ldiv_t ldiv (long int __numer, long int __denom)
4532 throw () __attribute__ ((__const__)) ;
4533
4534
4535
4536
4537 __extension__ extern lldiv_t lldiv (long long int __numer,
4538 long long int __denom)
4539 throw () __attribute__ ((__const__)) ;
4540
4541 # 727 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4542 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
4543 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
4544
4545
4546
4547
4548 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
4549 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
4550
4551
4552
4553
4554 extern char *gcvt (double __value, int __ndigit, char *__buf)
4555 throw () __attribute__ ((__nonnull__ (3))) ;
4556
4557
4558
4559
4560 extern char *qecvt (long double __value, int __ndigit,
4561 int *__restrict __decpt, int *__restrict __sign)
4562 throw () __attribute__ ((__nonnull__ (3, 4))) ;
4563 extern char *qfcvt (long double __value, int __ndigit,
4564 int *__restrict __decpt, int *__restrict __sign)
4565 throw () __attribute__ ((__nonnull__ (3, 4))) ;
4566 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
4567 throw () __attribute__ ((__nonnull__ (3))) ;
4568
4569
4570
4571
4572 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
4573 int *__restrict __sign, char *__restrict __buf,
4574 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4575 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
4576 int *__restrict __sign, char *__restrict __buf,
4577 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4578
4579 extern int qecvt_r (long double __value, int __ndigit,
4580 int *__restrict __decpt, int *__restrict __sign,
4581 char *__restrict __buf, size_t __len)
4582 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4583 extern int qfcvt_r (long double __value, int __ndigit,
4584 int *__restrict __decpt, int *__restrict __sign,
4585 char *__restrict __buf, size_t __len)
4586 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4587
4588
4589
4590
4591
4592
4593
4594 extern int mblen (__const char *__s, size_t __n) throw () ;
4595
4596
4597 extern int mbtowc (wchar_t *__restrict __pwc,
4598 __const char *__restrict __s, size_t __n) throw () ;
4599
4600
4601 extern int wctomb (char *__s, wchar_t __wchar) throw () ;
4602
4603
4604
4605 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
4606 __const char *__restrict __s, size_t __n) throw ();
4607
4608 extern size_t wcstombs (char *__restrict __s,
4609 __const wchar_t *__restrict __pwcs, size_t __n)
4610 throw ();
4611
4612
4613
4614
4615
4616
4617
4618
4619 extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
4620 # 815 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4621 extern int getsubopt (char **__restrict __optionp,
4622 char *__const *__restrict __tokens,
4623 char **__restrict __valuep)
4624 throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
4625
4626
4627
4628
4629
4630 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
4631
4632
4633
4634
4635
4636
4637
4638 extern int posix_openpt (int __oflag) ;
4639
4640
4641
4642
4643
4644
4645
4646 extern int grantpt (int __fd) throw ();
4647
4648
4649
4650 extern int unlockpt (int __fd) throw ();
4651
4652
4653
4654
4655 extern char *ptsname (int __fd) throw () ;
4656
4657
4658
4659
4660
4661
4662 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
4663 throw () __attribute__ ((__nonnull__ (2)));
4664
4665
4666 extern int getpt (void);
4667
4668
4669
4670
4671
4672
4673 extern int getloadavg (double __loadavg[], int __nelem)
4674 throw () __attribute__ ((__nonnull__ (1)));
4675 # 881 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4676 #undef __need_malloc_and_calloc
4677
4678 }
4679 # 9 "/usr/include/stdlib.h" 2 3 4
4680 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 2 3
4681
4682
4683 #undef abort
4684 #undef abs
4685 #undef atexit
4686 #undef atof
4687 #undef atoi
4688 #undef atol
4689 #undef bsearch
4690 #undef calloc
4691 #undef div
4692 #undef exit
4693 #undef free
4694 #undef getenv
4695 #undef labs
4696 #undef ldiv
4697 #undef malloc
4698 #undef mblen
4699 #undef mbstowcs
4700 #undef mbtowc
4701 #undef qsort
4702 #undef rand
4703 #undef realloc
4704 #undef srand
4705 #undef strtod
4706 #undef strtol
4707 #undef strtoul
4708 #undef system
4709 #undef wcstombs
4710 #undef wctomb
4711
4712 namespace std __attribute__ ((__visibility__ ("default"))) {
4713
4714 using ::div_t;
4715 using ::ldiv_t;
4716
4717 using ::abort;
4718 using ::abs;
4719 using ::atexit;
4720 using ::atof;
4721 using ::atoi;
4722 using ::atol;
4723 using ::bsearch;
4724 using ::calloc;
4725 using ::div;
4726 using ::exit;
4727 using ::free;
4728 using ::getenv;
4729 using ::labs;
4730 using ::ldiv;
4731 using ::malloc;
4732
4733 using ::mblen;
4734 using ::mbstowcs;
4735 using ::mbtowc;
4736
4737 using ::qsort;
4738 using ::rand;
4739 using ::realloc;
4740 using ::srand;
4741 using ::strtod;
4742 using ::strtol;
4743 using ::strtoul;
4744 using ::system;
4745
4746 using ::wcstombs;
4747 using ::wctomb;
4748
4749
4750 inline long
4751 abs(long __i) { return labs(__i); }
4752
4753 inline ldiv_t
4754 div(long __i, long __j) { return ldiv(__i, __j); }
4755
4756 }
4757
4758
4759
4760 #undef _Exit
4761 #undef llabs
4762 #undef lldiv
4763 #undef atoll
4764 #undef strtoll
4765 #undef strtoull
4766 #undef strtof
4767 #undef strtold
4768
4769 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
4770
4771
4772 using ::lldiv_t;
4773
4774
4775
4776
4777
4778 using ::_Exit;
4779
4780
4781 inline long long
4782 abs(long long __x) { return __x >= 0 ? __x : -__x; }
4783
4784
4785 using ::llabs;
4786
4787 inline lldiv_t
4788 div(long long __n, long long __d)
4789 { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
4790
4791 using ::lldiv;
4792 # 194 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
4793 using ::atoll;
4794 using ::strtoll;
4795 using ::strtoull;
4796
4797 using ::strtof;
4798 using ::strtold;
4799
4800 }
4801
4802 namespace std __attribute__ ((__visibility__ ("default"))) {
4803
4804
4805 using ::__gnu_cxx::lldiv_t;
4806
4807 using ::__gnu_cxx::_Exit;
4808 using ::__gnu_cxx::abs;
4809
4810 using ::__gnu_cxx::llabs;
4811 using ::__gnu_cxx::div;
4812 using ::__gnu_cxx::lldiv;
4813
4814 using ::__gnu_cxx::atoll;
4815 using ::__gnu_cxx::strtof;
4816 using ::__gnu_cxx::strtoll;
4817 using ::__gnu_cxx::strtoull;
4818 using ::__gnu_cxx::strtold;
4819
4820 }
4821 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
4822
4823 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 1 3
4824 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 3
4825 #define _GLIBCXX_IOSFWD 1
4826
4827
4828 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 3
4829
4830
4831 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 1 3
4832 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 3
4833 #define _C_LOCALE_H 1
4834
4835
4836 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 3
4837
4838
4839 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 1 3
4840 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 3
4841 #define _GLIBCXX_CSTDIO 1
4842
4843
4844 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 3
4845
4846
4847
4848
4849 # 1 "/usr/include/stdio.h" 1 3 4
4850
4851
4852
4853
4854
4855
4856
4857 # 1 "/usr/include/gentoo-multilib/amd64/stdio.h" 1 3 4
4858 # 27 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
4859 #define _STDIO_H 1
4860 # 1 "/usr/include/features.h" 1 3 4
4861 # 29 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
4862
4863 extern "C" {
4864
4865 #define __need_size_t
4866 #define __need_NULL
4867 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
4868 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4869 #undef __need_ptrdiff_t
4870 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4871 #undef __need_size_t
4872 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4873 #undef __need_wchar_t
4874 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4875 #undef NULL
4876
4877 #define NULL __null
4878 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4879 #undef __need_NULL
4880
4881
4882
4883
4884 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
4885 # 35 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
4886
4887 # 1 "/usr/include/bits/types.h" 1 3 4
4888 # 37 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
4889 #define __need_FILE
4890 #define __need___FILE
4891
4892
4893
4894
4895
4896
4897 struct _IO_FILE;
4898
4899
4900
4901 typedef struct _IO_FILE FILE;
4902
4903
4904
4905
4906
4907
4908
4909 #define __FILE_defined 1
4910
4911 #undef __need_FILE
4912
4913
4914
4915
4916
4917 typedef struct _IO_FILE __FILE;
4918
4919 #define ____FILE_defined 1
4920
4921 #undef __need___FILE
4922
4923
4924
4925 #define _STDIO_USES_IOSTREAM
4926
4927 # 1 "/usr/include/libio.h" 1 3 4
4928
4929
4930
4931
4932
4933
4934
4935 # 1 "/usr/include/gentoo-multilib/amd64/libio.h" 1 3 4
4936 # 30 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
4937 #define _IO_STDIO_H
4938
4939 # 1 "/usr/include/_G_config.h" 1 3 4
4940
4941
4942
4943
4944
4945
4946
4947 # 1 "/usr/include/gentoo-multilib/amd64/_G_config.h" 1 3 4
4948
4949
4950
4951
4952 #define _G_config_h 1
4953
4954
4955
4956 # 1 "/usr/include/bits/types.h" 1 3 4
4957 # 10 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
4958 #define __need_size_t
4959
4960
4961
4962 #define __need_NULL
4963 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
4964 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4965 #undef __need_ptrdiff_t
4966 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4967 #undef __need_size_t
4968 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4969 #undef __need_wchar_t
4970 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4971 #undef NULL
4972
4973 #define NULL __null
4974 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4975 #undef __need_NULL
4976
4977
4978
4979
4980 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
4981 # 16 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
4982 #define __need_mbstate_t
4983
4984
4985
4986 # 1 "/usr/include/wchar.h" 1 3 4
4987
4988
4989
4990
4991
4992
4993
4994 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
4995 # 76 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
4996 #define __mbstate_t_defined 1
4997
4998 typedef struct
4999 {
5000 int __count;
5001 union
5002 {
5003
5004 unsigned int __wch;
5005
5006
5007
5008 char __wchb[4];
5009 } __value;
5010 } __mbstate_t;
5011
5012 #undef __need_mbstate_t
5013 # 9 "/usr/include/wchar.h" 2 3 4
5014 # 21 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
5015 #define _G_size_t size_t
5016 typedef struct
5017 {
5018 __off_t __pos;
5019 __mbstate_t __state;
5020 } _G_fpos_t;
5021 typedef struct
5022 {
5023 __off64_t __pos;
5024 __mbstate_t __state;
5025 } _G_fpos64_t;
5026 #define _G_ssize_t __ssize_t
5027 #define _G_off_t __off_t
5028 #define _G_off64_t __off64_t
5029 #define _G_pid_t __pid_t
5030 #define _G_uid_t __uid_t
5031 #define _G_wchar_t wchar_t
5032 #define _G_wint_t wint_t
5033 #define _G_stat64 stat64
5034 # 53 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4
5035 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
5036 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
5037 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
5038 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
5039
5040 #define _G_HAVE_BOOL 1
5041
5042
5043
5044 #define _G_HAVE_ATEXIT 1
5045 #define _G_HAVE_SYS_CDEFS 1
5046 #define _G_HAVE_SYS_WAIT 1
5047 #define _G_NEED_STDARG_H 1
5048 #define _G_va_list __gnuc_va_list
5049
5050 #define _G_HAVE_PRINTF_FP 1
5051 #define _G_HAVE_MMAP 1
5052 #define _G_HAVE_MREMAP 1
5053 #define _G_HAVE_LONG_DOUBLE_IO 1
5054 #define _G_HAVE_IO_FILE_OPEN 1
5055 #define _G_HAVE_IO_GETLINE_INFO 1
5056
5057 #define _G_IO_IO_FILE_VERSION 0x20001
5058
5059 #define _G_OPEN64 __open64
5060 #define _G_LSEEK64 __lseek64
5061 #define _G_MMAP64 __mmap64
5062 #define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf)
5063
5064
5065 #define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)
5066
5067 #define _G_BUFSIZ 8192
5068
5069
5070 #define _G_NAMES_HAVE_UNDERSCORE 0
5071 #define _G_VTABLE_LABEL_HAS_LENGTH 1
5072 #define _G_USING_THUNKS 1
5073 #define _G_VTABLE_LABEL_PREFIX "__vt_"
5074 #define _G_VTABLE_LABEL_PREFIX_ID __vt_
5075
5076
5077
5078 #define _G_ARGS(ARGLIST) ARGLIST
5079 # 9 "/usr/include/_G_config.h" 2 3 4
5080 # 33 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4
5081
5082 #define _IO_pos_t _G_fpos_t
5083 #define _IO_fpos_t _G_fpos_t
5084 #define _IO_fpos64_t _G_fpos64_t
5085 #define _IO_size_t _G_size_t
5086 #define _IO_ssize_t _G_ssize_t
5087 #define _IO_off_t _G_off_t
5088 #define _IO_off64_t _G_off64_t
5089 #define _IO_pid_t _G_pid_t
5090 #define _IO_uid_t _G_uid_t
5091 #define _IO_iconv_t _G_iconv_t
5092 #define _IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT
5093 #define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE
5094 #define _IO_BUFSIZ _G_BUFSIZ
5095 #define _IO_va_list _G_va_list
5096 #define _IO_wint_t _G_wint_t
5097
5098
5099
5100 #define __need___va_list
5101 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 1 3 4
5102 # 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
5103 #undef __need___va_list
5104
5105
5106
5107
5108 #define __GNUC_VA_LIST
5109 typedef __builtin_va_list __gnuc_va_list;
5110 # 54 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4
5111
5112 #undef _IO_va_list
5113 #define _IO_va_list __gnuc_va_list
5114 # 76 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5115 #define _PARAMS(protos) __P(protos)
5116
5117
5118
5119
5120
5121
5122
5123 #define _IO_UNIFIED_JUMPTABLES 1
5124
5125
5126
5127
5128
5129 #define EOF (-1)
5130 # 105 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5131 #define _IOS_INPUT 1
5132 #define _IOS_OUTPUT 2
5133 #define _IOS_ATEND 4
5134 #define _IOS_APPEND 8
5135 #define _IOS_TRUNC 16
5136 #define _IOS_NOCREATE 32
5137 #define _IOS_NOREPLACE 64
5138 #define _IOS_BIN 128
5139
5140
5141
5142
5143
5144
5145
5146 #define _IO_MAGIC 0xFBAD0000
5147 #define _OLD_STDIO_MAGIC 0xFABC0000
5148 #define _IO_MAGIC_MASK 0xFFFF0000
5149 #define _IO_USER_BUF 1
5150 #define _IO_UNBUFFERED 2
5151 #define _IO_NO_READS 4
5152 #define _IO_NO_WRITES 8
5153 #define _IO_EOF_SEEN 0x10
5154 #define _IO_ERR_SEEN 0x20
5155 #define _IO_DELETE_DONT_CLOSE 0x40
5156 #define _IO_LINKED 0x80
5157 #define _IO_IN_BACKUP 0x100
5158 #define _IO_LINE_BUF 0x200
5159 #define _IO_TIED_PUT_GET 0x400
5160 #define _IO_CURRENTLY_PUTTING 0x800
5161 #define _IO_IS_APPENDING 0x1000
5162 #define _IO_IS_FILEBUF 0x2000
5163 #define _IO_BAD_SEEN 0x4000
5164 #define _IO_USER_LOCK 0x8000
5165
5166 #define _IO_FLAGS2_MMAP 1
5167 #define _IO_FLAGS2_NOTCANCEL 2
5168
5169
5170
5171 #define _IO_FLAGS2_USER_WBUF 8
5172
5173
5174
5175
5176
5177 #define _IO_SKIPWS 01
5178 #define _IO_LEFT 02
5179 #define _IO_RIGHT 04
5180 #define _IO_INTERNAL 010
5181 #define _IO_DEC 020
5182 #define _IO_OCT 040
5183 #define _IO_HEX 0100
5184 #define _IO_SHOWBASE 0200
5185 #define _IO_SHOWPOINT 0400
5186 #define _IO_UPPERCASE 01000
5187 #define _IO_SHOWPOS 02000
5188 #define _IO_SCIENTIFIC 04000
5189 #define _IO_FIXED 010000
5190 #define _IO_UNITBUF 020000
5191 #define _IO_STDIO 040000
5192 #define _IO_DONT_CLOSE 0100000
5193 #define _IO_BOOLALPHA 0200000
5194
5195
5196 struct _IO_jump_t; struct _IO_FILE;
5197 # 180 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5198 typedef void _IO_lock_t;
5199
5200
5201
5202
5203
5204 struct _IO_marker {
5205 struct _IO_marker *_next;
5206 struct _IO_FILE *_sbuf;
5207
5208
5209
5210 int _pos;
5211 # 203 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5212 };
5213
5214
5215 enum __codecvt_result
5216 {
5217 __codecvt_ok,
5218 __codecvt_partial,
5219 __codecvt_error,
5220 __codecvt_noconv
5221 };
5222 # 271 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5223 struct _IO_FILE {
5224 int _flags;
5225 #define _IO_file_flags _flags
5226
5227
5228
5229 char* _IO_read_ptr;
5230 char* _IO_read_end;
5231 char* _IO_read_base;
5232 char* _IO_write_base;
5233 char* _IO_write_ptr;
5234 char* _IO_write_end;
5235 char* _IO_buf_base;
5236 char* _IO_buf_end;
5237
5238 char *_IO_save_base;
5239 char *_IO_backup_base;
5240 char *_IO_save_end;
5241
5242 struct _IO_marker *_markers;
5243
5244 struct _IO_FILE *_chain;
5245
5246 int _fileno;
5247
5248
5249
5250 int _flags2;
5251
5252 __off_t _old_offset;
5253
5254 #define __HAVE_COLUMN
5255
5256 unsigned short _cur_column;
5257 signed char _vtable_offset;
5258 char _shortbuf[1];
5259
5260
5261
5262 _IO_lock_t *_lock;
5263 # 319 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5264 __off64_t _offset;
5265 # 328 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5266 void *__pad1;
5267 void *__pad2;
5268 void *__pad3;
5269 void *__pad4;
5270 size_t __pad5;
5271
5272 int _mode;
5273
5274 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
5275
5276 };
5277
5278
5279
5280
5281
5282 struct _IO_FILE_plus;
5283
5284 extern struct _IO_FILE_plus _IO_2_1_stdin_;
5285 extern struct _IO_FILE_plus _IO_2_1_stdout_;
5286 extern struct _IO_FILE_plus _IO_2_1_stderr_;
5287
5288 #define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_))
5289 #define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_))
5290 #define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_))
5291 # 364 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5292 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
5293
5294
5295
5296
5297
5298
5299
5300 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
5301 size_t __n);
5302
5303
5304
5305
5306
5307
5308
5309 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
5310
5311
5312 typedef int __io_close_fn (void *__cookie);
5313
5314
5315
5316
5317 typedef __io_read_fn cookie_read_function_t;
5318 typedef __io_write_fn cookie_write_function_t;
5319 typedef __io_seek_fn cookie_seek_function_t;
5320 typedef __io_close_fn cookie_close_function_t;
5321
5322
5323 typedef struct
5324 {
5325 __io_read_fn *read;
5326 __io_write_fn *write;
5327 __io_seek_fn *seek;
5328 __io_close_fn *close;
5329 } _IO_cookie_io_functions_t;
5330 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
5331
5332 struct _IO_cookie_file;
5333
5334
5335 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
5336 void *__cookie, _IO_cookie_io_functions_t __fns);
5337
5338
5339
5340
5341 extern "C" {
5342
5343
5344 extern int __underflow (_IO_FILE *);
5345 extern int __uflow (_IO_FILE *);
5346 extern int __overflow (_IO_FILE *, int);
5347
5348
5349
5350
5351
5352
5353
5354 #define _IO_BE(expr,res) __builtin_expect ((expr), res)
5355
5356
5357
5358
5359 #define _IO_getc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
5360
5361
5362 #define _IO_peekc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) && __underflow (_fp) == EOF ? EOF : *(unsigned char *) (_fp)->_IO_read_ptr)
5363
5364
5365
5366 #define _IO_putc_unlocked(_ch,_fp) (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
5367 # 455 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5368 #define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0)
5369 #define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0)
5370
5371 extern int _IO_getc (_IO_FILE *__fp);
5372 extern int _IO_putc (int __c, _IO_FILE *__fp);
5373 extern int _IO_feof (_IO_FILE *__fp) throw ();
5374 extern int _IO_ferror (_IO_FILE *__fp) throw ();
5375
5376 extern int _IO_peekc_locked (_IO_FILE *__fp);
5377
5378
5379 #define _IO_PENDING_OUTPUT_COUNT(_fp) ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base)
5380
5381
5382 extern void _IO_flockfile (_IO_FILE *) throw ();
5383 extern void _IO_funlockfile (_IO_FILE *) throw ();
5384 extern int _IO_ftrylockfile (_IO_FILE *) throw ();
5385 # 480 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5386 #define _IO_peekc(_fp) _IO_peekc_unlocked (_fp)
5387 #define _IO_flockfile(_fp)
5388 #define _IO_funlockfile(_fp)
5389 #define _IO_ftrylockfile(_fp)
5390 #define _IO_cleanup_region_start(_fct,_fp)
5391 #define _IO_cleanup_region_end(_Doit)
5392
5393
5394 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
5395 __gnuc_va_list, int *__restrict);
5396 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
5397 __gnuc_va_list);
5398 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
5399 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
5400
5401 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
5402 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
5403
5404 extern void _IO_free_backup_area (_IO_FILE *) throw ();
5405 # 550 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5406 }
5407 # 9 "/usr/include/libio.h" 2 3 4
5408 # 76 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
5409
5410
5411
5412
5413 typedef __gnuc_va_list va_list;
5414 #define _VA_LIST_DEFINED
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424 typedef _G_fpos_t fpos_t;
5425
5426
5427
5428
5429
5430 typedef _G_fpos64_t fpos64_t;
5431
5432
5433
5434 #define _IOFBF 0
5435 #define _IOLBF 1
5436 #define _IONBF 2
5437
5438
5439
5440
5441 #define BUFSIZ _IO_BUFSIZ
5442 # 121 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5443 #define SEEK_SET 0
5444 #define SEEK_CUR 1
5445 #define SEEK_END 2
5446
5447
5448
5449
5450 #define P_tmpdir "/tmp"
5451 # 141 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5452 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
5453
5454
5455
5456
5457
5458
5459
5460 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4
5461 # 24 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4
5462 #define L_tmpnam 20
5463 #define TMP_MAX 238328
5464 #define FILENAME_MAX 4096
5465
5466
5467 #define L_ctermid 9
5468 #define L_cuserid 9
5469
5470
5471
5472
5473 #undef FOPEN_MAX
5474 #define FOPEN_MAX 16
5475 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4
5476 # 142 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
5477
5478
5479
5480 extern struct _IO_FILE *stdin;
5481 extern struct _IO_FILE *stdout;
5482 extern struct _IO_FILE *stderr;
5483
5484 #define stdin stdin
5485 #define stdout stdout
5486 #define stderr stderr
5487
5488
5489
5490 extern int remove (__const char *__filename) throw ();
5491
5492 extern int rename (__const char *__old, __const char *__new) throw ();
5493
5494
5495
5496
5497 extern int renameat (int __oldfd, __const char *__old, int __newfd,
5498 __const char *__new) throw ();
5499
5500
5501
5502
5503
5504
5505
5506
5507 extern FILE *tmpfile (void) ;
5508 # 182 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5509 extern FILE *tmpfile64 (void) ;
5510
5511
5512
5513 extern char *tmpnam (char *__s) throw () ;
5514
5515
5516
5517
5518
5519 extern char *tmpnam_r (char *__s) throw () ;
5520 # 204 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5521 extern char *tempnam (__const char *__dir, __const char *__pfx)
5522 throw () __attribute__ ((__malloc__)) ;
5523
5524
5525
5526
5527
5528
5529
5530
5531 extern int fclose (FILE *__stream);
5532
5533
5534
5535
5536 extern int fflush (FILE *__stream);
5537
5538 # 229 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5539 extern int fflush_unlocked (FILE *__stream);
5540 # 239 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5541 extern int fcloseall (void);
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551 extern FILE *fopen (__const char *__restrict __filename,
5552 __const char *__restrict __modes) ;
5553
5554
5555
5556
5557 extern FILE *freopen (__const char *__restrict __filename,
5558 __const char *__restrict __modes,
5559 FILE *__restrict __stream) ;
5560 # 272 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5561
5562
5563 extern FILE *fopen64 (__const char *__restrict __filename,
5564 __const char *__restrict __modes) ;
5565 extern FILE *freopen64 (__const char *__restrict __filename,
5566 __const char *__restrict __modes,
5567 FILE *__restrict __stream) ;
5568
5569
5570
5571
5572 extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
5573
5574
5575
5576
5577
5578 extern FILE *fopencookie (void *__restrict __magic_cookie,
5579 __const char *__restrict __modes,
5580 _IO_cookie_io_functions_t __io_funcs) throw () ;
5581
5582
5583 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
5584 throw () ;
5585
5586
5587
5588
5589 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
5590
5591
5592
5593
5594
5595
5596 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
5597
5598
5599
5600 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
5601 int __modes, size_t __n) throw ();
5602
5603
5604
5605
5606
5607 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
5608 size_t __size) throw ();
5609
5610
5611 extern void setlinebuf (FILE *__stream) throw ();
5612
5613
5614
5615
5616
5617
5618
5619
5620 extern int fprintf (FILE *__restrict __stream,
5621 __const char *__restrict __format, ...);
5622
5623
5624
5625
5626 extern int printf (__const char *__restrict __format, ...);
5627
5628 extern int sprintf (char *__restrict __s,
5629 __const char *__restrict __format, ...) throw ();
5630
5631
5632
5633
5634
5635 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
5636 __gnuc_va_list __arg);
5637
5638
5639
5640
5641 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
5642
5643 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
5644 __gnuc_va_list __arg) throw ();
5645
5646
5647
5648
5649
5650 extern int snprintf (char *__restrict __s, size_t __maxlen,
5651 __const char *__restrict __format, ...)
5652 throw () __attribute__ ((__format__ (__printf__, 3, 4)));
5653
5654 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
5655 __const char *__restrict __format, __gnuc_va_list __arg)
5656 throw () __attribute__ ((__format__ (__printf__, 3, 0)));
5657
5658
5659
5660
5661
5662
5663 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
5664 __gnuc_va_list __arg)
5665 throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
5666 extern int __asprintf (char **__restrict __ptr,
5667 __const char *__restrict __fmt, ...)
5668 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
5669 extern int asprintf (char **__restrict __ptr,
5670 __const char *__restrict __fmt, ...)
5671 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
5672
5673
5674
5675
5676
5677
5678
5679 extern int vdprintf (int __fd, __const char *__restrict __fmt,
5680 __gnuc_va_list __arg)
5681 __attribute__ ((__format__ (__printf__, 2, 0)));
5682 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
5683 __attribute__ ((__format__ (__printf__, 2, 3)));
5684
5685
5686
5687
5688
5689
5690
5691
5692 extern int fscanf (FILE *__restrict __stream,
5693 __const char *__restrict __format, ...) ;
5694
5695
5696
5697
5698 extern int scanf (__const char *__restrict __format, ...) ;
5699
5700 extern int sscanf (__const char *__restrict __s,
5701 __const char *__restrict __format, ...) throw ();
5702 # 441 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5703
5704
5705
5706
5707
5708
5709
5710
5711 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
5712 __gnuc_va_list __arg)
5713 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
5714
5715
5716
5717
5718
5719 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
5720 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
5721
5722
5723 extern int vsscanf (__const char *__restrict __s,
5724 __const char *__restrict __format, __gnuc_va_list __arg)
5725 throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
5726 # 500 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736 extern int fgetc (FILE *__stream);
5737 extern int getc (FILE *__stream);
5738
5739
5740
5741
5742
5743 extern int getchar (void);
5744
5745
5746
5747
5748 #define getc(_fp) _IO_getc (_fp)
5749
5750
5751
5752
5753
5754
5755 extern int getc_unlocked (FILE *__stream);
5756 extern int getchar_unlocked (void);
5757 # 539 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5758 extern int fgetc_unlocked (FILE *__stream);
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770 extern int fputc (int __c, FILE *__stream);
5771 extern int putc (int __c, FILE *__stream);
5772
5773
5774
5775
5776
5777 extern int putchar (int __c);
5778
5779
5780
5781
5782 #define putc(_ch,_fp) _IO_putc (_ch, _fp)
5783 # 572 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5784 extern int fputc_unlocked (int __c, FILE *__stream);
5785
5786
5787
5788
5789
5790
5791
5792 extern int putc_unlocked (int __c, FILE *__stream);
5793 extern int putchar_unlocked (int __c);
5794
5795
5796
5797
5798
5799
5800 extern int getw (FILE *__stream);
5801
5802
5803 extern int putw (int __w, FILE *__stream);
5804
5805
5806
5807
5808
5809
5810
5811
5812 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
5813 ;
5814
5815
5816
5817
5818
5819
5820 extern char *gets (char *__s) ;
5821
5822 # 618 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5823 extern char *fgets_unlocked (char *__restrict __s, int __n,
5824 FILE *__restrict __stream) ;
5825 # 634 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5826 extern __ssize_t __getdelim (char **__restrict __lineptr,
5827 size_t *__restrict __n, int __delimiter,
5828 FILE *__restrict __stream) ;
5829 extern __ssize_t getdelim (char **__restrict __lineptr,
5830 size_t *__restrict __n, int __delimiter,
5831 FILE *__restrict __stream) ;
5832
5833
5834
5835
5836
5837
5838
5839 extern __ssize_t getline (char **__restrict __lineptr,
5840 size_t *__restrict __n,
5841 FILE *__restrict __stream) ;
5842
5843
5844
5845
5846
5847
5848
5849
5850 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
5851
5852
5853
5854
5855
5856 extern int puts (__const char *__s);
5857
5858
5859
5860
5861
5862
5863 extern int ungetc (int __c, FILE *__stream);
5864
5865
5866
5867
5868
5869
5870 extern size_t fread (void *__restrict __ptr, size_t __size,
5871 size_t __n, FILE *__restrict __stream) ;
5872
5873
5874
5875
5876 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
5877 size_t __n, FILE *__restrict __s) ;
5878
5879 # 695 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5880 extern int fputs_unlocked (__const char *__restrict __s,
5881 FILE *__restrict __stream);
5882 # 706 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5883 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
5884 size_t __n, FILE *__restrict __stream) ;
5885 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
5886 size_t __n, FILE *__restrict __stream) ;
5887
5888
5889
5890
5891
5892
5893
5894
5895 extern int fseek (FILE *__stream, long int __off, int __whence);
5896
5897
5898
5899
5900 extern long int ftell (FILE *__stream) ;
5901
5902
5903
5904
5905 extern void rewind (FILE *__stream);
5906
5907 # 742 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5908 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
5909
5910
5911
5912
5913 extern __off_t ftello (FILE *__stream) ;
5914 # 761 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5915
5916
5917
5918
5919
5920
5921 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
5922
5923
5924
5925
5926 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
5927 # 784 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5928
5929
5930
5931 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
5932 extern __off64_t ftello64 (FILE *__stream) ;
5933 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
5934 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
5935
5936
5937
5938
5939 extern void clearerr (FILE *__stream) throw ();
5940
5941 extern int feof (FILE *__stream) throw () ;
5942
5943 extern int ferror (FILE *__stream) throw () ;
5944
5945
5946
5947
5948 extern void clearerr_unlocked (FILE *__stream) throw ();
5949 extern int feof_unlocked (FILE *__stream) throw () ;
5950 extern int ferror_unlocked (FILE *__stream) throw () ;
5951
5952
5953
5954
5955
5956
5957
5958
5959 extern void perror (__const char *__s);
5960
5961
5962
5963
5964
5965
5966 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
5967
5968
5969
5970
5971
5972
5973
5974 # 1 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 1 3 4
5975 # 27 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 3 4
5976 extern int sys_nerr;
5977 extern __const char *__const sys_errlist[];
5978
5979
5980 extern int _sys_nerr;
5981 extern __const char *__const _sys_errlist[];
5982 # 9 "/usr/include/bits/sys_errlist.h" 2 3 4
5983 # 823 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
5984
5985
5986
5987
5988 extern int fileno (FILE *__stream) throw () ;
5989
5990
5991
5992
5993 extern int fileno_unlocked (FILE *__stream) throw () ;
5994 # 842 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5995 extern FILE *popen (__const char *__command, __const char *__modes) ;
5996
5997
5998
5999
6000
6001 extern int pclose (FILE *__stream);
6002
6003
6004
6005
6006
6007 extern char *ctermid (char *__s) throw ();
6008
6009
6010
6011
6012
6013 extern char *cuserid (char *__s);
6014
6015
6016
6017
6018 struct obstack;
6019
6020
6021 extern int obstack_printf (struct obstack *__restrict __obstack,
6022 __const char *__restrict __format, ...)
6023 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
6024 extern int obstack_vprintf (struct obstack *__restrict __obstack,
6025 __const char *__restrict __format,
6026 __gnuc_va_list __args)
6027 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
6028
6029
6030
6031
6032
6033
6034
6035 extern void flockfile (FILE *__stream) throw ();
6036
6037
6038
6039 extern int ftrylockfile (FILE *__stream) throw () ;
6040
6041
6042 extern void funlockfile (FILE *__stream) throw ();
6043 # 912 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
6044 }
6045 # 9 "/usr/include/stdio.h" 2 3 4
6046 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 2 3
6047
6048
6049 #undef clearerr
6050 #undef fclose
6051 #undef feof
6052 #undef ferror
6053 #undef fflush
6054 #undef fgetc
6055 #undef fgetpos
6056 #undef fgets
6057 #undef fopen
6058 #undef fprintf
6059 #undef fputc
6060 #undef fputs
6061 #undef fread
6062 #undef freopen
6063 #undef fscanf
6064 #undef fseek
6065 #undef fsetpos
6066 #undef ftell
6067 #undef fwrite
6068 #undef getc
6069 #undef getchar
6070 #undef gets
6071 #undef perror
6072 #undef printf
6073 #undef putc
6074 #undef putchar
6075 #undef puts
6076 #undef remove
6077 #undef rename
6078 #undef rewind
6079 #undef scanf
6080 #undef setbuf
6081 #undef setvbuf
6082 #undef sprintf
6083 #undef sscanf
6084 #undef tmpfile
6085 #undef tmpnam
6086 #undef ungetc
6087 #undef vfprintf
6088 #undef vprintf
6089 #undef vsprintf
6090
6091 namespace std __attribute__ ((__visibility__ ("default"))) {
6092
6093 using ::FILE;
6094 using ::fpos_t;
6095
6096 using ::clearerr;
6097 using ::fclose;
6098 using ::feof;
6099 using ::ferror;
6100 using ::fflush;
6101 using ::fgetc;
6102 using ::fgetpos;
6103 using ::fgets;
6104 using ::fopen;
6105 using ::fprintf;
6106 using ::fputc;
6107 using ::fputs;
6108 using ::fread;
6109 using ::freopen;
6110 using ::fscanf;
6111 using ::fseek;
6112 using ::fsetpos;
6113 using ::ftell;
6114 using ::fwrite;
6115 using ::getc;
6116 using ::getchar;
6117 using ::gets;
6118 using ::perror;
6119 using ::printf;
6120 using ::putc;
6121 using ::putchar;
6122 using ::puts;
6123 using ::remove;
6124 using ::rename;
6125 using ::rewind;
6126 using ::scanf;
6127 using ::setbuf;
6128 using ::setvbuf;
6129 using ::sprintf;
6130 using ::sscanf;
6131 using ::tmpfile;
6132 using ::tmpnam;
6133 using ::ungetc;
6134 using ::vfprintf;
6135 using ::vprintf;
6136 using ::vsprintf;
6137
6138 }
6139
6140
6141
6142 #undef snprintf
6143 #undef vfscanf
6144 #undef vscanf
6145 #undef vsnprintf
6146 #undef vsscanf
6147
6148 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
6149 # 170 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 3
6150 using ::snprintf;
6151 using ::vfscanf;
6152 using ::vscanf;
6153 using ::vsnprintf;
6154 using ::vsscanf;
6155
6156
6157 }
6158
6159 namespace std __attribute__ ((__visibility__ ("default"))) {
6160
6161 using ::__gnu_cxx::snprintf;
6162 using ::__gnu_cxx::vfscanf;
6163 using ::__gnu_cxx::vscanf;
6164 using ::__gnu_cxx::vsnprintf;
6165 using ::__gnu_cxx::vsscanf;
6166
6167 }
6168 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
6169 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 1 3
6170 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 3
6171 #define _GLIBCXX_CLOCALE 1
6172
6173
6174 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 3
6175
6176
6177 # 1 "/usr/include/locale.h" 1 3 4
6178
6179
6180
6181
6182
6183
6184
6185 # 1 "/usr/include/gentoo-multilib/amd64/locale.h" 1 3 4
6186 # 24 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6187 #define _LOCALE_H 1
6188
6189 # 1 "/usr/include/features.h" 1 3 4
6190 # 27 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6191
6192 #define __need_NULL
6193 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
6194 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6195 #undef __need_ptrdiff_t
6196 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6197 #undef __need_size_t
6198 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6199 #undef __need_wchar_t
6200 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6201 #undef NULL
6202
6203 #define NULL __null
6204 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6205 #undef __need_NULL
6206
6207
6208
6209
6210 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
6211 # 30 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6212 # 1 "/usr/include/bits/locale.h" 1 3 4
6213
6214
6215
6216
6217
6218
6219
6220 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4
6221 # 25 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 3 4
6222 #define _BITS_LOCALE_H 1
6223
6224 enum
6225 {
6226 __LC_CTYPE = 0,
6227 __LC_NUMERIC = 1,
6228 __LC_TIME = 2,
6229 __LC_COLLATE = 3,
6230 __LC_MONETARY = 4,
6231 __LC_MESSAGES = 5,
6232 __LC_ALL = 6,
6233 __LC_PAPER = 7,
6234 __LC_NAME = 8,
6235 __LC_ADDRESS = 9,
6236 __LC_TELEPHONE = 10,
6237 __LC_MEASUREMENT = 11,
6238 __LC_IDENTIFICATION = 12
6239 };
6240 # 9 "/usr/include/bits/locale.h" 2 3 4
6241 # 31 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6242
6243 extern "C" {
6244
6245
6246
6247 #define LC_CTYPE __LC_CTYPE
6248 #define LC_NUMERIC __LC_NUMERIC
6249 #define LC_TIME __LC_TIME
6250 #define LC_COLLATE __LC_COLLATE
6251 #define LC_MONETARY __LC_MONETARY
6252 #define LC_MESSAGES __LC_MESSAGES
6253 #define LC_ALL __LC_ALL
6254 #define LC_PAPER __LC_PAPER
6255 #define LC_NAME __LC_NAME
6256 #define LC_ADDRESS __LC_ADDRESS
6257 #define LC_TELEPHONE __LC_TELEPHONE
6258 #define LC_MEASUREMENT __LC_MEASUREMENT
6259 #define LC_IDENTIFICATION __LC_IDENTIFICATION
6260
6261
6262
6263
6264
6265 struct lconv
6266 {
6267
6268
6269 char *decimal_point;
6270 char *thousands_sep;
6271
6272
6273
6274
6275
6276 char *grouping;
6277
6278
6279
6280
6281
6282 char *int_curr_symbol;
6283 char *currency_symbol;
6284 char *mon_decimal_point;
6285 char *mon_thousands_sep;
6286 char *mon_grouping;
6287 char *positive_sign;
6288 char *negative_sign;
6289 char int_frac_digits;
6290 char frac_digits;
6291
6292 char p_cs_precedes;
6293
6294 char p_sep_by_space;
6295
6296 char n_cs_precedes;
6297
6298 char n_sep_by_space;
6299
6300
6301
6302
6303
6304
6305 char p_sign_posn;
6306 char n_sign_posn;
6307
6308
6309 char int_p_cs_precedes;
6310
6311 char int_p_sep_by_space;
6312
6313 char int_n_cs_precedes;
6314
6315 char int_n_sep_by_space;
6316
6317
6318
6319
6320
6321
6322 char int_p_sign_posn;
6323 char int_n_sign_posn;
6324 # 121 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6325 };
6326
6327
6328
6329 extern char *setlocale (int __category, __const char *__locale) throw ();
6330
6331
6332 extern struct lconv *localeconv (void) throw ();
6333
6334
6335 # 146 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6336 # 1 "/usr/include/xlocale.h" 1 3 4
6337 # 147 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6338
6339 typedef __locale_t locale_t;
6340
6341
6342
6343
6344
6345 extern __locale_t newlocale (int __category_mask, __const char *__locale,
6346 __locale_t __base) throw ();
6347
6348
6349
6350
6351
6352 #define LC_CTYPE_MASK (1 << __LC_CTYPE)
6353 #define LC_NUMERIC_MASK (1 << __LC_NUMERIC)
6354 #define LC_TIME_MASK (1 << __LC_TIME)
6355 #define LC_COLLATE_MASK (1 << __LC_COLLATE)
6356 #define LC_MONETARY_MASK (1 << __LC_MONETARY)
6357 #define LC_MESSAGES_MASK (1 << __LC_MESSAGES)
6358 #define LC_PAPER_MASK (1 << __LC_PAPER)
6359 #define LC_NAME_MASK (1 << __LC_NAME)
6360 #define LC_ADDRESS_MASK (1 << __LC_ADDRESS)
6361 #define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE)
6362 #define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT)
6363 #define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION)
6364 #define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK )
6365 # 189 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6366 extern __locale_t duplocale (__locale_t __dataset) throw ();
6367
6368
6369
6370 extern void freelocale (__locale_t __dataset) throw ();
6371
6372
6373
6374
6375
6376
6377 extern __locale_t uselocale (__locale_t __dataset) throw ();
6378
6379
6380
6381 #define LC_GLOBAL_LOCALE ((__locale_t) -1L)
6382
6383
6384
6385 }
6386 # 9 "/usr/include/locale.h" 2 3 4
6387 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 2 3
6388
6389
6390 #undef setlocale
6391 #undef localeconv
6392
6393 namespace std __attribute__ ((__visibility__ ("default"))) {
6394
6395 using ::lconv;
6396 using ::setlocale;
6397 using ::localeconv;
6398
6399 }
6400 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
6401 # 1 "/usr/include/langinfo.h" 1 3 4
6402
6403
6404
6405
6406
6407
6408
6409 # 1 "/usr/include/gentoo-multilib/amd64/langinfo.h" 1 3 4
6410 # 21 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
6411 #define _LANGINFO_H 1
6412
6413
6414 # 1 "/usr/include/nl_types.h" 1 3 4
6415
6416
6417
6418
6419
6420
6421
6422 # 1 "/usr/include/gentoo-multilib/amd64/nl_types.h" 1 3 4
6423 # 20 "/usr/include/gentoo-multilib/amd64/nl_types.h" 3 4
6424 #define _NL_TYPES_H 1
6425
6426 # 1 "/usr/include/features.h" 1 3 4
6427 # 23 "/usr/include/gentoo-multilib/amd64/nl_types.h" 2 3 4
6428
6429
6430 #define NL_SETD 1
6431
6432
6433 #define NL_CAT_LOCALE 1
6434
6435
6436 extern "C" {
6437
6438
6439 typedef void *nl_catd;
6440
6441
6442 typedef int nl_item;
6443
6444
6445
6446
6447
6448 extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
6449
6450
6451
6452 extern char *catgets (nl_catd __catalog, int __set, int __number,
6453 __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
6454
6455
6456 extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
6457
6458 }
6459 # 9 "/usr/include/nl_types.h" 2 3 4
6460 # 25 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
6461
6462 # 1 "/usr/include/bits/locale.h" 1 3 4
6463
6464
6465
6466
6467
6468
6469
6470 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4
6471 # 9 "/usr/include/bits/locale.h" 2 3 4
6472 # 27 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
6473
6474
6475 extern "C" {
6476
6477
6478
6479
6480
6481 #define _NL_ITEM(category,index) (((category) << 16) | (index))
6482
6483
6484 #define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16)
6485 #define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff)
6486
6487
6488 enum
6489 {
6490
6491
6492
6493 ABDAY_1 = (((__LC_TIME) << 16) | (0)),
6494 #define ABDAY_1 ABDAY_1
6495 ABDAY_2,
6496 #define ABDAY_2 ABDAY_2
6497 ABDAY_3,
6498 #define ABDAY_3 ABDAY_3
6499 ABDAY_4,
6500 #define ABDAY_4 ABDAY_4
6501 ABDAY_5,
6502 #define ABDAY_5 ABDAY_5
6503 ABDAY_6,
6504 #define ABDAY_6 ABDAY_6
6505 ABDAY_7,
6506 #define ABDAY_7 ABDAY_7
6507
6508
6509 DAY_1,
6510 #define DAY_1 DAY_1
6511 DAY_2,
6512 #define DAY_2 DAY_2
6513 DAY_3,
6514 #define DAY_3 DAY_3
6515 DAY_4,
6516 #define DAY_4 DAY_4
6517 DAY_5,
6518 #define DAY_5 DAY_5
6519 DAY_6,
6520 #define DAY_6 DAY_6
6521 DAY_7,
6522 #define DAY_7 DAY_7
6523
6524
6525 ABMON_1,
6526 #define ABMON_1 ABMON_1
6527 ABMON_2,
6528 #define ABMON_2 ABMON_2
6529 ABMON_3,
6530 #define ABMON_3 ABMON_3
6531 ABMON_4,
6532 #define ABMON_4 ABMON_4
6533 ABMON_5,
6534 #define ABMON_5 ABMON_5
6535 ABMON_6,
6536 #define ABMON_6 ABMON_6
6537 ABMON_7,
6538 #define ABMON_7 ABMON_7
6539 ABMON_8,
6540 #define ABMON_8 ABMON_8
6541 ABMON_9,
6542 #define ABMON_9 ABMON_9
6543 ABMON_10,
6544 #define ABMON_10 ABMON_10
6545 ABMON_11,
6546 #define ABMON_11 ABMON_11
6547 ABMON_12,
6548 #define ABMON_12 ABMON_12
6549
6550
6551 MON_1,
6552 #define MON_1 MON_1
6553 MON_2,
6554 #define MON_2 MON_2
6555 MON_3,
6556 #define MON_3 MON_3
6557 MON_4,
6558 #define MON_4 MON_4
6559 MON_5,
6560 #define MON_5 MON_5
6561 MON_6,
6562 #define MON_6 MON_6
6563 MON_7,
6564 #define MON_7 MON_7
6565 MON_8,
6566 #define MON_8 MON_8
6567 MON_9,
6568 #define MON_9 MON_9
6569 MON_10,
6570 #define MON_10 MON_10
6571 MON_11,
6572 #define MON_11 MON_11
6573 MON_12,
6574 #define MON_12 MON_12
6575
6576 AM_STR,
6577 #define AM_STR AM_STR
6578 PM_STR,
6579 #define PM_STR PM_STR
6580
6581 D_T_FMT,
6582 #define D_T_FMT D_T_FMT
6583 D_FMT,
6584 #define D_FMT D_FMT
6585 T_FMT,
6586 #define T_FMT T_FMT
6587 T_FMT_AMPM,
6588 #define T_FMT_AMPM T_FMT_AMPM
6589
6590 ERA,
6591 #define ERA ERA
6592 __ERA_YEAR,
6593
6594 #define ERA_YEAR __ERA_YEAR
6595
6596 ERA_D_FMT,
6597 #define ERA_D_FMT ERA_D_FMT
6598 ALT_DIGITS,
6599 #define ALT_DIGITS ALT_DIGITS
6600 ERA_D_T_FMT,
6601 #define ERA_D_T_FMT ERA_D_T_FMT
6602 ERA_T_FMT,
6603 #define ERA_T_FMT ERA_T_FMT
6604
6605 _NL_TIME_ERA_NUM_ENTRIES,
6606 _NL_TIME_ERA_ENTRIES,
6607
6608 _NL_WABDAY_1,
6609 _NL_WABDAY_2,
6610 _NL_WABDAY_3,
6611 _NL_WABDAY_4,
6612 _NL_WABDAY_5,
6613 _NL_WABDAY_6,
6614 _NL_WABDAY_7,
6615
6616
6617 _NL_WDAY_1,
6618 _NL_WDAY_2,
6619 _NL_WDAY_3,
6620 _NL_WDAY_4,
6621 _NL_WDAY_5,
6622 _NL_WDAY_6,
6623 _NL_WDAY_7,
6624
6625
6626 _NL_WABMON_1,
6627 _NL_WABMON_2,
6628 _NL_WABMON_3,
6629 _NL_WABMON_4,
6630 _NL_WABMON_5,
6631 _NL_WABMON_6,
6632 _NL_WABMON_7,
6633 _NL_WABMON_8,
6634 _NL_WABMON_9,
6635 _NL_WABMON_10,
6636 _NL_WABMON_11,
6637 _NL_WABMON_12,
6638
6639
6640 _NL_WMON_1,
6641 _NL_WMON_2,
6642 _NL_WMON_3,
6643 _NL_WMON_4,
6644 _NL_WMON_5,
6645 _NL_WMON_6,
6646 _NL_WMON_7,
6647 _NL_WMON_8,
6648 _NL_WMON_9,
6649 _NL_WMON_10,
6650 _NL_WMON_11,
6651 _NL_WMON_12,
6652
6653 _NL_WAM_STR,
6654 _NL_WPM_STR,
6655
6656 _NL_WD_T_FMT,
6657 _NL_WD_FMT,
6658 _NL_WT_FMT,
6659 _NL_WT_FMT_AMPM,
6660
6661 _NL_WERA_YEAR,
6662 _NL_WERA_D_FMT,
6663 _NL_WALT_DIGITS,
6664 _NL_WERA_D_T_FMT,
6665 _NL_WERA_T_FMT,
6666
6667 _NL_TIME_WEEK_NDAYS,
6668 _NL_TIME_WEEK_1STDAY,
6669 _NL_TIME_WEEK_1STWEEK,
6670 _NL_TIME_FIRST_WEEKDAY,
6671 _NL_TIME_FIRST_WORKDAY,
6672 _NL_TIME_CAL_DIRECTION,
6673 _NL_TIME_TIMEZONE,
6674
6675 _DATE_FMT,
6676 #define _DATE_FMT _DATE_FMT
6677 _NL_W_DATE_FMT,
6678
6679 _NL_TIME_CODESET,
6680
6681 _NL_NUM_LC_TIME,
6682
6683
6684
6685
6686 _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
6687 _NL_COLLATE_RULESETS,
6688 _NL_COLLATE_TABLEMB,
6689 _NL_COLLATE_WEIGHTMB,
6690 _NL_COLLATE_EXTRAMB,
6691 _NL_COLLATE_INDIRECTMB,
6692 _NL_COLLATE_GAP1,
6693 _NL_COLLATE_GAP2,
6694 _NL_COLLATE_GAP3,
6695 _NL_COLLATE_TABLEWC,
6696 _NL_COLLATE_WEIGHTWC,
6697 _NL_COLLATE_EXTRAWC,
6698 _NL_COLLATE_INDIRECTWC,
6699 _NL_COLLATE_SYMB_HASH_SIZEMB,
6700 _NL_COLLATE_SYMB_TABLEMB,
6701 _NL_COLLATE_SYMB_EXTRAMB,
6702 _NL_COLLATE_COLLSEQMB,
6703 _NL_COLLATE_COLLSEQWC,
6704 _NL_COLLATE_CODESET,
6705 _NL_NUM_LC_COLLATE,
6706
6707
6708
6709
6710 _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
6711 _NL_CTYPE_TOUPPER,
6712 _NL_CTYPE_GAP1,
6713 _NL_CTYPE_TOLOWER,
6714 _NL_CTYPE_GAP2,
6715 _NL_CTYPE_CLASS32,
6716 _NL_CTYPE_GAP3,
6717 _NL_CTYPE_GAP4,
6718 _NL_CTYPE_GAP5,
6719 _NL_CTYPE_GAP6,
6720 _NL_CTYPE_CLASS_NAMES,
6721 _NL_CTYPE_MAP_NAMES,
6722 _NL_CTYPE_WIDTH,
6723 _NL_CTYPE_MB_CUR_MAX,
6724 _NL_CTYPE_CODESET_NAME,
6725 CODESET = _NL_CTYPE_CODESET_NAME,
6726 #define CODESET CODESET
6727 _NL_CTYPE_TOUPPER32,
6728 _NL_CTYPE_TOLOWER32,
6729 _NL_CTYPE_CLASS_OFFSET,
6730 _NL_CTYPE_MAP_OFFSET,
6731 _NL_CTYPE_INDIGITS_MB_LEN,
6732 _NL_CTYPE_INDIGITS0_MB,
6733 _NL_CTYPE_INDIGITS1_MB,
6734 _NL_CTYPE_INDIGITS2_MB,
6735 _NL_CTYPE_INDIGITS3_MB,
6736 _NL_CTYPE_INDIGITS4_MB,
6737 _NL_CTYPE_INDIGITS5_MB,
6738 _NL_CTYPE_INDIGITS6_MB,
6739 _NL_CTYPE_INDIGITS7_MB,
6740 _NL_CTYPE_INDIGITS8_MB,
6741 _NL_CTYPE_INDIGITS9_MB,
6742 _NL_CTYPE_INDIGITS_WC_LEN,
6743 _NL_CTYPE_INDIGITS0_WC,
6744 _NL_CTYPE_INDIGITS1_WC,
6745 _NL_CTYPE_INDIGITS2_WC,
6746 _NL_CTYPE_INDIGITS3_WC,
6747 _NL_CTYPE_INDIGITS4_WC,
6748 _NL_CTYPE_INDIGITS5_WC,
6749 _NL_CTYPE_INDIGITS6_WC,
6750 _NL_CTYPE_INDIGITS7_WC,
6751 _NL_CTYPE_INDIGITS8_WC,
6752 _NL_CTYPE_INDIGITS9_WC,
6753 _NL_CTYPE_OUTDIGIT0_MB,
6754 _NL_CTYPE_OUTDIGIT1_MB,
6755 _NL_CTYPE_OUTDIGIT2_MB,
6756 _NL_CTYPE_OUTDIGIT3_MB,
6757 _NL_CTYPE_OUTDIGIT4_MB,
6758 _NL_CTYPE_OUTDIGIT5_MB,
6759 _NL_CTYPE_OUTDIGIT6_MB,
6760 _NL_CTYPE_OUTDIGIT7_MB,
6761 _NL_CTYPE_OUTDIGIT8_MB,
6762 _NL_CTYPE_OUTDIGIT9_MB,
6763 _NL_CTYPE_OUTDIGIT0_WC,
6764 _NL_CTYPE_OUTDIGIT1_WC,
6765 _NL_CTYPE_OUTDIGIT2_WC,
6766 _NL_CTYPE_OUTDIGIT3_WC,
6767 _NL_CTYPE_OUTDIGIT4_WC,
6768 _NL_CTYPE_OUTDIGIT5_WC,
6769 _NL_CTYPE_OUTDIGIT6_WC,
6770 _NL_CTYPE_OUTDIGIT7_WC,
6771 _NL_CTYPE_OUTDIGIT8_WC,
6772 _NL_CTYPE_OUTDIGIT9_WC,
6773 _NL_CTYPE_TRANSLIT_TAB_SIZE,
6774 _NL_CTYPE_TRANSLIT_FROM_IDX,
6775 _NL_CTYPE_TRANSLIT_FROM_TBL,
6776 _NL_CTYPE_TRANSLIT_TO_IDX,
6777 _NL_CTYPE_TRANSLIT_TO_TBL,
6778 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
6779 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
6780 _NL_CTYPE_TRANSLIT_IGNORE_LEN,
6781 _NL_CTYPE_TRANSLIT_IGNORE,
6782 _NL_CTYPE_MAP_TO_NONASCII,
6783 _NL_CTYPE_EXTRA_MAP_1,
6784 _NL_CTYPE_EXTRA_MAP_2,
6785 _NL_CTYPE_EXTRA_MAP_3,
6786 _NL_CTYPE_EXTRA_MAP_4,
6787 _NL_CTYPE_EXTRA_MAP_5,
6788 _NL_CTYPE_EXTRA_MAP_6,
6789 _NL_CTYPE_EXTRA_MAP_7,
6790 _NL_CTYPE_EXTRA_MAP_8,
6791 _NL_CTYPE_EXTRA_MAP_9,
6792 _NL_CTYPE_EXTRA_MAP_10,
6793 _NL_CTYPE_EXTRA_MAP_11,
6794 _NL_CTYPE_EXTRA_MAP_12,
6795 _NL_CTYPE_EXTRA_MAP_13,
6796 _NL_CTYPE_EXTRA_MAP_14,
6797 _NL_NUM_LC_CTYPE,
6798
6799
6800
6801
6802 __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
6803
6804 #define INT_CURR_SYMBOL __INT_CURR_SYMBOL
6805
6806 __CURRENCY_SYMBOL,
6807
6808 #define CURRENCY_SYMBOL __CURRENCY_SYMBOL
6809
6810 __MON_DECIMAL_POINT,
6811
6812 #define MON_DECIMAL_POINT __MON_DECIMAL_POINT
6813
6814 __MON_THOUSANDS_SEP,
6815
6816 #define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP
6817
6818 __MON_GROUPING,
6819
6820 #define MON_GROUPING __MON_GROUPING
6821
6822 __POSITIVE_SIGN,
6823
6824 #define POSITIVE_SIGN __POSITIVE_SIGN
6825
6826 __NEGATIVE_SIGN,
6827
6828 #define NEGATIVE_SIGN __NEGATIVE_SIGN
6829
6830 __INT_FRAC_DIGITS,
6831
6832 #define INT_FRAC_DIGITS __INT_FRAC_DIGITS
6833
6834 __FRAC_DIGITS,
6835
6836 #define FRAC_DIGITS __FRAC_DIGITS
6837
6838 __P_CS_PRECEDES,
6839
6840 #define P_CS_PRECEDES __P_CS_PRECEDES
6841
6842 __P_SEP_BY_SPACE,
6843
6844 #define P_SEP_BY_SPACE __P_SEP_BY_SPACE
6845
6846 __N_CS_PRECEDES,
6847
6848 #define N_CS_PRECEDES __N_CS_PRECEDES
6849
6850 __N_SEP_BY_SPACE,
6851
6852 #define N_SEP_BY_SPACE __N_SEP_BY_SPACE
6853
6854 __P_SIGN_POSN,
6855
6856 #define P_SIGN_POSN __P_SIGN_POSN
6857
6858 __N_SIGN_POSN,
6859
6860 #define N_SIGN_POSN __N_SIGN_POSN
6861
6862 _NL_MONETARY_CRNCYSTR,
6863 #define CRNCYSTR _NL_MONETARY_CRNCYSTR
6864 __INT_P_CS_PRECEDES,
6865
6866 #define INT_P_CS_PRECEDES __INT_P_CS_PRECEDES
6867
6868 __INT_P_SEP_BY_SPACE,
6869
6870 #define INT_P_SEP_BY_SPACE __INT_P_SEP_BY_SPACE
6871
6872 __INT_N_CS_PRECEDES,
6873
6874 #define INT_N_CS_PRECEDES __INT_N_CS_PRECEDES
6875
6876 __INT_N_SEP_BY_SPACE,
6877
6878 #define INT_N_SEP_BY_SPACE __INT_N_SEP_BY_SPACE
6879
6880 __INT_P_SIGN_POSN,
6881
6882 #define INT_P_SIGN_POSN __INT_P_SIGN_POSN
6883
6884 __INT_N_SIGN_POSN,
6885
6886 #define INT_N_SIGN_POSN __INT_N_SIGN_POSN
6887
6888 _NL_MONETARY_DUO_INT_CURR_SYMBOL,
6889 _NL_MONETARY_DUO_CURRENCY_SYMBOL,
6890 _NL_MONETARY_DUO_INT_FRAC_DIGITS,
6891 _NL_MONETARY_DUO_FRAC_DIGITS,
6892 _NL_MONETARY_DUO_P_CS_PRECEDES,
6893 _NL_MONETARY_DUO_P_SEP_BY_SPACE,
6894 _NL_MONETARY_DUO_N_CS_PRECEDES,
6895 _NL_MONETARY_DUO_N_SEP_BY_SPACE,
6896 _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
6897 _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
6898 _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
6899 _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
6900 _NL_MONETARY_DUO_P_SIGN_POSN,
6901 _NL_MONETARY_DUO_N_SIGN_POSN,
6902 _NL_MONETARY_DUO_INT_P_SIGN_POSN,
6903 _NL_MONETARY_DUO_INT_N_SIGN_POSN,
6904 _NL_MONETARY_UNO_VALID_FROM,
6905 _NL_MONETARY_UNO_VALID_TO,
6906 _NL_MONETARY_DUO_VALID_FROM,
6907 _NL_MONETARY_DUO_VALID_TO,
6908 _NL_MONETARY_CONVERSION_RATE,
6909 _NL_MONETARY_DECIMAL_POINT_WC,
6910 _NL_MONETARY_THOUSANDS_SEP_WC,
6911 _NL_MONETARY_CODESET,
6912 _NL_NUM_LC_MONETARY,
6913
6914
6915
6916 __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
6917
6918 #define DECIMAL_POINT __DECIMAL_POINT
6919
6920 RADIXCHAR = __DECIMAL_POINT,
6921 #define RADIXCHAR RADIXCHAR
6922 __THOUSANDS_SEP,
6923
6924 #define THOUSANDS_SEP __THOUSANDS_SEP
6925
6926 THOUSEP = __THOUSANDS_SEP,
6927 #define THOUSEP THOUSEP
6928 __GROUPING,
6929
6930 #define GROUPING __GROUPING
6931
6932 _NL_NUMERIC_DECIMAL_POINT_WC,
6933 _NL_NUMERIC_THOUSANDS_SEP_WC,
6934 _NL_NUMERIC_CODESET,
6935 _NL_NUM_LC_NUMERIC,
6936
6937 __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
6938 #define YESEXPR __YESEXPR
6939 __NOEXPR,
6940 #define NOEXPR __NOEXPR
6941 __YESSTR,
6942
6943 #define YESSTR __YESSTR
6944
6945 __NOSTR,
6946
6947 #define NOSTR __NOSTR
6948
6949 _NL_MESSAGES_CODESET,
6950 _NL_NUM_LC_MESSAGES,
6951
6952 _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
6953 _NL_PAPER_WIDTH,
6954 _NL_PAPER_CODESET,
6955 _NL_NUM_LC_PAPER,
6956
6957 _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
6958 _NL_NAME_NAME_GEN,
6959 _NL_NAME_NAME_MR,
6960 _NL_NAME_NAME_MRS,
6961 _NL_NAME_NAME_MISS,
6962 _NL_NAME_NAME_MS,
6963 _NL_NAME_CODESET,
6964 _NL_NUM_LC_NAME,
6965
6966 _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
6967 _NL_ADDRESS_COUNTRY_NAME,
6968 _NL_ADDRESS_COUNTRY_POST,
6969 _NL_ADDRESS_COUNTRY_AB2,
6970 _NL_ADDRESS_COUNTRY_AB3,
6971 _NL_ADDRESS_COUNTRY_CAR,
6972 _NL_ADDRESS_COUNTRY_NUM,
6973 _NL_ADDRESS_COUNTRY_ISBN,
6974 _NL_ADDRESS_LANG_NAME,
6975 _NL_ADDRESS_LANG_AB,
6976 _NL_ADDRESS_LANG_TERM,
6977 _NL_ADDRESS_LANG_LIB,
6978 _NL_ADDRESS_CODESET,
6979 _NL_NUM_LC_ADDRESS,
6980
6981 _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
6982 _NL_TELEPHONE_TEL_DOM_FMT,
6983 _NL_TELEPHONE_INT_SELECT,
6984 _NL_TELEPHONE_INT_PREFIX,
6985 _NL_TELEPHONE_CODESET,
6986 _NL_NUM_LC_TELEPHONE,
6987
6988 _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
6989 _NL_MEASUREMENT_CODESET,
6990 _NL_NUM_LC_MEASUREMENT,
6991
6992 _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
6993 _NL_IDENTIFICATION_SOURCE,
6994 _NL_IDENTIFICATION_ADDRESS,
6995 _NL_IDENTIFICATION_CONTACT,
6996 _NL_IDENTIFICATION_EMAIL,
6997 _NL_IDENTIFICATION_TEL,
6998 _NL_IDENTIFICATION_FAX,
6999 _NL_IDENTIFICATION_LANGUAGE,
7000 _NL_IDENTIFICATION_TERRITORY,
7001 _NL_IDENTIFICATION_AUDIENCE,
7002 _NL_IDENTIFICATION_APPLICATION,
7003 _NL_IDENTIFICATION_ABBREVIATION,
7004 _NL_IDENTIFICATION_REVISION,
7005 _NL_IDENTIFICATION_DATE,
7006 _NL_IDENTIFICATION_CATEGORY,
7007 _NL_IDENTIFICATION_CODESET,
7008 _NL_NUM_LC_IDENTIFICATION,
7009
7010
7011 _NL_NUM
7012 };
7013
7014
7015
7016 #define _NL_LOCALE_NAME(category) _NL_ITEM ((category), -1)
7017
7018 #define NL_LOCALE_NAME(category) _NL_LOCALE_NAME (category)
7019 # 582 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
7020 extern char *nl_langinfo (nl_item __item) throw ();
7021
7022
7023
7024
7025
7026
7027
7028 # 1 "/usr/include/xlocale.h" 1 3 4
7029 # 591 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
7030
7031
7032 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
7033
7034
7035 }
7036 # 9 "/usr/include/langinfo.h" 2 3 4
7037 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7038 # 1 "/usr/include/iconv.h" 1 3 4
7039
7040
7041
7042
7043
7044
7045
7046 # 1 "/usr/include/gentoo-multilib/amd64/iconv.h" 1 3 4
7047 # 20 "/usr/include/gentoo-multilib/amd64/iconv.h" 3 4
7048 #define _ICONV_H 1
7049
7050 # 1 "/usr/include/features.h" 1 3 4
7051 # 23 "/usr/include/gentoo-multilib/amd64/iconv.h" 2 3 4
7052 #define __need_size_t
7053 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
7054 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7055 #undef __need_ptrdiff_t
7056 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7057 #undef __need_size_t
7058 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7059 #undef __need_wchar_t
7060 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7061 #undef NULL
7062
7063 #define NULL __null
7064 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7065 #undef __need_NULL
7066
7067
7068
7069
7070 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
7071 # 25 "/usr/include/gentoo-multilib/amd64/iconv.h" 2 3 4
7072
7073
7074 extern "C" {
7075
7076
7077 typedef void *iconv_t;
7078
7079
7080
7081
7082
7083
7084
7085 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
7086
7087
7088
7089
7090 extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
7091 size_t *__restrict __inbytesleft,
7092 char **__restrict __outbuf,
7093 size_t *__restrict __outbytesleft);
7094
7095
7096
7097
7098
7099 extern int iconv_close (iconv_t __cd);
7100
7101 }
7102 # 9 "/usr/include/iconv.h" 2 3 4
7103 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7104 # 1 "/usr/include/libintl.h" 1 3 4
7105
7106
7107
7108
7109
7110
7111
7112 # 1 "/usr/include/gentoo-multilib/amd64/libintl.h" 1 3 4
7113 # 22 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
7114 #define _LIBINTL_H 1
7115
7116 # 1 "/usr/include/features.h" 1 3 4
7117 # 25 "/usr/include/gentoo-multilib/amd64/libintl.h" 2 3 4
7118
7119
7120
7121 #define __USE_GNU_GETTEXT 1
7122
7123
7124
7125 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)
7126
7127
7128 extern "C" {
7129
7130
7131
7132
7133 extern char *((const char *) (__const char *__msgid))
7134 throw () __attribute__ ((__format_arg__ (1)));
7135
7136
7137
7138 extern char *((const char *) (__const char *__msgid))
7139 throw () __attribute__ ((__format_arg__ (2)));
7140 extern char *__dgettext (__const char *__domainname, __const char *__msgid)
7141 throw () __attribute__ ((__format_arg__ (2)));
7142
7143
7144
7145 extern char *((const char *) (__const char *__msgid))
7146
7147 throw () __attribute__ ((__format_arg__ (2)));
7148 extern char *__dcgettext (__const char *__domainname,
7149 __const char *__msgid, int __category)
7150 throw () __attribute__ ((__format_arg__ (2)));
7151
7152
7153
7154
7155 extern char *((unsigned long int __n) == 1 ? (const char *) (__const char *__msgid1) : (const char *) (__const char *__msgid2))
7156
7157 throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
7158
7159
7160
7161 extern char *((unsigned long int __n) == 1 ? (const char *) (__const char *__msgid1) : (const char *) (__const char *__msgid2))
7162
7163 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
7164
7165
7166
7167 extern char *((unsigned long int __n) == 1 ? (const char *) (__const char *__msgid1) : (const char *) (__const char *__msgid2))
7168
7169
7170 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
7171
7172
7173
7174
7175
7176 extern char *((const char *) (__const char *__domainname)) throw ();
7177
7178
7179
7180 extern char *((const char *) (__const char *__dirname)) throw ();
7181
7182
7183
7184
7185 extern char *((const char *) (__const char *__codeset)) throw ();
7186 # 122 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
7187 }
7188 # 9 "/usr/include/libintl.h" 2 3 4
7189 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7190 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 1 3
7191 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 3
7192 #define _GLIBCXX_CSTDARG 1
7193
7194
7195 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 3
7196
7197
7198 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 1 3 4
7199 # 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
7200 #define _STDARG_H
7201 #define _ANSI_STDARG_H_
7202
7203 #undef __need___va_list
7204 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
7205 #define va_start(v,l) __builtin_va_start(v,l)
7206 #define va_end(v) __builtin_va_end(v)
7207 #define va_arg(v,l) __builtin_va_arg(v,l)
7208
7209 #define va_copy(d,s) __builtin_va_copy(d,s)
7210
7211 #define __va_copy(d,s) __builtin_va_copy(d,s)
7212 # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
7213 #define _VA_LIST_
7214
7215
7216 #define _VA_LIST
7217
7218
7219
7220
7221
7222 #define _VA_LIST_T_H
7223
7224
7225 #define __va_list__
7226 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 2 3
7227
7228
7229
7230
7231
7232
7233 namespace std __attribute__ ((__visibility__ ("default"))) {
7234
7235 using ::va_list;
7236
7237 }
7238 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7239
7240 #define _GLIBCXX_C_LOCALE_GNU 1
7241
7242 #define _GLIBCXX_NUM_CATEGORIES 6
7243
7244
7245 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
7246
7247 extern "C" __typeof(uselocale) __uselocale;
7248
7249 }
7250
7251
7252 namespace std __attribute__ ((__visibility__ ("default"))) {
7253
7254 typedef __locale_t __c_locale;
7255
7256
7257
7258
7259
7260 inline int
7261 __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
7262 char* __out,
7263 const int __size __attribute__ ((__unused__)),
7264 const char* __fmt, ...)
7265 {
7266
7267 __c_locale __old = __gnu_cxx::__uselocale(__cloc);
7268
7269
7270
7271
7272
7273
7274
7275 va_list __args;
7276 __builtin_va_start(__args,__fmt);
7277
7278
7279 const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
7280
7281
7282
7283
7284 __builtin_va_end(__args);
7285
7286
7287 __gnu_cxx::__uselocale(__old);
7288
7289
7290
7291
7292 return __ret;
7293 }
7294
7295 }
7296 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
7297 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 1 3
7298 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 3
7299 #define _C_IO_STDIO_H 1
7300
7301
7302
7303 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 1 3
7304 # 30 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 3
7305 #define _GLIBCXX_GCC_GTHR_H
7306
7307
7308 #pragma GCC visibility push(default)
7309 # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 3
7310 #define _GLIBCXX_GTHREAD_USE_WEAK 1
7311
7312
7313 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 1 3
7314 # 31 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
7315 #define _GLIBCXX_GCC_GTHR_POSIX_H
7316
7317
7318
7319
7320 #define __GTHREADS 1
7321
7322
7323
7324
7325
7326
7327 # 1 "/usr/include/pthread.h" 1 3 4
7328
7329
7330
7331
7332
7333
7334
7335 # 1 "/usr/include/gentoo-multilib/amd64/pthread.h" 1 3 4
7336 # 21 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
7337 #define _PTHREAD_H 1
7338
7339 # 1 "/usr/include/features.h" 1 3 4
7340 # 24 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7341 # 1 "/usr/include/endian.h" 1 3 4
7342 # 25 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7343 # 1 "/usr/include/sched.h" 1 3 4
7344
7345
7346
7347
7348
7349
7350
7351 # 1 "/usr/include/gentoo-multilib/amd64/sched.h" 1 3 4
7352 # 21 "/usr/include/gentoo-multilib/amd64/sched.h" 3 4
7353 #define _SCHED_H 1
7354
7355 # 1 "/usr/include/features.h" 1 3 4
7356 # 24 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7357
7358
7359 # 1 "/usr/include/bits/types.h" 1 3 4
7360 # 27 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7361
7362 #define __need_size_t
7363 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
7364 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7365 #undef __need_ptrdiff_t
7366 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7367 #undef __need_size_t
7368 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7369 #undef __need_wchar_t
7370 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7371 #undef NULL
7372
7373 #define NULL __null
7374 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7375 #undef __need_NULL
7376
7377
7378
7379
7380 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
7381 # 30 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7382
7383 #define __need_timespec
7384 # 1 "/usr/include/time.h" 1 3 4
7385
7386
7387
7388
7389
7390
7391
7392 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
7393 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7394 #undef __need_clock_t
7395 # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7396 #undef __need_time_t
7397 # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7398 #undef __clockid_time_t
7399 # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7400 #undef __need_timer_t
7401 # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7402 #undef __need_timespec
7403 # 9 "/usr/include/time.h" 2 3 4
7404 # 33 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7405
7406
7407 # 1 "/usr/include/bits/sched.h" 1 3 4
7408
7409
7410
7411
7412
7413
7414
7415 # 1 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 1 3 4
7416 # 30 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7417 #define SCHED_OTHER 0
7418 #define SCHED_FIFO 1
7419 #define SCHED_RR 2
7420
7421 #define SCHED_BATCH 3
7422
7423
7424
7425
7426 #define CSIGNAL 0x000000ff
7427 #define CLONE_VM 0x00000100
7428 #define CLONE_FS 0x00000200
7429 #define CLONE_FILES 0x00000400
7430 #define CLONE_SIGHAND 0x00000800
7431 #define CLONE_PTRACE 0x00002000
7432 #define CLONE_VFORK 0x00004000
7433
7434 #define CLONE_PARENT 0x00008000
7435
7436 #define CLONE_THREAD 0x00010000
7437 #define CLONE_NEWNS 0x00020000
7438 #define CLONE_SYSVSEM 0x00040000
7439 #define CLONE_SETTLS 0x00080000
7440 #define CLONE_PARENT_SETTID 0x00100000
7441
7442 #define CLONE_CHILD_CLEARTID 0x00200000
7443
7444 #define CLONE_DETACHED 0x00400000
7445 #define CLONE_UNTRACED 0x00800000
7446
7447 #define CLONE_CHILD_SETTID 0x01000000
7448
7449 #define CLONE_STOPPED 0x02000000
7450
7451
7452
7453 struct sched_param
7454 {
7455 int __sched_priority;
7456 };
7457
7458 extern "C" {
7459
7460
7461
7462 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
7463 int __flags, void *__arg, ...) throw ();
7464
7465
7466 extern int unshare (int __flags) throw ();
7467
7468
7469 extern int sched_getcpu (void) throw ();
7470
7471
7472 }
7473
7474
7475
7476
7477
7478 #define __defined_schedparam 1
7479
7480 struct __sched_param
7481 {
7482 int __sched_priority;
7483 };
7484 #undef __need_schedparam
7485
7486
7487
7488
7489 #define __cpu_set_t_defined
7490
7491 #define __CPU_SETSIZE 1024
7492 #define __NCPUBITS (8 * sizeof (__cpu_mask))
7493
7494
7495 typedef unsigned long int __cpu_mask;
7496
7497
7498 #define __CPUELT(cpu) ((cpu) / __NCPUBITS)
7499 #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
7500
7501
7502 typedef struct
7503 {
7504 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
7505 } cpu_set_t;
7506
7507
7508
7509 #define __CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\0', setsize); while (0)
7510 # 134 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7511 #define __CPU_SET_S(cpu,setsize,cpusetp) ({ size_t __cpu = (cpu); __cpu < 8 * (setsize) ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; })
7512
7513
7514
7515 #define __CPU_CLR_S(cpu,setsize,cpusetp) ({ size_t __cpu = (cpu); __cpu < 8 * (setsize) ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; })
7516
7517
7518
7519 #define __CPU_ISSET_S(cpu,setsize,cpusetp) ({ size_t __cpu = (cpu); __cpu < 8 * (setsize) ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; })
7520
7521
7522
7523
7524 #define __CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)
7525
7526
7527
7528 #define __CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)
7529 # 165 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7530 #define __CPU_OP_S(setsize,destset,srcset1,srcset2,op) ({ cpu_set_t *__dest = (destset); cpu_set_t *__arr1 = (srcset1); cpu_set_t *__arr2 = (srcset2); size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; __dest; })
7531 # 175 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7532 #define __CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8)
7533
7534 #define __CPU_ALLOC(count) __sched_cpualloc (count)
7535 #define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
7536
7537 extern "C" {
7538
7539 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
7540 throw ();
7541 extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ;
7542 extern void __sched_cpufree (cpu_set_t *__set) throw ();
7543
7544 }
7545 # 9 "/usr/include/bits/sched.h" 2 3 4
7546 # 36 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7547
7548 #define sched_priority __sched_priority
7549
7550
7551 extern "C" {
7552
7553
7554 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
7555 throw ();
7556
7557
7558 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
7559
7560
7561 extern int sched_setscheduler (__pid_t __pid, int __policy,
7562 __const struct sched_param *__param) throw ();
7563
7564
7565 extern int sched_getscheduler (__pid_t __pid) throw ();
7566
7567
7568 extern int sched_yield (void) throw ();
7569
7570
7571 extern int sched_get_priority_max (int __algorithm) throw ();
7572
7573
7574 extern int sched_get_priority_min (int __algorithm) throw ();
7575
7576
7577 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
7578
7579
7580
7581
7582 #define CPU_SETSIZE __CPU_SETSIZE
7583 #define CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)
7584 #define CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)
7585 #define CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)
7586
7587 #define CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)
7588 #define CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)
7589
7590 #define CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)
7591 #define CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)
7592 #define CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)
7593
7594 #define CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)
7595 #define CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)
7596
7597 #define CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)
7598
7599 #define CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)
7600
7601
7602 #define CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)
7603
7604 #define CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
7605
7606 #define CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)
7607
7608 #define CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)
7609
7610 #define CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)
7611
7612 #define CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)
7613
7614
7615 #define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)
7616 #define CPU_ALLOC(count) __CPU_ALLOC (count)
7617 #define CPU_FREE(cpuset) __CPU_FREE (cpuset)
7618
7619
7620
7621 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
7622 __const cpu_set_t *__cpuset) throw ();
7623
7624
7625 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
7626 cpu_set_t *__cpuset) throw ();
7627
7628
7629 }
7630 # 9 "/usr/include/sched.h" 2 3 4
7631 # 26 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7632 # 1 "/usr/include/time.h" 1 3 4
7633
7634
7635
7636
7637
7638
7639
7640 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
7641 # 28 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7642 #define _TIME_H 1
7643 # 1 "/usr/include/features.h" 1 3 4
7644 # 30 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7645
7646 extern "C" {
7647
7648
7649
7650
7651
7652 #define __need_size_t
7653 #define __need_NULL
7654 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
7655 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7656 #undef __need_ptrdiff_t
7657 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7658 #undef __need_size_t
7659 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7660 #undef __need_wchar_t
7661 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7662 #undef NULL
7663
7664 #define NULL __null
7665 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7666 #undef __need_NULL
7667
7668
7669
7670
7671 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
7672 # 40 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7673
7674
7675
7676 # 1 "/usr/include/bits/time.h" 1 3 4
7677
7678
7679
7680
7681
7682
7683
7684 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4
7685 # 26 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
7686 #define _BITS_TIME_H 1
7687
7688
7689
7690
7691
7692
7693
7694 #define CLOCKS_PER_SEC 1000000l
7695 # 46 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
7696 #define CLOCK_REALTIME 0
7697
7698 #define CLOCK_MONOTONIC 1
7699
7700 #define CLOCK_PROCESS_CPUTIME_ID 2
7701
7702 #define CLOCK_THREAD_CPUTIME_ID 3
7703
7704
7705 #define TIMER_ABSTIME 1
7706 # 9 "/usr/include/bits/time.h" 2 3 4
7707 # 44 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7708 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7709 #undef __need_clock_t
7710 # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7711 #undef __need_time_t
7712 # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7713 #undef __clockid_time_t
7714 # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7715 #undef __need_timer_t
7716 # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7717 #undef __need_timespec
7718
7719
7720
7721
7722
7723 struct tm
7724 {
7725 int tm_sec;
7726 int tm_min;
7727 int tm_hour;
7728 int tm_mday;
7729 int tm_mon;
7730 int tm_year;
7731 int tm_wday;
7732 int tm_yday;
7733 int tm_isdst;
7734
7735
7736 long int tm_gmtoff;
7737 __const char *tm_zone;
7738
7739
7740
7741
7742 };
7743
7744
7745
7746
7747
7748
7749
7750
7751 struct itimerspec
7752 {
7753 struct timespec it_interval;
7754 struct timespec it_value;
7755 };
7756
7757
7758 struct sigevent;
7759 # 181 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7760
7761
7762
7763 extern clock_t clock (void) throw ();
7764
7765
7766 extern time_t time (time_t *__timer) throw ();
7767
7768
7769 extern double difftime (time_t __time1, time_t __time0)
7770 throw () __attribute__ ((__const__));
7771
7772
7773 extern time_t mktime (struct tm *__tp) throw ();
7774
7775
7776
7777
7778
7779 extern size_t strftime (char *__restrict __s, size_t __maxsize,
7780 __const char *__restrict __format,
7781 __const struct tm *__restrict __tp) throw ();
7782
7783
7784
7785
7786
7787 extern char *strptime (__const char *__restrict __s,
7788 __const char *__restrict __fmt, struct tm *__tp)
7789 throw ();
7790
7791
7792
7793
7794
7795 # 1 "/usr/include/xlocale.h" 1 3 4
7796 # 217 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7797
7798 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
7799 __const char *__restrict __format,
7800 __const struct tm *__restrict __tp,
7801 __locale_t __loc) throw ();
7802
7803 extern char *strptime_l (__const char *__restrict __s,
7804 __const char *__restrict __fmt, struct tm *__tp,
7805 __locale_t __loc) throw ();
7806
7807
7808
7809
7810
7811
7812 extern struct tm *gmtime (__const time_t *__timer) throw ();
7813
7814
7815
7816 extern struct tm *localtime (__const time_t *__timer) throw ();
7817
7818
7819
7820
7821
7822 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
7823 struct tm *__restrict __tp) throw ();
7824
7825
7826
7827 extern struct tm *localtime_r (__const time_t *__restrict __timer,
7828 struct tm *__restrict __tp) throw ();
7829
7830
7831
7832
7833
7834 extern char *asctime (__const struct tm *__tp) throw ();
7835
7836
7837 extern char *ctime (__const time_t *__timer) throw ();
7838
7839
7840
7841
7842
7843
7844
7845 extern char *asctime_r (__const struct tm *__restrict __tp,
7846 char *__restrict __buf) throw ();
7847
7848
7849 extern char *ctime_r (__const time_t *__restrict __timer,
7850 char *__restrict __buf) throw ();
7851
7852
7853
7854
7855 extern char *__tzname[2];
7856 extern int __daylight;
7857 extern long int __timezone;
7858
7859
7860
7861
7862 extern char *tzname[2];
7863
7864
7865
7866 extern void tzset (void) throw ();
7867
7868
7869
7870 extern int daylight;
7871 extern long int timezone;
7872
7873
7874
7875
7876
7877 extern int stime (__const time_t *__when) throw ();
7878
7879
7880
7881
7882
7883 #define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
7884 # 312 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7885 extern time_t timegm (struct tm *__tp) throw ();
7886
7887
7888 extern time_t timelocal (struct tm *__tp) throw ();
7889
7890
7891 extern int dysize (int __year) throw () __attribute__ ((__const__));
7892 # 327 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7893 extern int nanosleep (__const struct timespec *__requested_time,
7894 struct timespec *__remaining);
7895
7896
7897
7898 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
7899
7900
7901 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
7902
7903
7904 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
7905 throw ();
7906
7907
7908
7909
7910
7911
7912 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
7913 __const struct timespec *__req,
7914 struct timespec *__rem);
7915
7916
7917 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
7918
7919
7920
7921
7922 extern int timer_create (clockid_t __clock_id,
7923 struct sigevent *__restrict __evp,
7924 timer_t *__restrict __timerid) throw ();
7925
7926
7927 extern int timer_delete (timer_t __timerid) throw ();
7928
7929
7930 extern int timer_settime (timer_t __timerid, int __flags,
7931 __const struct itimerspec *__restrict __value,
7932 struct itimerspec *__restrict __ovalue) throw ();
7933
7934
7935 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
7936 throw ();
7937
7938
7939 extern int timer_getoverrun (timer_t __timerid) throw ();
7940 # 389 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7941 extern int getdate_err;
7942 # 398 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7943 extern struct tm *getdate (__const char *__string);
7944 # 412 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7945 extern int getdate_r (__const char *__restrict __string,
7946 struct tm *__restrict __resbufp);
7947
7948
7949 }
7950 # 9 "/usr/include/time.h" 2 3 4
7951 # 27 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7952
7953 #define __need_sigset_t
7954 # 1 "/usr/include/signal.h" 1 3 4
7955
7956
7957
7958
7959
7960
7961
7962 # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4
7963 # 29 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
7964 # 1 "/usr/include/features.h" 1 3 4
7965 # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4
7966
7967 extern "C" {
7968
7969 # 1 "/usr/include/bits/sigset.h" 1 3 4
7970
7971
7972
7973
7974
7975
7976
7977 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4
7978 # 9 "/usr/include/bits/sigset.h" 2 3 4
7979 # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4
7980 # 52 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
7981 #undef __need_sigset_t
7982 # 402 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
7983 }
7984 # 9 "/usr/include/signal.h" 2 3 4
7985 # 30 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7986 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
7987 # 31 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7988 # 1 "/usr/include/bits/setjmp.h" 1 3 4
7989
7990
7991
7992
7993
7994
7995
7996 # 1 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 1 3 4
7997 # 21 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 3 4
7998 #define _BITS_SETJMP_H 1
7999
8000
8001
8002
8003
8004 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8005
8006
8007
8008
8009
8010
8011
8012 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
8013
8014
8015
8016 #define __WORDSIZE 64
8017 #define __WORDSIZE_COMPAT32 1
8018 # 9 "/usr/include/bits/wordsize.h" 2 3 4
8019 # 28 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 2 3 4
8020
8021
8022
8023
8024 typedef long int __jmp_buf[8];
8025 # 9 "/usr/include/bits/setjmp.h" 2 3 4
8026 # 32 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
8027 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8028
8029
8030
8031
8032
8033
8034
8035 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
8036
8037
8038
8039 #define __WORDSIZE 64
8040 #define __WORDSIZE_COMPAT32 1
8041 # 9 "/usr/include/bits/wordsize.h" 2 3 4
8042 # 33 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
8043
8044
8045
8046 enum
8047 {
8048 PTHREAD_CREATE_JOINABLE,
8049 #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
8050 PTHREAD_CREATE_DETACHED
8051 #define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
8052 };
8053
8054
8055
8056 enum
8057 {
8058 PTHREAD_MUTEX_TIMED_NP,
8059 PTHREAD_MUTEX_RECURSIVE_NP,
8060 PTHREAD_MUTEX_ERRORCHECK_NP,
8061 PTHREAD_MUTEX_ADAPTIVE_NP
8062
8063 ,
8064 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
8065 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
8066 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
8067 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
8068
8069
8070
8071 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
8072
8073 };
8074
8075
8076
8077
8078 enum
8079 {
8080 PTHREAD_MUTEX_STALLED_NP,
8081 PTHREAD_MUTEX_ROBUST_NP
8082 };
8083
8084
8085
8086
8087
8088 enum
8089 {
8090 PTHREAD_PRIO_NONE,
8091 PTHREAD_PRIO_INHERIT,
8092 PTHREAD_PRIO_PROTECT
8093 };
8094
8095
8096
8097
8098
8099 #define PTHREAD_MUTEX_INITIALIZER { { 0, 0, 0, 0, 0, 0, { 0, 0 } } }
8100
8101
8102 #define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } }
8103
8104 #define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0, 0 } } }
8105
8106 #define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0, 0 } } }
8107 # 115 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8108 enum
8109 {
8110 PTHREAD_RWLOCK_PREFER_READER_NP,
8111 PTHREAD_RWLOCK_PREFER_WRITER_NP,
8112 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
8113 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
8114 };
8115
8116
8117 #define PTHREAD_RWLOCK_INITIALIZER { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
8118
8119
8120
8121 #define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
8122 # 147 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8123 enum
8124 {
8125 PTHREAD_INHERIT_SCHED,
8126 #define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
8127 PTHREAD_EXPLICIT_SCHED
8128 #define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
8129 };
8130
8131
8132
8133 enum
8134 {
8135 PTHREAD_SCOPE_SYSTEM,
8136 #define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
8137 PTHREAD_SCOPE_PROCESS
8138 #define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
8139 };
8140
8141
8142
8143 enum
8144 {
8145 PTHREAD_PROCESS_PRIVATE,
8146 #define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
8147 PTHREAD_PROCESS_SHARED
8148 #define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
8149 };
8150
8151
8152
8153
8154 #define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
8155
8156
8157
8158 struct _pthread_cleanup_buffer
8159 {
8160 void (*__routine) (void *);
8161 void *__arg;
8162 int __canceltype;
8163 struct _pthread_cleanup_buffer *__prev;
8164 };
8165
8166
8167 enum
8168 {
8169 PTHREAD_CANCEL_ENABLE,
8170 #define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
8171 PTHREAD_CANCEL_DISABLE
8172 #define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
8173 };
8174 enum
8175 {
8176 PTHREAD_CANCEL_DEFERRED,
8177 #define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
8178 PTHREAD_CANCEL_ASYNCHRONOUS
8179 #define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
8180 };
8181 #define PTHREAD_CANCELED ((void *) -1)
8182
8183
8184
8185 #define PTHREAD_ONCE_INIT 0
8186
8187
8188
8189
8190
8191
8192 #define PTHREAD_BARRIER_SERIAL_THREAD -1
8193
8194
8195
8196 extern "C" {
8197
8198
8199
8200
8201 extern int pthread_create (pthread_t *__restrict __newthread,
8202 __const pthread_attr_t *__restrict __attr,
8203 void *(*__start_routine) (void *),
8204 void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
8205
8206
8207
8208
8209
8210 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
8211
8212
8213
8214
8215
8216
8217
8218 extern int pthread_join (pthread_t __th, void **__thread_return);
8219
8220
8221
8222
8223 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
8224
8225
8226
8227
8228
8229
8230
8231 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
8232 __const struct timespec *__abstime);
8233
8234
8235
8236
8237
8238
8239 extern int pthread_detach (pthread_t __th) throw ();
8240
8241
8242
8243 extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
8244
8245
8246 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
8247
8248
8249
8250
8251
8252
8253
8254 extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
8255
8256
8257 extern int pthread_attr_destroy (pthread_attr_t *__attr)
8258 throw () __attribute__ ((__nonnull__ (1)));
8259
8260
8261 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
8262 int *__detachstate)
8263 throw () __attribute__ ((__nonnull__ (1, 2)));
8264
8265
8266 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
8267 int __detachstate)
8268 throw () __attribute__ ((__nonnull__ (1)));
8269
8270
8271
8272 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
8273 size_t *__guardsize)
8274 throw () __attribute__ ((__nonnull__ (1, 2)));
8275
8276
8277 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
8278 size_t __guardsize)
8279 throw () __attribute__ ((__nonnull__ (1)));
8280
8281
8282
8283 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
8284 __attr,
8285 struct sched_param *__restrict __param)
8286 throw () __attribute__ ((__nonnull__ (1, 2)));
8287
8288
8289 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
8290 __const struct sched_param *__restrict
8291 __param) throw () __attribute__ ((__nonnull__ (1, 2)));
8292
8293
8294 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
8295 __attr, int *__restrict __policy)
8296 throw () __attribute__ ((__nonnull__ (1, 2)));
8297
8298
8299 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
8300 throw () __attribute__ ((__nonnull__ (1)));
8301
8302
8303 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
8304 __attr, int *__restrict __inherit)
8305 throw () __attribute__ ((__nonnull__ (1, 2)));
8306
8307
8308 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
8309 int __inherit)
8310 throw () __attribute__ ((__nonnull__ (1)));
8311
8312
8313
8314 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
8315 int *__restrict __scope)
8316 throw () __attribute__ ((__nonnull__ (1, 2)));
8317
8318
8319 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
8320 throw () __attribute__ ((__nonnull__ (1)));
8321
8322
8323 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
8324 __attr, void **__restrict __stackaddr)
8325 throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
8326
8327
8328
8329
8330
8331 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
8332 void *__stackaddr)
8333 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
8334
8335
8336 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
8337 __attr, size_t *__restrict __stacksize)
8338 throw () __attribute__ ((__nonnull__ (1, 2)));
8339
8340
8341
8342
8343 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
8344 size_t __stacksize)
8345 throw () __attribute__ ((__nonnull__ (1)));
8346
8347
8348
8349 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
8350 void **__restrict __stackaddr,
8351 size_t *__restrict __stacksize)
8352 throw () __attribute__ ((__nonnull__ (1, 2, 3)));
8353
8354
8355
8356
8357 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
8358 size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
8359
8360
8361
8362
8363
8364 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
8365 size_t __cpusetsize,
8366 __const cpu_set_t *__cpuset)
8367 throw () __attribute__ ((__nonnull__ (1, 3)));
8368
8369
8370
8371 extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
8372 size_t __cpusetsize,
8373 cpu_set_t *__cpuset)
8374 throw () __attribute__ ((__nonnull__ (1, 3)));
8375
8376
8377
8378
8379
8380 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
8381 throw () __attribute__ ((__nonnull__ (2)));
8382
8383
8384
8385
8386
8387
8388
8389 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
8390 __const struct sched_param *__param)
8391 throw () __attribute__ ((__nonnull__ (3)));
8392
8393
8394 extern int pthread_getschedparam (pthread_t __target_thread,
8395 int *__restrict __policy,
8396 struct sched_param *__restrict __param)
8397 throw () __attribute__ ((__nonnull__ (2, 3)));
8398
8399
8400 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
8401 throw ();
8402
8403
8404
8405
8406 extern int pthread_getconcurrency (void) throw ();
8407
8408
8409 extern int pthread_setconcurrency (int __level) throw ();
8410
8411
8412
8413
8414
8415
8416
8417 extern int pthread_yield (void) throw ();
8418
8419
8420
8421
8422 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
8423 __const cpu_set_t *__cpuset)
8424 throw () __attribute__ ((__nonnull__ (3)));
8425
8426
8427 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
8428 cpu_set_t *__cpuset)
8429 throw () __attribute__ ((__nonnull__ (3)));
8430 # 466 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8431 extern int pthread_once (pthread_once_t *__once_control,
8432 void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
8433 # 478 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8434 extern int pthread_setcancelstate (int __state, int *__oldstate);
8435
8436
8437
8438 extern int pthread_setcanceltype (int __type, int *__oldtype);
8439
8440
8441 extern int pthread_cancel (pthread_t __th);
8442
8443
8444
8445
8446 extern void pthread_testcancel (void);
8447
8448
8449
8450
8451 typedef struct
8452 {
8453 struct
8454 {
8455 __jmp_buf __cancel_jmp_buf;
8456 int __mask_was_saved;
8457 } __cancel_jmp_buf[1];
8458 void *__pad[4];
8459 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
8460
8461
8462
8463 #define __cleanup_fct_attribute
8464
8465
8466
8467
8468 struct __pthread_cleanup_frame
8469 {
8470 void (*__cancel_routine) (void *);
8471 void *__cancel_arg;
8472 int __do_it;
8473 int __cancel_type;
8474 };
8475
8476
8477
8478
8479 class __pthread_cleanup_class
8480 {
8481 void (*__cancel_routine) (void *);
8482 void *__cancel_arg;
8483 int __do_it;
8484 int __cancel_type;
8485
8486 public:
8487 __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
8488 : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
8489 ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
8490 void __setdoit (int __newval) { __do_it = __newval; }
8491 void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
8492 &__cancel_type); }
8493 void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
8494 };
8495 # 547 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8496 #define pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg)
8497
8498
8499
8500
8501
8502 #define pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0)
8503
8504
8505
8506
8507
8508
8509
8510 #define pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer ()
8511
8512
8513
8514
8515
8516
8517
8518 #define pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0)
8519 # 712 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8520 struct __jmp_buf_tag;
8521 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
8522
8523
8524
8525
8526
8527 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
8528 __const pthread_mutexattr_t *__mutexattr)
8529 throw () __attribute__ ((__nonnull__ (1)));
8530
8531
8532 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
8533 throw () __attribute__ ((__nonnull__ (1)));
8534
8535
8536 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
8537 throw () __attribute__ ((__nonnull__ (1)));
8538
8539
8540 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
8541 throw () __attribute__ ((__nonnull__ (1)));
8542
8543
8544
8545 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
8546 __const struct timespec *__restrict
8547 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
8548
8549
8550
8551 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
8552 throw () __attribute__ ((__nonnull__ (1)));
8553
8554
8555
8556
8557 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
8558 __restrict __mutex,
8559 int *__restrict __prioceiling)
8560 throw () __attribute__ ((__nonnull__ (1, 2)));
8561
8562
8563
8564 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
8565 int __prioceiling,
8566 int *__restrict __old_ceiling)
8567 throw () __attribute__ ((__nonnull__ (1, 3)));
8568
8569
8570
8571
8572
8573 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
8574 throw () __attribute__ ((__nonnull__ (1)));
8575
8576
8577
8578
8579
8580
8581
8582 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
8583 throw () __attribute__ ((__nonnull__ (1)));
8584
8585
8586 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
8587 throw () __attribute__ ((__nonnull__ (1)));
8588
8589
8590 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
8591 __restrict __attr,
8592 int *__restrict __pshared)
8593 throw () __attribute__ ((__nonnull__ (1, 2)));
8594
8595
8596 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
8597 int __pshared)
8598 throw () __attribute__ ((__nonnull__ (1)));
8599
8600
8601
8602 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
8603 __attr, int *__restrict __kind)
8604 throw () __attribute__ ((__nonnull__ (1, 2)));
8605
8606
8607
8608
8609 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
8610 throw () __attribute__ ((__nonnull__ (1)));
8611
8612
8613 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
8614 __restrict __attr,
8615 int *__restrict __protocol)
8616 throw () __attribute__ ((__nonnull__ (1, 2)));
8617
8618
8619
8620 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
8621 int __protocol)
8622 throw () __attribute__ ((__nonnull__ (1)));
8623
8624
8625 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
8626 __restrict __attr,
8627 int *__restrict __prioceiling)
8628 throw () __attribute__ ((__nonnull__ (1, 2)));
8629
8630
8631 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
8632 int __prioceiling)
8633 throw () __attribute__ ((__nonnull__ (1)));
8634
8635
8636
8637
8638 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
8639 int *__robustness)
8640 throw () __attribute__ ((__nonnull__ (1, 2)));
8641
8642
8643 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
8644 int __robustness)
8645 throw () __attribute__ ((__nonnull__ (1)));
8646 # 846 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8647 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
8648 __const pthread_rwlockattr_t *__restrict
8649 __attr) throw () __attribute__ ((__nonnull__ (1)));
8650
8651
8652 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
8653 throw () __attribute__ ((__nonnull__ (1)));
8654
8655
8656 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
8657 throw () __attribute__ ((__nonnull__ (1)));
8658
8659
8660 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
8661 throw () __attribute__ ((__nonnull__ (1)));
8662
8663
8664
8665 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
8666 __const struct timespec *__restrict
8667 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
8668
8669
8670
8671 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
8672 throw () __attribute__ ((__nonnull__ (1)));
8673
8674
8675 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
8676 throw () __attribute__ ((__nonnull__ (1)));
8677
8678
8679
8680 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
8681 __const struct timespec *__restrict
8682 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
8683
8684
8685
8686 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
8687 throw () __attribute__ ((__nonnull__ (1)));
8688
8689
8690
8691
8692
8693 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
8694 throw () __attribute__ ((__nonnull__ (1)));
8695
8696
8697 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
8698 throw () __attribute__ ((__nonnull__ (1)));
8699
8700
8701 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
8702 __restrict __attr,
8703 int *__restrict __pshared)
8704 throw () __attribute__ ((__nonnull__ (1, 2)));
8705
8706
8707 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
8708 int __pshared)
8709 throw () __attribute__ ((__nonnull__ (1)));
8710
8711
8712 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
8713 __restrict __attr,
8714 int *__restrict __pref)
8715 throw () __attribute__ ((__nonnull__ (1, 2)));
8716
8717
8718 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
8719 int __pref) throw () __attribute__ ((__nonnull__ (1)));
8720
8721
8722
8723
8724
8725
8726
8727 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
8728 __const pthread_condattr_t *__restrict
8729 __cond_attr) throw () __attribute__ ((__nonnull__ (1)));
8730
8731
8732 extern int pthread_cond_destroy (pthread_cond_t *__cond)
8733 throw () __attribute__ ((__nonnull__ (1)));
8734
8735
8736 extern int pthread_cond_signal (pthread_cond_t *__cond)
8737 throw () __attribute__ ((__nonnull__ (1)));
8738
8739
8740 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
8741 throw () __attribute__ ((__nonnull__ (1)));
8742
8743
8744
8745
8746
8747
8748 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
8749 pthread_mutex_t *__restrict __mutex)
8750 __attribute__ ((__nonnull__ (1, 2)));
8751 # 958 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8752 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
8753 pthread_mutex_t *__restrict __mutex,
8754 __const struct timespec *__restrict
8755 __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
8756
8757
8758
8759
8760 extern int pthread_condattr_init (pthread_condattr_t *__attr)
8761 throw () __attribute__ ((__nonnull__ (1)));
8762
8763
8764 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
8765 throw () __attribute__ ((__nonnull__ (1)));
8766
8767
8768 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
8769 __restrict __attr,
8770 int *__restrict __pshared)
8771 throw () __attribute__ ((__nonnull__ (1, 2)));
8772
8773
8774 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
8775 int __pshared) throw () __attribute__ ((__nonnull__ (1)));
8776
8777
8778
8779 extern int pthread_condattr_getclock (__const pthread_condattr_t *
8780 __restrict __attr,
8781 __clockid_t *__restrict __clock_id)
8782 throw () __attribute__ ((__nonnull__ (1, 2)));
8783
8784
8785 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
8786 __clockid_t __clock_id)
8787 throw () __attribute__ ((__nonnull__ (1)));
8788 # 1002 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8789 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
8790 throw () __attribute__ ((__nonnull__ (1)));
8791
8792
8793 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
8794 throw () __attribute__ ((__nonnull__ (1)));
8795
8796
8797 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
8798 throw () __attribute__ ((__nonnull__ (1)));
8799
8800
8801 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
8802 throw () __attribute__ ((__nonnull__ (1)));
8803
8804
8805 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
8806 throw () __attribute__ ((__nonnull__ (1)));
8807
8808
8809
8810
8811
8812
8813 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
8814 __const pthread_barrierattr_t *__restrict
8815 __attr, unsigned int __count)
8816 throw () __attribute__ ((__nonnull__ (1)));
8817
8818
8819 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
8820 throw () __attribute__ ((__nonnull__ (1)));
8821
8822
8823 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
8824 throw () __attribute__ ((__nonnull__ (1)));
8825
8826
8827
8828 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
8829 throw () __attribute__ ((__nonnull__ (1)));
8830
8831
8832 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
8833 throw () __attribute__ ((__nonnull__ (1)));
8834
8835
8836 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
8837 __restrict __attr,
8838 int *__restrict __pshared)
8839 throw () __attribute__ ((__nonnull__ (1, 2)));
8840
8841
8842 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
8843 int __pshared)
8844 throw () __attribute__ ((__nonnull__ (1)));
8845 # 1069 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8846 extern int pthread_key_create (pthread_key_t *__key,
8847 void (*__destr_function) (void *))
8848 throw () __attribute__ ((__nonnull__ (1)));
8849
8850
8851 extern int pthread_key_delete (pthread_key_t __key) throw ();
8852
8853
8854 extern void *pthread_getspecific (pthread_key_t __key) throw ();
8855
8856
8857 extern int pthread_setspecific (pthread_key_t __key,
8858 __const void *__pointer) throw () ;
8859
8860
8861
8862
8863 extern int pthread_getcpuclockid (pthread_t __thread_id,
8864 __clockid_t *__clock_id)
8865 throw () __attribute__ ((__nonnull__ (2)));
8866 # 1103 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8867 extern int pthread_atfork (void (*__prepare) (void),
8868 void (*__parent) (void),
8869 void (*__child) (void)) throw ();
8870 # 1117 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8871 }
8872 # 9 "/usr/include/pthread.h" 2 3 4
8873 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3
8874 # 1 "/usr/include/unistd.h" 1 3 4
8875
8876
8877
8878
8879
8880
8881
8882 # 1 "/usr/include/gentoo-multilib/amd64/unistd.h" 1 3 4
8883 # 24 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
8884 #define _UNISTD_H 1
8885
8886 # 1 "/usr/include/features.h" 1 3 4
8887 # 27 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
8888
8889 extern "C" {
8890
8891
8892
8893
8894
8895 #define _POSIX_VERSION 200112L
8896
8897
8898
8899
8900
8901 #define _POSIX2_VERSION 200112L
8902
8903
8904
8905 #define _POSIX2_C_BIND 200112L
8906
8907
8908
8909 #define _POSIX2_C_DEV 200112L
8910
8911
8912
8913 #define _POSIX2_SW_DEV 200112L
8914
8915
8916
8917 #define _POSIX2_LOCALEDEF 200112L
8918
8919
8920
8921 #define _XOPEN_VERSION 600
8922
8923
8924
8925
8926
8927
8928
8929 #define _XOPEN_XCU_VERSION 4
8930
8931
8932 #define _XOPEN_XPG2 1
8933 #define _XOPEN_XPG3 1
8934 #define _XOPEN_XPG4 1
8935
8936
8937 #define _XOPEN_UNIX 1
8938
8939
8940 #define _XOPEN_CRYPT 1
8941
8942
8943
8944 #define _XOPEN_ENH_I18N 1
8945
8946
8947 #define _XOPEN_LEGACY 1
8948 # 173 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
8949 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
8950
8951
8952
8953
8954
8955
8956
8957 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix_opt.h" 1 3 4
8958 # 21 "/usr/include/gentoo-multilib/amd64/bits/posix_opt.h" 3 4
8959 #define _POSIX_OPT_H 1
8960
8961
8962 #define _POSIX_JOB_CONTROL 1
8963
8964
8965 #define _POSIX_SAVED_IDS 1
8966
8967
8968 #define _POSIX_PRIORITY_SCHEDULING 200112L
8969
8970
8971 #define _POSIX_SYNCHRONIZED_IO 200112L
8972
8973
8974 #define _POSIX_FSYNC 200112L
8975
8976
8977 #define _POSIX_MAPPED_FILES 200112L
8978
8979
8980 #define _POSIX_MEMLOCK 200112L
8981
8982
8983 #define _POSIX_MEMLOCK_RANGE 200112L
8984
8985
8986 #define _POSIX_MEMORY_PROTECTION 200112L
8987
8988
8989 #define _POSIX_CHOWN_RESTRICTED 1
8990
8991
8992
8993 #define _POSIX_VDISABLE '\0'
8994
8995
8996 #define _POSIX_NO_TRUNC 1
8997
8998
8999 #define _XOPEN_REALTIME 1
9000
9001
9002 #define _XOPEN_REALTIME_THREADS 1
9003
9004
9005 #define _XOPEN_SHM 1
9006
9007
9008 #define _POSIX_THREADS 200112L
9009
9010
9011 #define _POSIX_REENTRANT_FUNCTIONS 1
9012 #define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
9013
9014
9015 #define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
9016
9017
9018 #define _POSIX_THREAD_ATTR_STACKSIZE 200112L
9019
9020
9021 #define _POSIX_THREAD_ATTR_STACKADDR 200112L
9022
9023
9024 #define _POSIX_THREAD_PRIO_INHERIT 200112L
9025
9026
9027
9028 #define _POSIX_THREAD_PRIO_PROTECT 200112L
9029
9030
9031 #define _POSIX_SEMAPHORES 200112L
9032
9033
9034 #define _POSIX_REALTIME_SIGNALS 200112L
9035
9036
9037 #define _POSIX_ASYNCHRONOUS_IO 200112L
9038 #define _POSIX_ASYNC_IO 1
9039
9040 #define _LFS_ASYNCHRONOUS_IO 1
9041
9042 #define _POSIX_PRIORITIZED_IO 200112L
9043
9044
9045 #define _LFS64_ASYNCHRONOUS_IO 1
9046
9047
9048 #define _LFS_LARGEFILE 1
9049 #define _LFS64_LARGEFILE 1
9050 #define _LFS64_STDIO 1
9051
9052
9053 #define _POSIX_SHARED_MEMORY_OBJECTS 200112L
9054
9055
9056 #define _POSIX_CPUTIME 0
9057
9058
9059 #define _POSIX_THREAD_CPUTIME 0
9060
9061
9062 #define _POSIX_REGEXP 1
9063
9064
9065 #define _POSIX_READER_WRITER_LOCKS 200112L
9066
9067
9068 #define _POSIX_SHELL 1
9069
9070
9071 #define _POSIX_TIMEOUTS 200112L
9072
9073
9074 #define _POSIX_SPIN_LOCKS 200112L
9075
9076
9077 #define _POSIX_SPAWN 200112L
9078
9079
9080 #define _POSIX_TIMERS 200112L
9081
9082
9083 #define _POSIX_BARRIERS 200112L
9084
9085
9086 #define _POSIX_MESSAGE_PASSING 200112L
9087
9088
9089 #define _POSIX_THREAD_PROCESS_SHARED 200112L
9090
9091
9092 #define _POSIX_MONOTONIC_CLOCK 0
9093
9094
9095 #define _POSIX_CLOCK_SELECTION 200112L
9096
9097
9098 #define _POSIX_ADVISORY_INFO 200112L
9099
9100
9101 #define _POSIX_IPV6 200112L
9102
9103
9104 #define _POSIX_RAW_SOCKETS 200112L
9105
9106
9107 #define _POSIX2_CHAR_TERM 200112L
9108
9109
9110 #define _POSIX_SPORADIC_SERVER -1
9111 #define _POSIX_THREAD_SPORADIC_SERVER -1
9112
9113
9114 #define _POSIX_TRACE -1
9115 #define _POSIX_TRACE_EVENT_FILTER -1
9116 #define _POSIX_TRACE_INHERIT -1
9117 #define _POSIX_TRACE_LOG -1
9118
9119
9120 #define _POSIX_TYPED_MEMORY_OBJECTS -1
9121 # 9 "/usr/include/bits/posix_opt.h" 2 3 4
9122 # 174 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9123
9124
9125
9126 # 1 "/usr/include/bits/environments.h" 1 3 4
9127
9128
9129
9130
9131
9132
9133
9134 # 1 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 1 3 4
9135 # 23 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
9136 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9137
9138
9139
9140
9141
9142
9143
9144 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
9145
9146
9147
9148 #define __WORDSIZE 64
9149 #define __WORDSIZE_COMPAT32 1
9150 # 9 "/usr/include/bits/wordsize.h" 2 3 4
9151 # 24 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 2 3 4
9152 # 53 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
9153 #define _POSIX_V6_LPBIG_OFFBIG -1
9154 #define _XBS5_LPBIG_OFFBIG -1
9155
9156
9157 #define _POSIX_V6_LP64_OFF64 1
9158 #define _XBS5_LP64_OFF64 1
9159 # 82 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
9160 #define __ILP32_OFF32_CFLAGS "-m32"
9161 #define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
9162 #define __ILP32_OFF32_LDFLAGS "-m32"
9163 #define __ILP32_OFFBIG_LDFLAGS "-m32"
9164 #define __LP64_OFF64_CFLAGS "-m64"
9165 #define __LP64_OFF64_LDFLAGS "-m64"
9166 # 9 "/usr/include/bits/environments.h" 2 3 4
9167 # 178 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9168
9169
9170
9171 #define STDIN_FILENO 0
9172 #define STDOUT_FILENO 1
9173 #define STDERR_FILENO 2
9174
9175
9176
9177
9178 # 1 "/usr/include/bits/types.h" 1 3 4
9179 # 189 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9180
9181
9182
9183
9184
9185
9186 #define __need_size_t
9187 #define __need_NULL
9188 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
9189 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9190 #undef __need_ptrdiff_t
9191 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9192 #undef __need_size_t
9193 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9194 #undef __need_wchar_t
9195 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9196 #undef NULL
9197
9198 #define NULL __null
9199 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9200 #undef __need_NULL
9201
9202
9203
9204
9205 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
9206 # 198 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9207 # 238 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9208 typedef __intptr_t intptr_t;
9209 #define __intptr_t_defined
9210
9211
9212
9213
9214
9215 typedef __socklen_t socklen_t;
9216 #define __socklen_t_defined
9217
9218
9219
9220
9221
9222 #define R_OK 4
9223 #define W_OK 2
9224 #define X_OK 1
9225 #define F_OK 0
9226
9227
9228 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
9229
9230
9231
9232
9233 extern int euidaccess (__const char *__name, int __type)
9234 throw () __attribute__ ((__nonnull__ (1)));
9235
9236
9237 extern int eaccess (__const char *__name, int __type)
9238 throw () __attribute__ ((__nonnull__ (1)));
9239
9240
9241
9242
9243
9244
9245 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
9246 throw () __attribute__ ((__nonnull__ (2))) ;
9247 # 289 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9248 #define L_SET SEEK_SET
9249 #define L_INCR SEEK_CUR
9250 #define L_XTND SEEK_END
9251 # 301 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9252 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
9253 # 312 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9254 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
9255 throw ();
9256
9257
9258
9259
9260
9261
9262 extern int close (int __fd);
9263
9264
9265
9266
9267
9268
9269 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
9270
9271
9272
9273
9274
9275 extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
9276 # 343 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9277 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
9278 __off_t __offset) ;
9279
9280
9281
9282
9283
9284
9285 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
9286 __off_t __offset) ;
9287 # 371 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9288 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
9289 __off64_t __offset) ;
9290
9291
9292 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
9293 __off64_t __offset) ;
9294
9295
9296
9297
9298
9299
9300
9301 extern int pipe (int __pipedes[2]) throw () ;
9302 # 393 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9303 extern unsigned int alarm (unsigned int __seconds) throw ();
9304 # 405 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9305 extern unsigned int sleep (unsigned int __seconds);
9306
9307
9308
9309
9310
9311
9312 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
9313 throw ();
9314
9315
9316
9317
9318
9319
9320 extern int usleep (__useconds_t __useconds);
9321 # 429 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9322 extern int pause (void);
9323
9324
9325
9326 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
9327 throw () __attribute__ ((__nonnull__ (1))) ;
9328
9329
9330
9331 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
9332
9333
9334
9335
9336 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
9337 throw () __attribute__ ((__nonnull__ (1))) ;
9338
9339
9340
9341
9342
9343
9344 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
9345 __gid_t __group, int __flag)
9346 throw () __attribute__ ((__nonnull__ (2))) ;
9347
9348
9349
9350 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
9351
9352
9353
9354 extern int fchdir (int __fd) throw () ;
9355 # 471 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9356 extern char *getcwd (char *__buf, size_t __size) throw () ;
9357
9358
9359
9360
9361
9362 extern char *get_current_dir_name (void) throw ();
9363
9364
9365
9366
9367
9368
9369 extern char *getwd (char *__buf)
9370 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
9371
9372
9373
9374
9375 extern int dup (int __fd) throw () ;
9376
9377
9378 extern int dup2 (int __fd, int __fd2) throw ();
9379
9380
9381 extern char **__environ;
9382
9383 extern char **environ;
9384
9385
9386
9387
9388
9389 extern int execve (__const char *__path, char *__const __argv[],
9390 char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
9391
9392
9393
9394
9395 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
9396 throw ();
9397
9398
9399
9400
9401 extern int execv (__const char *__path, char *__const __argv[])
9402 throw () __attribute__ ((__nonnull__ (1)));
9403
9404
9405
9406 extern int execle (__const char *__path, __const char *__arg, ...)
9407 throw () __attribute__ ((__nonnull__ (1)));
9408
9409
9410
9411 extern int execl (__const char *__path, __const char *__arg, ...)
9412 throw () __attribute__ ((__nonnull__ (1)));
9413
9414
9415
9416 extern int execvp (__const char *__file, char *__const __argv[])
9417 throw () __attribute__ ((__nonnull__ (1)));
9418
9419
9420
9421
9422 extern int execlp (__const char *__file, __const char *__arg, ...)
9423 throw () __attribute__ ((__nonnull__ (1)));
9424
9425
9426
9427
9428 extern int nice (int __inc) throw () ;
9429
9430
9431
9432
9433 extern void _exit (int __status) __attribute__ ((__noreturn__));
9434
9435
9436
9437
9438
9439 # 1 "/usr/include/bits/confname.h" 1 3 4
9440
9441
9442
9443
9444
9445
9446
9447 # 1 "/usr/include/gentoo-multilib/amd64/bits/confname.h" 1 3 4
9448 # 26 "/usr/include/gentoo-multilib/amd64/bits/confname.h" 3 4
9449 enum
9450 {
9451 _PC_LINK_MAX,
9452 #define _PC_LINK_MAX _PC_LINK_MAX
9453 _PC_MAX_CANON,
9454 #define _PC_MAX_CANON _PC_MAX_CANON
9455 _PC_MAX_INPUT,
9456 #define _PC_MAX_INPUT _PC_MAX_INPUT
9457 _PC_NAME_MAX,
9458 #define _PC_NAME_MAX _PC_NAME_MAX
9459 _PC_PATH_MAX,
9460 #define _PC_PATH_MAX _PC_PATH_MAX
9461 _PC_PIPE_BUF,
9462 #define _PC_PIPE_BUF _PC_PIPE_BUF
9463 _PC_CHOWN_RESTRICTED,
9464 #define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
9465 _PC_NO_TRUNC,
9466 #define _PC_NO_TRUNC _PC_NO_TRUNC
9467 _PC_VDISABLE,
9468 #define _PC_VDISABLE _PC_VDISABLE
9469 _PC_SYNC_IO,
9470 #define _PC_SYNC_IO _PC_SYNC_IO
9471 _PC_ASYNC_IO,
9472 #define _PC_ASYNC_IO _PC_ASYNC_IO
9473 _PC_PRIO_IO,
9474 #define _PC_PRIO_IO _PC_PRIO_IO
9475 _PC_SOCK_MAXBUF,
9476 #define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
9477 _PC_FILESIZEBITS,
9478 #define _PC_FILESIZEBITS _PC_FILESIZEBITS
9479 _PC_REC_INCR_XFER_SIZE,
9480 #define _PC_REC_INCR_XFER_SIZE _PC_REC_INCR_XFER_SIZE
9481 _PC_REC_MAX_XFER_SIZE,
9482 #define _PC_REC_MAX_XFER_SIZE _PC_REC_MAX_XFER_SIZE
9483 _PC_REC_MIN_XFER_SIZE,
9484 #define _PC_REC_MIN_XFER_SIZE _PC_REC_MIN_XFER_SIZE
9485 _PC_REC_XFER_ALIGN,
9486 #define _PC_REC_XFER_ALIGN _PC_REC_XFER_ALIGN
9487 _PC_ALLOC_SIZE_MIN,
9488 #define _PC_ALLOC_SIZE_MIN _PC_ALLOC_SIZE_MIN
9489 _PC_SYMLINK_MAX,
9490 #define _PC_SYMLINK_MAX _PC_SYMLINK_MAX
9491 _PC_2_SYMLINKS
9492 #define _PC_2_SYMLINKS _PC_2_SYMLINKS
9493 };
9494
9495
9496 enum
9497 {
9498 _SC_ARG_MAX,
9499 #define _SC_ARG_MAX _SC_ARG_MAX
9500 _SC_CHILD_MAX,
9501 #define _SC_CHILD_MAX _SC_CHILD_MAX
9502 _SC_CLK_TCK,
9503 #define _SC_CLK_TCK _SC_CLK_TCK
9504 _SC_NGROUPS_MAX,
9505 #define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
9506 _SC_OPEN_MAX,
9507 #define _SC_OPEN_MAX _SC_OPEN_MAX
9508 _SC_STREAM_MAX,
9509 #define _SC_STREAM_MAX _SC_STREAM_MAX
9510 _SC_TZNAME_MAX,
9511 #define _SC_TZNAME_MAX _SC_TZNAME_MAX
9512 _SC_JOB_CONTROL,
9513 #define _SC_JOB_CONTROL _SC_JOB_CONTROL
9514 _SC_SAVED_IDS,
9515 #define _SC_SAVED_IDS _SC_SAVED_IDS
9516 _SC_REALTIME_SIGNALS,
9517 #define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
9518 _SC_PRIORITY_SCHEDULING,
9519 #define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
9520 _SC_TIMERS,
9521 #define _SC_TIMERS _SC_TIMERS
9522 _SC_ASYNCHRONOUS_IO,
9523 #define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
9524 _SC_PRIORITIZED_IO,
9525 #define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
9526 _SC_SYNCHRONIZED_IO,
9527 #define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
9528 _SC_FSYNC,
9529 #define _SC_FSYNC _SC_FSYNC
9530 _SC_MAPPED_FILES,
9531 #define _SC_MAPPED_FILES _SC_MAPPED_FILES
9532 _SC_MEMLOCK,
9533 #define _SC_MEMLOCK _SC_MEMLOCK
9534 _SC_MEMLOCK_RANGE,
9535 #define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
9536 _SC_MEMORY_PROTECTION,
9537 #define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
9538 _SC_MESSAGE_PASSING,
9539 #define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
9540 _SC_SEMAPHORES,
9541 #define _SC_SEMAPHORES _SC_SEMAPHORES
9542 _SC_SHARED_MEMORY_OBJECTS,
9543 #define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
9544 _SC_AIO_LISTIO_MAX,
9545 #define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX
9546 _SC_AIO_MAX,
9547 #define _SC_AIO_MAX _SC_AIO_MAX
9548 _SC_AIO_PRIO_DELTA_MAX,
9549 #define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
9550 _SC_DELAYTIMER_MAX,
9551 #define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
9552 _SC_MQ_OPEN_MAX,
9553 #define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
9554 _SC_MQ_PRIO_MAX,
9555 #define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
9556 _SC_VERSION,
9557 #define _SC_VERSION _SC_VERSION
9558 _SC_PAGESIZE,
9559 #define _SC_PAGESIZE _SC_PAGESIZE
9560 #define _SC_PAGE_SIZE _SC_PAGESIZE
9561 _SC_RTSIG_MAX,
9562 #define _SC_RTSIG_MAX _SC_RTSIG_MAX
9563 _SC_SEM_NSEMS_MAX,
9564 #define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
9565 _SC_SEM_VALUE_MAX,
9566 #define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
9567 _SC_SIGQUEUE_MAX,
9568 #define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
9569 _SC_TIMER_MAX,
9570 #define _SC_TIMER_MAX _SC_TIMER_MAX
9571
9572
9573
9574 _SC_BC_BASE_MAX,
9575 #define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
9576 _SC_BC_DIM_MAX,
9577 #define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
9578 _SC_BC_SCALE_MAX,
9579 #define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
9580 _SC_BC_STRING_MAX,
9581 #define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
9582 _SC_COLL_WEIGHTS_MAX,
9583 #define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
9584 _SC_EQUIV_CLASS_MAX,
9585 #define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
9586 _SC_EXPR_NEST_MAX,
9587 #define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
9588 _SC_LINE_MAX,
9589 #define _SC_LINE_MAX _SC_LINE_MAX
9590 _SC_RE_DUP_MAX,
9591 #define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
9592 _SC_CHARCLASS_NAME_MAX,
9593 #define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
9594
9595 _SC_2_VERSION,
9596 #define _SC_2_VERSION _SC_2_VERSION
9597 _SC_2_C_BIND,
9598 #define _SC_2_C_BIND _SC_2_C_BIND
9599 _SC_2_C_DEV,
9600 #define _SC_2_C_DEV _SC_2_C_DEV
9601 _SC_2_FORT_DEV,
9602 #define _SC_2_FORT_DEV _SC_2_FORT_DEV
9603 _SC_2_FORT_RUN,
9604 #define _SC_2_FORT_RUN _SC_2_FORT_RUN
9605 _SC_2_SW_DEV,
9606 #define _SC_2_SW_DEV _SC_2_SW_DEV
9607 _SC_2_LOCALEDEF,
9608 #define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
9609
9610 _SC_PII,
9611 #define _SC_PII _SC_PII
9612 _SC_PII_XTI,
9613 #define _SC_PII_XTI _SC_PII_XTI
9614 _SC_PII_SOCKET,
9615 #define _SC_PII_SOCKET _SC_PII_SOCKET
9616 _SC_PII_INTERNET,
9617 #define _SC_PII_INTERNET _SC_PII_INTERNET
9618 _SC_PII_OSI,
9619 #define _SC_PII_OSI _SC_PII_OSI
9620 _SC_POLL,
9621 #define _SC_POLL _SC_POLL
9622 _SC_SELECT,
9623 #define _SC_SELECT _SC_SELECT
9624 _SC_UIO_MAXIOV,
9625 #define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
9626 _SC_IOV_MAX = _SC_UIO_MAXIOV,
9627 #define _SC_IOV_MAX _SC_IOV_MAX
9628 _SC_PII_INTERNET_STREAM,
9629 #define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
9630 _SC_PII_INTERNET_DGRAM,
9631 #define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
9632 _SC_PII_OSI_COTS,
9633 #define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
9634 _SC_PII_OSI_CLTS,
9635 #define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
9636 _SC_PII_OSI_M,
9637 #define _SC_PII_OSI_M _SC_PII_OSI_M
9638 _SC_T_IOV_MAX,
9639 #define _SC_T_IOV_MAX _SC_T_IOV_MAX
9640
9641
9642 _SC_THREADS,
9643 #define _SC_THREADS _SC_THREADS
9644 _SC_THREAD_SAFE_FUNCTIONS,
9645 #define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
9646 _SC_GETGR_R_SIZE_MAX,
9647 #define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX
9648 _SC_GETPW_R_SIZE_MAX,
9649 #define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX
9650 _SC_LOGIN_NAME_MAX,
9651 #define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX
9652 _SC_TTY_NAME_MAX,
9653 #define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX
9654 _SC_THREAD_DESTRUCTOR_ITERATIONS,
9655 #define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
9656 _SC_THREAD_KEYS_MAX,
9657 #define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX
9658 _SC_THREAD_STACK_MIN,
9659 #define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN
9660 _SC_THREAD_THREADS_MAX,
9661 #define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX
9662 _SC_THREAD_ATTR_STACKADDR,
9663 #define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR
9664 _SC_THREAD_ATTR_STACKSIZE,
9665 #define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE
9666 _SC_THREAD_PRIORITY_SCHEDULING,
9667 #define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING
9668 _SC_THREAD_PRIO_INHERIT,
9669 #define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT
9670 _SC_THREAD_PRIO_PROTECT,
9671 #define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT
9672 _SC_THREAD_PROCESS_SHARED,
9673 #define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED
9674
9675 _SC_NPROCESSORS_CONF,
9676 #define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF
9677 _SC_NPROCESSORS_ONLN,
9678 #define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN
9679 _SC_PHYS_PAGES,
9680 #define _SC_PHYS_PAGES _SC_PHYS_PAGES
9681 _SC_AVPHYS_PAGES,
9682 #define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES
9683 _SC_ATEXIT_MAX,
9684 #define _SC_ATEXIT_MAX _SC_ATEXIT_MAX
9685 _SC_PASS_MAX,
9686 #define _SC_PASS_MAX _SC_PASS_MAX
9687
9688 _SC_XOPEN_VERSION,
9689 #define _SC_XOPEN_VERSION _SC_XOPEN_VERSION
9690 _SC_XOPEN_XCU_VERSION,
9691 #define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION
9692 _SC_XOPEN_UNIX,
9693 #define _SC_XOPEN_UNIX _SC_XOPEN_UNIX
9694 _SC_XOPEN_CRYPT,
9695 #define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT
9696 _SC_XOPEN_ENH_I18N,
9697 #define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N
9698 _SC_XOPEN_SHM,
9699 #define _SC_XOPEN_SHM _SC_XOPEN_SHM
9700
9701 _SC_2_CHAR_TERM,
9702 #define _SC_2_CHAR_TERM _SC_2_CHAR_TERM
9703 _SC_2_C_VERSION,
9704 #define _SC_2_C_VERSION _SC_2_C_VERSION
9705 _SC_2_UPE,
9706 #define _SC_2_UPE _SC_2_UPE
9707
9708 _SC_XOPEN_XPG2,
9709 #define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2
9710 _SC_XOPEN_XPG3,
9711 #define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3
9712 _SC_XOPEN_XPG4,
9713 #define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4
9714
9715 _SC_CHAR_BIT,
9716 #define _SC_CHAR_BIT _SC_CHAR_BIT
9717 _SC_CHAR_MAX,
9718 #define _SC_CHAR_MAX _SC_CHAR_MAX
9719 _SC_CHAR_MIN,
9720 #define _SC_CHAR_MIN _SC_CHAR_MIN
9721 _SC_INT_MAX,
9722 #define _SC_INT_MAX _SC_INT_MAX
9723 _SC_INT_MIN,
9724 #define _SC_INT_MIN _SC_INT_MIN
9725 _SC_LONG_BIT,
9726 #define _SC_LONG_BIT _SC_LONG_BIT
9727 _SC_WORD_BIT,
9728 #define _SC_WORD_BIT _SC_WORD_BIT
9729 _SC_MB_LEN_MAX,
9730 #define _SC_MB_LEN_MAX _SC_MB_LEN_MAX
9731 _SC_NZERO,
9732 #define _SC_NZERO _SC_NZERO
9733 _SC_SSIZE_MAX,
9734 #define _SC_SSIZE_MAX _SC_SSIZE_MAX
9735 _SC_SCHAR_MAX,
9736 #define _SC_SCHAR_MAX _SC_SCHAR_MAX
9737 _SC_SCHAR_MIN,
9738 #define _SC_SCHAR_MIN _SC_SCHAR_MIN
9739 _SC_SHRT_MAX,
9740 #define _SC_SHRT_MAX _SC_SHRT_MAX
9741 _SC_SHRT_MIN,
9742 #define _SC_SHRT_MIN _SC_SHRT_MIN
9743 _SC_UCHAR_MAX,
9744 #define _SC_UCHAR_MAX _SC_UCHAR_MAX
9745 _SC_UINT_MAX,
9746 #define _SC_UINT_MAX _SC_UINT_MAX
9747 _SC_ULONG_MAX,
9748 #define _SC_ULONG_MAX _SC_ULONG_MAX
9749 _SC_USHRT_MAX,
9750 #define _SC_USHRT_MAX _SC_USHRT_MAX
9751
9752 _SC_NL_ARGMAX,
9753 #define _SC_NL_ARGMAX _SC_NL_ARGMAX
9754 _SC_NL_LANGMAX,
9755 #define _SC_NL_LANGMAX _SC_NL_LANGMAX
9756 _SC_NL_MSGMAX,
9757 #define _SC_NL_MSGMAX _SC_NL_MSGMAX
9758 _SC_NL_NMAX,
9759 #define _SC_NL_NMAX _SC_NL_NMAX
9760 _SC_NL_SETMAX,
9761 #define _SC_NL_SETMAX _SC_NL_SETMAX
9762 _SC_NL_TEXTMAX,
9763 #define _SC_NL_TEXTMAX _SC_NL_TEXTMAX
9764
9765 _SC_XBS5_ILP32_OFF32,
9766 #define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32
9767 _SC_XBS5_ILP32_OFFBIG,
9768 #define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG
9769 _SC_XBS5_LP64_OFF64,
9770 #define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64
9771 _SC_XBS5_LPBIG_OFFBIG,
9772 #define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG
9773
9774 _SC_XOPEN_LEGACY,
9775 #define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY
9776 _SC_XOPEN_REALTIME,
9777 #define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME
9778 _SC_XOPEN_REALTIME_THREADS,
9779 #define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS
9780
9781 _SC_ADVISORY_INFO,
9782 #define _SC_ADVISORY_INFO _SC_ADVISORY_INFO
9783 _SC_BARRIERS,
9784 #define _SC_BARRIERS _SC_BARRIERS
9785 _SC_BASE,
9786 #define _SC_BASE _SC_BASE
9787 _SC_C_LANG_SUPPORT,
9788 #define _SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT
9789 _SC_C_LANG_SUPPORT_R,
9790 #define _SC_C_LANG_SUPPORT_R _SC_C_LANG_SUPPORT_R
9791 _SC_CLOCK_SELECTION,
9792 #define _SC_CLOCK_SELECTION _SC_CLOCK_SELECTION
9793 _SC_CPUTIME,
9794 #define _SC_CPUTIME _SC_CPUTIME
9795 _SC_THREAD_CPUTIME,
9796 #define _SC_THREAD_CPUTIME _SC_THREAD_CPUTIME
9797 _SC_DEVICE_IO,
9798 #define _SC_DEVICE_IO _SC_DEVICE_IO
9799 _SC_DEVICE_SPECIFIC,
9800 #define _SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC
9801 _SC_DEVICE_SPECIFIC_R,
9802 #define _SC_DEVICE_SPECIFIC_R _SC_DEVICE_SPECIFIC_R
9803 _SC_FD_MGMT,
9804 #define _SC_FD_MGMT _SC_FD_MGMT
9805 _SC_FIFO,
9806 #define _SC_FIFO _SC_FIFO
9807 _SC_PIPE,
9808 #define _SC_PIPE _SC_PIPE
9809 _SC_FILE_ATTRIBUTES,
9810 #define _SC_FILE_ATTRIBUTES _SC_FILE_ATTRIBUTES
9811 _SC_FILE_LOCKING,
9812 #define _SC_FILE_LOCKING _SC_FILE_LOCKING
9813 _SC_FILE_SYSTEM,
9814 #define _SC_FILE_SYSTEM _SC_FILE_SYSTEM
9815 _SC_MONOTONIC_CLOCK,
9816 #define _SC_MONOTONIC_CLOCK _SC_MONOTONIC_CLOCK
9817 _SC_MULTI_PROCESS,
9818 #define _SC_MULTI_PROCESS _SC_MULTI_PROCESS
9819 _SC_SINGLE_PROCESS,
9820 #define _SC_SINGLE_PROCESS _SC_SINGLE_PROCESS
9821 _SC_NETWORKING,
9822 #define _SC_NETWORKING _SC_NETWORKING
9823 _SC_READER_WRITER_LOCKS,
9824 #define _SC_READER_WRITER_LOCKS _SC_READER_WRITER_LOCKS
9825 _SC_SPIN_LOCKS,
9826 #define _SC_SPIN_LOCKS _SC_SPIN_LOCKS
9827 _SC_REGEXP,
9828 #define _SC_REGEXP _SC_REGEXP
9829 _SC_REGEX_VERSION,
9830 #define _SC_REGEX_VERSION _SC_REGEX_VERSION
9831 _SC_SHELL,
9832 #define _SC_SHELL _SC_SHELL
9833 _SC_SIGNALS,
9834 #define _SC_SIGNALS _SC_SIGNALS
9835 _SC_SPAWN,
9836 #define _SC_SPAWN _SC_SPAWN
9837 _SC_SPORADIC_SERVER,
9838 #define _SC_SPORADIC_SERVER _SC_SPORADIC_SERVER
9839 _SC_THREAD_SPORADIC_SERVER,
9840 #define _SC_THREAD_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER
9841 _SC_SYSTEM_DATABASE,
9842 #define _SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE
9843 _SC_SYSTEM_DATABASE_R,
9844 #define _SC_SYSTEM_DATABASE_R _SC_SYSTEM_DATABASE_R
9845 _SC_TIMEOUTS,
9846 #define _SC_TIMEOUTS _SC_TIMEOUTS
9847 _SC_TYPED_MEMORY_OBJECTS,
9848 #define _SC_TYPED_MEMORY_OBJECTS _SC_TYPED_MEMORY_OBJECTS
9849 _SC_USER_GROUPS,
9850 #define _SC_USER_GROUPS _SC_USER_GROUPS
9851 _SC_USER_GROUPS_R,
9852 #define _SC_USER_GROUPS_R _SC_USER_GROUPS_R
9853 _SC_2_PBS,
9854 #define _SC_2_PBS _SC_2_PBS
9855 _SC_2_PBS_ACCOUNTING,
9856 #define _SC_2_PBS_ACCOUNTING _SC_2_PBS_ACCOUNTING
9857 _SC_2_PBS_LOCATE,
9858 #define _SC_2_PBS_LOCATE _SC_2_PBS_LOCATE
9859 _SC_2_PBS_MESSAGE,
9860 #define _SC_2_PBS_MESSAGE _SC_2_PBS_MESSAGE
9861 _SC_2_PBS_TRACK,
9862 #define _SC_2_PBS_TRACK _SC_2_PBS_TRACK
9863 _SC_SYMLOOP_MAX,
9864 #define _SC_SYMLOOP_MAX _SC_SYMLOOP_MAX
9865 _SC_STREAMS,
9866 #define _SC_STREAMS _SC_STREAMS
9867 _SC_2_PBS_CHECKPOINT,
9868 #define _SC_2_PBS_CHECKPOINT _SC_2_PBS_CHECKPOINT
9869
9870 _SC_V6_ILP32_OFF32,
9871 #define _SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFF32
9872 _SC_V6_ILP32_OFFBIG,
9873 #define _SC_V6_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG
9874 _SC_V6_LP64_OFF64,
9875 #define _SC_V6_LP64_OFF64 _SC_V6_LP64_OFF64
9876 _SC_V6_LPBIG_OFFBIG,
9877 #define _SC_V6_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG
9878
9879 _SC_HOST_NAME_MAX,
9880 #define _SC_HOST_NAME_MAX _SC_HOST_NAME_MAX
9881 _SC_TRACE,
9882 #define _SC_TRACE _SC_TRACE
9883 _SC_TRACE_EVENT_FILTER,
9884 #define _SC_TRACE_EVENT_FILTER _SC_TRACE_EVENT_FILTER
9885 _SC_TRACE_INHERIT,
9886 #define _SC_TRACE_INHERIT _SC_TRACE_INHERIT
9887 _SC_TRACE_LOG,
9888 #define _SC_TRACE_LOG _SC_TRACE_LOG
9889
9890 _SC_LEVEL1_ICACHE_SIZE,
9891 #define _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_SIZE
9892 _SC_LEVEL1_ICACHE_ASSOC,
9893 #define _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_ASSOC
9894 _SC_LEVEL1_ICACHE_LINESIZE,
9895 #define _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_ICACHE_LINESIZE
9896 _SC_LEVEL1_DCACHE_SIZE,
9897 #define _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_SIZE
9898 _SC_LEVEL1_DCACHE_ASSOC,
9899 #define _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_ASSOC
9900 _SC_LEVEL1_DCACHE_LINESIZE,
9901 #define _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL1_DCACHE_LINESIZE
9902 _SC_LEVEL2_CACHE_SIZE,
9903 #define _SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_SIZE
9904 _SC_LEVEL2_CACHE_ASSOC,
9905 #define _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_ASSOC
9906 _SC_LEVEL2_CACHE_LINESIZE,
9907 #define _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL2_CACHE_LINESIZE
9908 _SC_LEVEL3_CACHE_SIZE,
9909 #define _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_SIZE
9910 _SC_LEVEL3_CACHE_ASSOC,
9911 #define _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_ASSOC
9912 _SC_LEVEL3_CACHE_LINESIZE,
9913 #define _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL3_CACHE_LINESIZE
9914 _SC_LEVEL4_CACHE_SIZE,
9915 #define _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE
9916 _SC_LEVEL4_CACHE_ASSOC,
9917 #define _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC
9918 _SC_LEVEL4_CACHE_LINESIZE,
9919 #define _SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE
9920
9921
9922 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
9923 #define _SC_IPV6 _SC_IPV6
9924 _SC_RAW_SOCKETS
9925 #define _SC_RAW_SOCKETS _SC_RAW_SOCKETS
9926 };
9927
9928
9929 enum
9930 {
9931 _CS_PATH,
9932 #define _CS_PATH _CS_PATH
9933
9934 _CS_V6_WIDTH_RESTRICTED_ENVS,
9935 #define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
9936 #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
9937
9938 _CS_GNU_LIBC_VERSION,
9939 #define _CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION
9940 _CS_GNU_LIBPTHREAD_VERSION,
9941 #define _CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION
9942
9943 _CS_LFS_CFLAGS = 1000,
9944 #define _CS_LFS_CFLAGS _CS_LFS_CFLAGS
9945 _CS_LFS_LDFLAGS,
9946 #define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS
9947 _CS_LFS_LIBS,
9948 #define _CS_LFS_LIBS _CS_LFS_LIBS
9949 _CS_LFS_LINTFLAGS,
9950 #define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS
9951 _CS_LFS64_CFLAGS,
9952 #define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS
9953 _CS_LFS64_LDFLAGS,
9954 #define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS
9955 _CS_LFS64_LIBS,
9956 #define _CS_LFS64_LIBS _CS_LFS64_LIBS
9957 _CS_LFS64_LINTFLAGS,
9958 #define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS
9959
9960 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
9961 #define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
9962 _CS_XBS5_ILP32_OFF32_LDFLAGS,
9963 #define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
9964 _CS_XBS5_ILP32_OFF32_LIBS,
9965 #define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
9966 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
9967 #define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
9968 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
9969 #define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
9970 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
9971 #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
9972 _CS_XBS5_ILP32_OFFBIG_LIBS,
9973 #define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
9974 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
9975 #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
9976 _CS_XBS5_LP64_OFF64_CFLAGS,
9977 #define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
9978 _CS_XBS5_LP64_OFF64_LDFLAGS,
9979 #define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
9980 _CS_XBS5_LP64_OFF64_LIBS,
9981 #define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
9982 _CS_XBS5_LP64_OFF64_LINTFLAGS,
9983 #define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
9984 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
9985 #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
9986 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
9987 #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
9988 _CS_XBS5_LPBIG_OFFBIG_LIBS,
9989 #define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
9990 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
9991 #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
9992
9993 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
9994 #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
9995 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
9996 #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
9997 _CS_POSIX_V6_ILP32_OFF32_LIBS,
9998 #define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
9999 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
10000 #define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
10001 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
10002 #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
10003 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
10004 #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
10005 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
10006 #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
10007 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
10008 #define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
10009 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
10010 #define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
10011 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
10012 #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
10013 _CS_POSIX_V6_LP64_OFF64_LIBS,
10014 #define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
10015 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
10016 #define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
10017 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
10018 #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
10019 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
10020 #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
10021 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
10022 #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
10023 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
10024 #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
10025 };
10026 # 9 "/usr/include/bits/confname.h" 2 3 4
10027 # 555 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
10028
10029
10030 extern long int pathconf (__const char *__path, int __name)
10031 throw () __attribute__ ((__nonnull__ (1)));
10032
10033
10034 extern long int fpathconf (int __fd, int __name) throw ();
10035
10036
10037 extern long int sysconf (int __name) throw ();
10038
10039
10040
10041 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
10042
10043
10044
10045
10046 extern __pid_t getpid (void) throw ();
10047
10048
10049 extern __pid_t getppid (void) throw ();
10050
10051
10052
10053
10054 extern __pid_t getpgrp (void) throw ();
10055 # 591 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10056 extern __pid_t __getpgid (__pid_t __pid) throw ();
10057
10058 extern __pid_t getpgid (__pid_t __pid) throw ();
10059
10060
10061
10062
10063
10064
10065 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
10066 # 617 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10067 extern int setpgrp (void) throw ();
10068 # 634 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10069 extern __pid_t setsid (void) throw ();
10070
10071
10072
10073 extern __pid_t getsid (__pid_t __pid) throw ();
10074
10075
10076
10077 extern __uid_t getuid (void) throw ();
10078
10079
10080 extern __uid_t geteuid (void) throw ();
10081
10082
10083 extern __gid_t getgid (void) throw ();
10084
10085
10086 extern __gid_t getegid (void) throw ();
10087
10088
10089
10090
10091 extern int getgroups (int __size, __gid_t __list[]) throw () ;
10092
10093
10094
10095 extern int group_member (__gid_t __gid) throw ();
10096
10097
10098
10099
10100
10101
10102 extern int setuid (__uid_t __uid) throw ();
10103
10104
10105
10106
10107 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
10108
10109
10110
10111
10112 extern int seteuid (__uid_t __uid) throw ();
10113
10114
10115
10116
10117
10118
10119 extern int setgid (__gid_t __gid) throw ();
10120
10121
10122
10123
10124 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
10125
10126
10127
10128
10129 extern int setegid (__gid_t __gid) throw ();
10130
10131
10132
10133
10134
10135 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
10136 throw ();
10137
10138
10139
10140 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
10141 throw ();
10142
10143
10144
10145 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
10146 throw ();
10147
10148
10149
10150 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
10151 throw ();
10152
10153
10154
10155
10156
10157
10158 extern __pid_t fork (void) throw ();
10159
10160
10161
10162
10163
10164
10165 extern __pid_t vfork (void) throw ();
10166
10167
10168
10169
10170
10171 extern char *ttyname (int __fd) throw ();
10172
10173
10174
10175 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
10176 throw () __attribute__ ((__nonnull__ (2))) ;
10177
10178
10179
10180 extern int isatty (int __fd) throw ();
10181
10182
10183
10184
10185
10186 extern int ttyslot (void) throw ();
10187
10188
10189
10190
10191 extern int link (__const char *__from, __const char *__to)
10192 throw () __attribute__ ((__nonnull__ (1, 2))) ;
10193
10194
10195
10196
10197 extern int linkat (int __fromfd, __const char *__from, int __tofd,
10198 __const char *__to, int __flags)
10199 throw () __attribute__ ((__nonnull__ (2, 4))) ;
10200
10201
10202
10203
10204 extern int symlink (__const char *__from, __const char *__to)
10205 throw () __attribute__ ((__nonnull__ (1, 2))) ;
10206
10207
10208
10209
10210 extern ssize_t readlink (__const char *__restrict __path,
10211 char *__restrict __buf, size_t __len)
10212 throw () __attribute__ ((__nonnull__ (1, 2))) ;
10213
10214
10215
10216
10217 extern int symlinkat (__const char *__from, int __tofd,
10218 __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
10219
10220
10221 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
10222 char *__restrict __buf, size_t __len)
10223 throw () __attribute__ ((__nonnull__ (2, 3))) ;
10224
10225
10226
10227 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
10228
10229
10230
10231 extern int unlinkat (int __fd, __const char *__name, int __flag)
10232 throw () __attribute__ ((__nonnull__ (2)));
10233
10234
10235
10236 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
10237
10238
10239
10240 extern __pid_t tcgetpgrp (int __fd) throw ();
10241
10242
10243 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
10244
10245
10246
10247
10248
10249
10250 extern char *getlogin (void);
10251
10252
10253
10254
10255
10256
10257
10258 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
10259
10260
10261
10262
10263 extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
10264
10265
10266
10267
10268
10269
10270
10271 #define __need_getopt
10272 # 1 "/usr/include/getopt.h" 1 3 4
10273
10274
10275
10276
10277
10278
10279
10280 # 1 "/usr/include/gentoo-multilib/amd64/getopt.h" 1 3 4
10281 # 50 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10282 extern "C" {
10283 # 59 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10284 extern char *optarg;
10285 # 73 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10286 extern int optind;
10287
10288
10289
10290
10291 extern int opterr;
10292
10293
10294
10295 extern int optopt;
10296 # 152 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10297 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
10298 throw ();
10299 # 171 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10300 }
10301
10302
10303
10304 #undef __need_getopt
10305 # 9 "/usr/include/getopt.h" 2 3 4
10306 # 838 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
10307
10308
10309
10310
10311
10312
10313
10314 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
10315
10316
10317
10318
10319
10320
10321 extern int sethostname (__const char *__name, size_t __len)
10322 throw () __attribute__ ((__nonnull__ (1))) ;
10323
10324
10325
10326 extern int sethostid (long int __id) throw () ;
10327
10328
10329
10330
10331
10332 extern int getdomainname (char *__name, size_t __len)
10333 throw () __attribute__ ((__nonnull__ (1))) ;
10334 extern int setdomainname (__const char *__name, size_t __len)
10335 throw () __attribute__ ((__nonnull__ (1))) ;
10336
10337
10338
10339
10340
10341 extern int vhangup (void) throw ();
10342
10343
10344 extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
10345
10346
10347
10348
10349
10350
10351
10352 extern int profil (unsigned short int *__sample_buffer, size_t __size,
10353 size_t __offset, unsigned int __scale)
10354 throw () __attribute__ ((__nonnull__ (1)));
10355
10356
10357
10358
10359
10360 extern int acct (__const char *__name) throw ();
10361
10362
10363
10364 extern char *getusershell (void) throw ();
10365 extern void endusershell (void) throw ();
10366 extern void setusershell (void) throw ();
10367
10368
10369
10370
10371
10372 extern int daemon (int __nochdir, int __noclose) throw () ;
10373
10374
10375
10376
10377
10378
10379 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
10380
10381
10382
10383 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
10384 # 923 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10385 extern int fsync (int __fd);
10386
10387
10388
10389
10390
10391
10392 extern long int gethostid (void);
10393
10394
10395 extern void sync (void) throw ();
10396
10397
10398
10399
10400 extern int getpagesize (void) throw () __attribute__ ((__const__));
10401
10402
10403
10404
10405 extern int getdtablesize (void) throw ();
10406
10407
10408
10409
10410 extern int truncate (__const char *__file, __off_t __length)
10411 throw () __attribute__ ((__nonnull__ (1))) ;
10412 # 960 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10413 extern int truncate64 (__const char *__file, __off64_t __length)
10414 throw () __attribute__ ((__nonnull__ (1))) ;
10415 # 970 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10416 extern int ftruncate (int __fd, __off_t __length) throw () ;
10417 # 980 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10418 extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
10419 # 990 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10420 extern int brk (void *__addr) throw () ;
10421
10422
10423
10424
10425
10426 extern void *sbrk (intptr_t __delta) throw ();
10427 # 1011 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10428 extern long int syscall (long int __sysno, ...) throw ();
10429 # 1028 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10430 #define F_ULOCK 0
10431 #define F_LOCK 1
10432 #define F_TLOCK 2
10433 #define F_TEST 3
10434
10435
10436 extern int lockf (int __fd, int __cmd, __off_t __len) ;
10437 # 1044 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10438 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
10439 # 1054 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10440 #define TEMP_FAILURE_RETRY(expression) (__extension__ ({ long int __result; do __result = (long int) (expression); while (__result == -1L && errno == EINTR); __result; }))
10441 # 1065 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10442 extern int fdatasync (int __fildes);
10443
10444
10445
10446
10447
10448
10449
10450 extern char *crypt (__const char *__key, __const char *__salt)
10451 throw () __attribute__ ((__nonnull__ (1, 2)));
10452
10453
10454
10455 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
10456
10457
10458
10459
10460
10461
10462 extern void swab (__const void *__restrict __from, void *__restrict __to,
10463 ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
10464
10465
10466
10467
10468
10469
10470
10471 extern char *ctermid (char *__s) throw ();
10472 # 1103 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10473 }
10474 # 9 "/usr/include/unistd.h" 2 3 4
10475 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3
10476
10477 typedef pthread_key_t __gthread_key_t;
10478 typedef pthread_once_t __gthread_once_t;
10479 typedef pthread_mutex_t __gthread_mutex_t;
10480 typedef pthread_mutex_t __gthread_recursive_mutex_t;
10481
10482 #define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
10483 #define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
10484
10485
10486
10487 #define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
10488
10489
10490
10491
10492
10493
10494 #define __gthrw_pragma(pragma)
10495
10496 #define __gthrw2(name,name2,type) static __typeof(type) name __attribute__ ((__weakref__(#name2))); __gthrw_pragma(weak type)
10497
10498
10499 #define __gthrw_(name) __gthrw_ ## name
10500
10501
10502
10503
10504
10505
10506 #define __gthrw(name) __gthrw2(__gthrw_ ## name,name,name)
10507 # 92 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10508 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
10509 static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
10510 static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
10511 static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
10512 static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
10513 static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
10514 static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
10515 static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
10516 static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
10517
10518
10519 static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
10520 static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
10521 static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
10522 static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
10523 static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
10524 # 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10525 static inline int
10526 __gthread_active_p (void)
10527 {
10528 static void *const __gthread_active_ptr
10529 = __extension__ (void *) &__gthrw_pthread_cancel;
10530 return __gthread_active_ptr != 0;
10531 }
10532 # 571 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10533 static inline int
10534 __gthread_once (__gthread_once_t *once, void (*func) (void))
10535 {
10536 if (__gthread_active_p ())
10537 return __gthrw_pthread_once (once, func);
10538 else
10539 return -1;
10540 }
10541
10542 static inline int
10543 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
10544 {
10545 return __gthrw_pthread_key_create (key, dtor);
10546 }
10547
10548 static inline int
10549 __gthread_key_delete (__gthread_key_t key)
10550 {
10551 return __gthrw_pthread_key_delete (key);
10552 }
10553
10554 static inline void *
10555 __gthread_getspecific (__gthread_key_t key)
10556 {
10557 return __gthrw_pthread_getspecific (key);
10558 }
10559
10560 static inline int
10561 __gthread_setspecific (__gthread_key_t key, const void *ptr)
10562 {
10563 return __gthrw_pthread_setspecific (key, ptr);
10564 }
10565
10566 static inline int
10567 __gthread_mutex_lock (__gthread_mutex_t *mutex)
10568 {
10569 if (__gthread_active_p ())
10570 return __gthrw_pthread_mutex_lock (mutex);
10571 else
10572 return 0;
10573 }
10574
10575 static inline int
10576 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
10577 {
10578 if (__gthread_active_p ())
10579 return __gthrw_pthread_mutex_trylock (mutex);
10580 else
10581 return 0;
10582 }
10583
10584 static inline int
10585 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
10586 {
10587 if (__gthread_active_p ())
10588 return __gthrw_pthread_mutex_unlock (mutex);
10589 else
10590 return 0;
10591 }
10592 # 653 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10593 static inline int
10594 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
10595 {
10596 return __gthread_mutex_lock (mutex);
10597 }
10598
10599 static inline int
10600 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
10601 {
10602 return __gthread_mutex_trylock (mutex);
10603 }
10604
10605 static inline int
10606 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
10607 {
10608 return __gthread_mutex_unlock (mutex);
10609 }
10610 # 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 2 3
10611
10612
10613
10614
10615
10616
10617
10618 #pragma GCC visibility pop
10619 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 2 3
10620
10621 namespace std __attribute__ ((__visibility__ ("default"))) {
10622
10623 typedef __gthread_mutex_t __c_lock;
10624
10625
10626 typedef FILE __c_file;
10627
10628 }
10629 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
10630 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 1 3
10631 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 3
10632 #define _GLIBCXX_CCTYPE 1
10633
10634
10635 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 3
10636
10637
10638 # 1 "/usr/include/ctype.h" 1 3 4
10639
10640
10641
10642
10643
10644
10645
10646 # 1 "/usr/include/gentoo-multilib/amd64/ctype.h" 1 3 4
10647 # 25 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10648 #define _CTYPE_H 1
10649
10650 # 1 "/usr/include/features.h" 1 3 4
10651 # 28 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10652 # 1 "/usr/include/bits/types.h" 1 3 4
10653 # 29 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10654
10655 extern "C" {
10656 # 41 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10657 # 1 "/usr/include/endian.h" 1 3 4
10658 # 42 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10659
10660
10661
10662 #define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8))
10663
10664
10665 enum
10666 {
10667 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
10668 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
10669 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
10670 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
10671 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
10672 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
10673 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
10674 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
10675 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
10676 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
10677 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
10678 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
10679 };
10680 # 81 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10681 extern __const unsigned short int **__ctype_b_loc (void)
10682 __attribute__ ((__const));
10683 extern __const __int32_t **__ctype_tolower_loc (void)
10684 __attribute__ ((__const));
10685 extern __const __int32_t **__ctype_toupper_loc (void)
10686 __attribute__ ((__const));
10687
10688 #define __isctype(c,type) ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
10689
10690
10691 #define __isascii(c) (((c) & ~0x7f) == 0)
10692 #define __toascii(c) ((c) & 0x7f)
10693
10694 #define __exctype(name) extern int name (int) __THROW
10695
10696
10697
10698
10699
10700
10701
10702 extern int isalnum (int) throw ();
10703 extern int isalpha (int) throw ();
10704 extern int iscntrl (int) throw ();
10705 extern int isdigit (int) throw ();
10706 extern int islower (int) throw ();
10707 extern int isgraph (int) throw ();
10708 extern int isprint (int) throw ();
10709 extern int ispunct (int) throw ();
10710 extern int isspace (int) throw ();
10711 extern int isupper (int) throw ();
10712 extern int isxdigit (int) throw ();
10713
10714
10715
10716 extern int tolower (int __c) throw ();
10717
10718
10719 extern int toupper (int __c) throw ();
10720
10721
10722
10723
10724
10725
10726
10727
10728 extern int isblank (int) throw ();
10729
10730
10731
10732
10733
10734
10735 extern int isctype (int __c, int __mask) throw ();
10736
10737
10738
10739
10740
10741
10742 extern int isascii (int __c) throw ();
10743
10744
10745
10746 extern int toascii (int __c) throw ();
10747
10748
10749
10750 extern int _toupper (int) throw ();
10751 extern int _tolower (int) throw ();
10752
10753
10754
10755 #define __tobody(c,f,a,args) (__extension__ ({ int __res; if (sizeof (c) > 1) { if (__builtin_constant_p (c)) { int __c = (c); __res = __c < -128 || __c > 255 ? __c : (a)[__c]; } else __res = f args; } else __res = (a)[(int) (c)]; __res; }))
10756 # 233 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10757 # 1 "/usr/include/xlocale.h" 1 3 4
10758 # 234 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10759
10760
10761
10762 #define __isctype_l(c,type,locale) ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type)
10763
10764
10765 #define __exctype_l(name) extern int name (int, __locale_t) __THROW
10766
10767
10768
10769
10770
10771
10772 extern int isalnum_l (int, __locale_t) throw ();
10773 extern int isalpha_l (int, __locale_t) throw ();
10774 extern int iscntrl_l (int, __locale_t) throw ();
10775 extern int isdigit_l (int, __locale_t) throw ();
10776 extern int islower_l (int, __locale_t) throw ();
10777 extern int isgraph_l (int, __locale_t) throw ();
10778 extern int isprint_l (int, __locale_t) throw ();
10779 extern int ispunct_l (int, __locale_t) throw ();
10780 extern int isspace_l (int, __locale_t) throw ();
10781 extern int isupper_l (int, __locale_t) throw ();
10782 extern int isxdigit_l (int, __locale_t) throw ();
10783
10784 extern int isblank_l (int, __locale_t) throw ();
10785
10786
10787
10788 extern int __tolower_l (int __c, __locale_t __l) throw ();
10789 extern int tolower_l (int __c, __locale_t __l) throw ();
10790
10791
10792 extern int __toupper_l (int __c, __locale_t __l) throw ();
10793 extern int toupper_l (int __c, __locale_t __l) throw ();
10794 # 323 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10795 }
10796 # 9 "/usr/include/ctype.h" 2 3 4
10797 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 2 3
10798
10799
10800 #undef isalnum
10801 #undef isalpha
10802 #undef iscntrl
10803 #undef isdigit
10804 #undef isgraph
10805 #undef islower
10806 #undef isprint
10807 #undef ispunct
10808 #undef isspace
10809 #undef isupper
10810 #undef isxdigit
10811 #undef tolower
10812 #undef toupper
10813
10814 namespace std __attribute__ ((__visibility__ ("default"))) {
10815
10816 using ::isalnum;
10817 using ::isalpha;
10818 using ::iscntrl;
10819 using ::isdigit;
10820 using ::isgraph;
10821 using ::islower;
10822 using ::isprint;
10823 using ::ispunct;
10824 using ::isspace;
10825 using ::isupper;
10826 using ::isxdigit;
10827 using ::tolower;
10828 using ::toupper;
10829
10830 }
10831 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
10832 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stringfwd.h" 1 3
10833 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stringfwd.h" 3
10834 #define _STRINGFWD_H 1
10835
10836
10837 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stringfwd.h" 3
10838
10839
10840
10841 namespace std __attribute__ ((__visibility__ ("default"))) {
10842
10843 template<typename _Alloc>
10844 class allocator;
10845
10846 template<class _CharT>
10847 struct char_traits;
10848
10849 template<typename _CharT, typename _Traits = char_traits<_CharT>,
10850 typename _Alloc = allocator<_CharT> >
10851 class basic_string;
10852
10853 template<> struct char_traits<char>;
10854
10855 typedef basic_string<char> string;
10856
10857
10858 template<> struct char_traits<wchar_t>;
10859
10860 typedef basic_string<wchar_t> wstring;
10861
10862
10863 }
10864 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
10865 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 1 3
10866 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
10867 #define _GLIBCXX_POSTYPES_H 1
10868
10869
10870 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
10871
10872 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 1 3
10873 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
10874 #define _GLIBCXX_CWCHAR 1
10875
10876
10877 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
10878
10879
10880
10881 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 1 3
10882 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 3
10883 #define _GLIBCXX_CTIME 1
10884
10885
10886 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 3
10887
10888
10889 # 1 "/usr/include/time.h" 1 3 4
10890 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 2 3
10891
10892
10893 #undef clock
10894 #undef difftime
10895 #undef mktime
10896 #undef time
10897 #undef asctime
10898 #undef ctime
10899 #undef gmtime
10900 #undef localtime
10901 #undef strftime
10902
10903 namespace std __attribute__ ((__visibility__ ("default"))) {
10904
10905 using ::clock_t;
10906 using ::time_t;
10907 using ::tm;
10908
10909 using ::clock;
10910 using ::difftime;
10911 using ::mktime;
10912 using ::time;
10913 using ::asctime;
10914 using ::ctime;
10915 using ::gmtime;
10916 using ::localtime;
10917 using ::strftime;
10918
10919 }
10920 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 2 3
10921
10922
10923 # 1 "/usr/include/wchar.h" 1 3 4
10924
10925
10926
10927
10928
10929
10930
10931 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
10932 # 27 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
10933 #define _WCHAR_H 1
10934 # 1 "/usr/include/features.h" 1 3 4
10935 # 29 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
10936
10937
10938
10939
10940 #define __need___FILE
10941
10942 #define __need_FILE
10943
10944 # 1 "/usr/include/stdio.h" 1 3 4
10945 # 38 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
10946
10947 #define __need___va_list
10948
10949
10950 # 1 "/usr/include/bits/wchar.h" 1 3 4
10951
10952
10953
10954
10955
10956
10957
10958 # 1 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 1 3 4
10959 # 21 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 3 4
10960 #define _BITS_WCHAR_H 1
10961
10962 #define __WCHAR_MIN (-2147483647 - 1)
10963 #define __WCHAR_MAX (2147483647)
10964 # 9 "/usr/include/bits/wchar.h" 2 3 4
10965 # 43 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
10966
10967
10968 #define __need_size_t
10969 #define __need_wchar_t
10970 #define __need_NULL
10971
10972
10973 #undef __need_wint_t
10974 #define __need_wint_t
10975 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
10976 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10977 #undef __need_ptrdiff_t
10978 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10979 #undef __need_size_t
10980 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10981 #undef __need_wchar_t
10982
10983
10984
10985
10986 #define _WINT_T
10987
10988
10989
10990
10991 typedef unsigned int wint_t;
10992
10993 #undef __need_wint_t
10994 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10995 #undef NULL
10996
10997 #define NULL __null
10998 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10999 #undef __need_NULL
11000
11001
11002
11003
11004 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
11005 # 53 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11006 # 92 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11007 #undef __need_mbstate_t
11008
11009
11010
11011
11012
11013
11014
11015
11016 typedef __mbstate_t mbstate_t;
11017
11018
11019
11020
11021
11022
11023
11024 #define WCHAR_MIN __WCHAR_MIN
11025 #define WCHAR_MAX __WCHAR_MAX
11026
11027
11028
11029 #define WEOF (0xffffffffu)
11030 # 124 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11031 extern "C" {
11032
11033
11034
11035
11036 struct tm;
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
11047 __const wchar_t *__restrict __src) throw ();
11048
11049 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
11050 __const wchar_t *__restrict __src, size_t __n)
11051 throw ();
11052
11053
11054 extern wchar_t *wcscat (wchar_t *__restrict __dest,
11055 __const wchar_t *__restrict __src) throw ();
11056
11057 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
11058 __const wchar_t *__restrict __src, size_t __n)
11059 throw ();
11060
11061
11062 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
11063 throw () __attribute__ ((__pure__));
11064
11065 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
11066 throw () __attribute__ ((__pure__));
11067
11068
11069
11070
11071 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
11072
11073
11074 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
11075 size_t __n) throw ();
11076
11077
11078
11079 # 1 "/usr/include/xlocale.h" 1 3 4
11080 # 173 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11081
11082 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
11083 __locale_t __loc) throw ();
11084
11085 extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
11086 size_t __n, __locale_t __loc) throw ();
11087
11088
11089
11090
11091
11092 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
11093
11094
11095
11096 extern size_t wcsxfrm (wchar_t *__restrict __s1,
11097 __const wchar_t *__restrict __s2, size_t __n) throw ();
11098
11099
11100
11101
11102
11103
11104
11105
11106 extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
11107 __locale_t __loc) throw ();
11108
11109
11110
11111
11112 extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
11113 size_t __n, __locale_t __loc) throw ();
11114
11115
11116 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
11117
11118
11119
11120
11121 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
11122 throw () __attribute__ ((__pure__));
11123
11124 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
11125 throw () __attribute__ ((__pure__));
11126
11127
11128
11129
11130
11131 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
11132 throw () __attribute__ ((__pure__));
11133
11134
11135
11136
11137
11138 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
11139 throw () __attribute__ ((__pure__));
11140
11141
11142 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
11143 throw () __attribute__ ((__pure__));
11144
11145 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
11146 throw () __attribute__ ((__pure__));
11147
11148 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
11149 throw () __attribute__ ((__pure__));
11150
11151
11152 extern wchar_t *wcstok (wchar_t *__restrict __s,
11153 __const wchar_t *__restrict __delim,
11154 wchar_t **__restrict __ptr) throw ();
11155
11156
11157 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
11158
11159
11160
11161
11162 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
11163 throw () __attribute__ ((__pure__));
11164
11165
11166
11167
11168 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
11169 throw () __attribute__ ((__pure__));
11170
11171
11172
11173
11174
11175 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
11176 throw () __attribute__ ((__pure__));
11177
11178
11179 extern int wmemcmp (__const wchar_t *__restrict __s1,
11180 __const wchar_t *__restrict __s2, size_t __n)
11181 throw () __attribute__ ((__pure__));
11182
11183
11184 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
11185 __const wchar_t *__restrict __s2, size_t __n) throw ();
11186
11187
11188
11189 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
11190 throw ();
11191
11192
11193 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
11194
11195
11196
11197
11198
11199 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
11200 __const wchar_t *__restrict __s2, size_t __n)
11201 throw ();
11202
11203
11204
11205
11206
11207
11208 extern wint_t btowc (int __c) throw ();
11209
11210
11211
11212 extern int wctob (wint_t __c) throw ();
11213
11214
11215
11216 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
11217
11218
11219
11220 extern size_t mbrtowc (wchar_t *__restrict __pwc,
11221 __const char *__restrict __s, size_t __n,
11222 mbstate_t *__p) throw ();
11223
11224
11225 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
11226 mbstate_t *__restrict __ps) throw ();
11227
11228
11229 extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
11230 mbstate_t *__restrict __ps) throw ();
11231 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
11232 mbstate_t *__restrict __ps) throw ();
11233
11234 # 352 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11235
11236
11237
11238 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
11239 __const char **__restrict __src, size_t __len,
11240 mbstate_t *__restrict __ps) throw ();
11241
11242
11243
11244 extern size_t wcsrtombs (char *__restrict __dst,
11245 __const wchar_t **__restrict __src, size_t __len,
11246 mbstate_t *__restrict __ps) throw ();
11247
11248
11249
11250
11251
11252
11253 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
11254 __const char **__restrict __src, size_t __nmc,
11255 size_t __len, mbstate_t *__restrict __ps) throw ();
11256
11257
11258
11259 extern size_t wcsnrtombs (char *__restrict __dst,
11260 __const wchar_t **__restrict __src,
11261 size_t __nwc, size_t __len,
11262 mbstate_t *__restrict __ps) throw ();
11263
11264
11265
11266
11267
11268
11269 extern int wcwidth (wchar_t __c) throw ();
11270
11271
11272
11273 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
11274
11275
11276
11277
11278
11279
11280 extern double wcstod (__const wchar_t *__restrict __nptr,
11281 wchar_t **__restrict __endptr) throw ();
11282
11283
11284
11285
11286
11287 extern float wcstof (__const wchar_t *__restrict __nptr,
11288 wchar_t **__restrict __endptr) throw ();
11289 extern long double wcstold (__const wchar_t *__restrict __nptr,
11290 wchar_t **__restrict __endptr) throw ();
11291
11292
11293
11294
11295
11296
11297
11298 extern long int wcstol (__const wchar_t *__restrict __nptr,
11299 wchar_t **__restrict __endptr, int __base) throw ();
11300
11301
11302
11303 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
11304 wchar_t **__restrict __endptr, int __base)
11305 throw ();
11306
11307
11308
11309
11310
11311
11312 __extension__
11313 extern long long int wcstoll (__const wchar_t *__restrict __nptr,
11314 wchar_t **__restrict __endptr, int __base)
11315 throw ();
11316
11317
11318
11319 __extension__
11320 extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
11321 wchar_t **__restrict __endptr,
11322 int __base) throw ();
11323
11324
11325
11326
11327
11328
11329 __extension__
11330 extern long long int wcstoq (__const wchar_t *__restrict __nptr,
11331 wchar_t **__restrict __endptr, int __base)
11332 throw ();
11333
11334
11335
11336 __extension__
11337 extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
11338 wchar_t **__restrict __endptr,
11339 int __base) throw ();
11340 # 473 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11341 # 1 "/usr/include/xlocale.h" 1 3 4
11342 # 474 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11343
11344
11345
11346 extern long int wcstol_l (__const wchar_t *__restrict __nptr,
11347 wchar_t **__restrict __endptr, int __base,
11348 __locale_t __loc) throw ();
11349
11350 extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
11351 wchar_t **__restrict __endptr,
11352 int __base, __locale_t __loc) throw ();
11353
11354 __extension__
11355 extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
11356 wchar_t **__restrict __endptr,
11357 int __base, __locale_t __loc) throw ();
11358
11359 __extension__
11360 extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
11361 wchar_t **__restrict __endptr,
11362 int __base, __locale_t __loc)
11363 throw ();
11364
11365 extern double wcstod_l (__const wchar_t *__restrict __nptr,
11366 wchar_t **__restrict __endptr, __locale_t __loc)
11367 throw ();
11368
11369 extern float wcstof_l (__const wchar_t *__restrict __nptr,
11370 wchar_t **__restrict __endptr, __locale_t __loc)
11371 throw ();
11372
11373 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
11374 wchar_t **__restrict __endptr,
11375 __locale_t __loc) throw ();
11376
11377
11378
11379
11380
11381
11382 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
11383
11384
11385
11386 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
11387 throw ();
11388 # 527 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11389 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
11390
11391
11392
11393
11394
11395
11396 extern int fwide (__FILE *__fp, int __mode) throw ();
11397
11398
11399
11400
11401
11402
11403 extern int fwprintf (__FILE *__restrict __stream,
11404 __const wchar_t *__restrict __format, ...)
11405 ;
11406
11407
11408
11409
11410 extern int wprintf (__const wchar_t *__restrict __format, ...)
11411 ;
11412
11413 extern int swprintf (wchar_t *__restrict __s, size_t __n,
11414 __const wchar_t *__restrict __format, ...)
11415 throw () ;
11416
11417
11418
11419
11420
11421 extern int vfwprintf (__FILE *__restrict __s,
11422 __const wchar_t *__restrict __format,
11423 __gnuc_va_list __arg)
11424 ;
11425
11426
11427
11428
11429 extern int vwprintf (__const wchar_t *__restrict __format,
11430 __gnuc_va_list __arg)
11431 ;
11432
11433
11434 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
11435 __const wchar_t *__restrict __format,
11436 __gnuc_va_list __arg)
11437 throw () ;
11438
11439
11440
11441
11442
11443
11444 extern int fwscanf (__FILE *__restrict __stream,
11445 __const wchar_t *__restrict __format, ...)
11446 ;
11447
11448
11449
11450
11451 extern int wscanf (__const wchar_t *__restrict __format, ...)
11452 ;
11453
11454 extern int swscanf (__const wchar_t *__restrict __s,
11455 __const wchar_t *__restrict __format, ...)
11456 throw () ;
11457 # 627 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467 extern int vfwscanf (__FILE *__restrict __s,
11468 __const wchar_t *__restrict __format,
11469 __gnuc_va_list __arg)
11470 ;
11471
11472
11473
11474
11475 extern int vwscanf (__const wchar_t *__restrict __format,
11476 __gnuc_va_list __arg)
11477 ;
11478
11479 extern int vswscanf (__const wchar_t *__restrict __s,
11480 __const wchar_t *__restrict __format,
11481 __gnuc_va_list __arg)
11482 throw () ;
11483 # 683 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493 extern wint_t fgetwc (__FILE *__stream);
11494 extern wint_t getwc (__FILE *__stream);
11495
11496
11497
11498
11499
11500 extern wint_t getwchar (void);
11501
11502
11503
11504
11505
11506
11507 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
11508 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
11509
11510
11511
11512
11513
11514 extern wint_t putwchar (wchar_t __wc);
11515
11516
11517
11518
11519
11520
11521
11522 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
11523 __FILE *__restrict __stream);
11524
11525
11526
11527
11528
11529 extern int fputws (__const wchar_t *__restrict __ws,
11530 __FILE *__restrict __stream);
11531
11532
11533
11534
11535
11536
11537 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
11538
11539 # 748 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11540 extern wint_t getwc_unlocked (__FILE *__stream);
11541 extern wint_t getwchar_unlocked (void);
11542
11543
11544
11545
11546
11547
11548
11549 extern wint_t fgetwc_unlocked (__FILE *__stream);
11550
11551
11552
11553
11554
11555
11556
11557 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
11558 # 774 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11559 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
11560 extern wint_t putwchar_unlocked (wchar_t __wc);
11561 # 784 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11562 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
11563 __FILE *__restrict __stream);
11564
11565
11566
11567
11568
11569
11570
11571 extern int fputws_unlocked (__const wchar_t *__restrict __ws,
11572 __FILE *__restrict __stream);
11573
11574
11575
11576
11577
11578
11579
11580 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
11581 __const wchar_t *__restrict __format,
11582 __const struct tm *__restrict __tp) throw ();
11583
11584
11585
11586 # 1 "/usr/include/xlocale.h" 1 3 4
11587 # 809 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11588
11589
11590
11591 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
11592 __const wchar_t *__restrict __format,
11593 __const struct tm *__restrict __tp,
11594 __locale_t __loc) throw ();
11595 # 838 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11596 }
11597 # 9 "/usr/include/wchar.h" 2 3 4
11598 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 2 3
11599 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
11600 namespace std __attribute__ ((__visibility__ ("default"))) {
11601
11602 using ::mbstate_t;
11603
11604 }
11605
11606
11607 #undef btowc
11608 #undef fgetwc
11609 #undef fgetws
11610 #undef fputwc
11611 #undef fputws
11612 #undef fwide
11613 #undef fwprintf
11614 #undef fwscanf
11615 #undef getwc
11616 #undef getwchar
11617 #undef mbrlen
11618 #undef mbrtowc
11619 #undef mbsinit
11620 #undef mbsrtowcs
11621 #undef putwc
11622 #undef putwchar
11623 #undef swprintf
11624 #undef swscanf
11625 #undef ungetwc
11626 #undef vfwprintf
11627
11628 #undef vfwscanf
11629
11630 #undef vswprintf
11631
11632 #undef vswscanf
11633
11634 #undef vwprintf
11635
11636 #undef vwscanf
11637
11638 #undef wcrtomb
11639 #undef wcscat
11640 #undef wcschr
11641 #undef wcscmp
11642 #undef wcscoll
11643 #undef wcscpy
11644 #undef wcscspn
11645 #undef wcsftime
11646 #undef wcslen
11647 #undef wcsncat
11648 #undef wcsncmp
11649 #undef wcsncpy
11650 #undef wcspbrk
11651 #undef wcsrchr
11652 #undef wcsrtombs
11653 #undef wcsspn
11654 #undef wcsstr
11655 #undef wcstod
11656
11657 #undef wcstof
11658
11659 #undef wcstok
11660 #undef wcstol
11661 #undef wcstoul
11662 #undef wcsxfrm
11663 #undef wctob
11664 #undef wmemchr
11665 #undef wmemcmp
11666 #undef wmemcpy
11667 #undef wmemmove
11668 #undef wmemset
11669 #undef wprintf
11670 #undef wscanf
11671
11672
11673
11674 namespace std __attribute__ ((__visibility__ ("default"))) {
11675
11676 using ::wint_t;
11677
11678 using ::btowc;
11679 using ::fgetwc;
11680 using ::fgetws;
11681 using ::fputwc;
11682 using ::fputws;
11683 using ::fwide;
11684 using ::fwprintf;
11685 using ::fwscanf;
11686 using ::getwc;
11687 using ::getwchar;
11688 using ::mbrlen;
11689 using ::mbrtowc;
11690 using ::mbsinit;
11691 using ::mbsrtowcs;
11692 using ::putwc;
11693 using ::putwchar;
11694 using ::swprintf;
11695 using ::swscanf;
11696 using ::ungetwc;
11697 using ::vfwprintf;
11698
11699 using ::vfwscanf;
11700
11701 using ::vswprintf;
11702
11703 using ::vswscanf;
11704
11705 using ::vwprintf;
11706
11707 using ::vwscanf;
11708
11709 using ::wcrtomb;
11710 using ::wcscat;
11711 using ::wcscmp;
11712 using ::wcscoll;
11713 using ::wcscpy;
11714 using ::wcscspn;
11715
11716
11717
11718 using ::wcslen;
11719 using ::wcsncat;
11720 using ::wcsncmp;
11721 using ::wcsncpy;
11722 using ::wcsrtombs;
11723 using ::wcsspn;
11724 using ::wcstod;
11725
11726 using ::wcstof;
11727
11728 using ::wcstok;
11729 using ::wcstol;
11730 using ::wcstoul;
11731 using ::wcsxfrm;
11732 using ::wctob;
11733 using ::wmemcmp;
11734 using ::wmemcpy;
11735 using ::wmemmove;
11736 using ::wmemset;
11737 using ::wprintf;
11738 using ::wscanf;
11739
11740 using ::wcschr;
11741
11742 inline wchar_t*
11743 wcschr(wchar_t* __p, wchar_t __c)
11744 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
11745
11746 using ::wcspbrk;
11747
11748 inline wchar_t*
11749 wcspbrk(wchar_t* __s1, const wchar_t* __s2)
11750 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
11751
11752 using ::wcsrchr;
11753
11754 inline wchar_t*
11755 wcsrchr(wchar_t* __p, wchar_t __c)
11756 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
11757
11758 using ::wcsstr;
11759
11760 inline wchar_t*
11761 wcsstr(wchar_t* __s1, const wchar_t* __s2)
11762 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
11763
11764 using ::wmemchr;
11765
11766 inline wchar_t*
11767 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
11768 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
11769
11770 }
11771
11772
11773
11774 #undef wcstold
11775 #undef wcstoll
11776 #undef wcstoull
11777
11778 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
11779
11780
11781
11782
11783
11784
11785 using ::wcstold;
11786 # 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
11787 using ::wcstoll;
11788 using ::wcstoull;
11789
11790
11791 }
11792
11793 namespace std __attribute__ ((__visibility__ ("default"))) {
11794
11795 using ::__gnu_cxx::wcstold;
11796 using ::__gnu_cxx::wcstoll;
11797 using ::__gnu_cxx::wcstoull;
11798
11799 }
11800 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 2 3
11801
11802
11803 # 1 "/usr/include/stdint.h" 1 3 4
11804
11805
11806
11807
11808
11809
11810
11811 # 1 "/usr/include/gentoo-multilib/amd64/stdint.h" 1 3 4
11812 # 24 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11813 #define _STDINT_H 1
11814
11815 # 1 "/usr/include/features.h" 1 3 4
11816 # 27 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
11817 # 1 "/usr/include/bits/wchar.h" 1 3 4
11818 # 28 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
11819 # 1 "/usr/include/bits/wordsize.h" 1 3 4
11820
11821
11822
11823
11824
11825
11826
11827 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
11828
11829
11830
11831 #define __WORDSIZE 64
11832 #define __WORDSIZE_COMPAT32 1
11833 # 9 "/usr/include/bits/wordsize.h" 2 3 4
11834 # 29 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
11835 # 49 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11836 typedef unsigned char uint8_t;
11837 typedef unsigned short int uint16_t;
11838
11839 typedef unsigned int uint32_t;
11840 #define __uint32_t_defined
11841
11842
11843 typedef unsigned long int uint64_t;
11844 # 66 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11845 typedef signed char int_least8_t;
11846 typedef short int int_least16_t;
11847 typedef int int_least32_t;
11848
11849 typedef long int int_least64_t;
11850
11851
11852
11853
11854
11855
11856 typedef unsigned char uint_least8_t;
11857 typedef unsigned short int uint_least16_t;
11858 typedef unsigned int uint_least32_t;
11859
11860 typedef unsigned long int uint_least64_t;
11861 # 91 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11862 typedef signed char int_fast8_t;
11863
11864 typedef long int int_fast16_t;
11865 typedef long int int_fast32_t;
11866 typedef long int int_fast64_t;
11867 # 104 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11868 typedef unsigned char uint_fast8_t;
11869
11870 typedef unsigned long int uint_fast16_t;
11871 typedef unsigned long int uint_fast32_t;
11872 typedef unsigned long int uint_fast64_t;
11873 # 123 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11874 typedef unsigned long int uintptr_t;
11875 # 135 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11876 typedef long int intmax_t;
11877 typedef unsigned long int uintmax_t;
11878 # 150 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11879 #define __INT64_C(c) c ## L
11880 #define __UINT64_C(c) c ## UL
11881 # 160 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11882 #define INT8_MIN (-128)
11883 #define INT16_MIN (-32767-1)
11884 #define INT32_MIN (-2147483647-1)
11885 #define INT64_MIN (-__INT64_C(9223372036854775807)-1)
11886
11887 #define INT8_MAX (127)
11888 #define INT16_MAX (32767)
11889 #define INT32_MAX (2147483647)
11890 #define INT64_MAX (__INT64_C(9223372036854775807))
11891
11892
11893 #define UINT8_MAX (255)
11894 #define UINT16_MAX (65535)
11895 #define UINT32_MAX (4294967295U)
11896 #define UINT64_MAX (__UINT64_C(18446744073709551615))
11897
11898
11899
11900 #define INT_LEAST8_MIN (-128)
11901 #define INT_LEAST16_MIN (-32767-1)
11902 #define INT_LEAST32_MIN (-2147483647-1)
11903 #define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
11904
11905 #define INT_LEAST8_MAX (127)
11906 #define INT_LEAST16_MAX (32767)
11907 #define INT_LEAST32_MAX (2147483647)
11908 #define INT_LEAST64_MAX (__INT64_C(9223372036854775807))
11909
11910
11911 #define UINT_LEAST8_MAX (255)
11912 #define UINT_LEAST16_MAX (65535)
11913 #define UINT_LEAST32_MAX (4294967295U)
11914 #define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
11915
11916
11917
11918 #define INT_FAST8_MIN (-128)
11919
11920 #define INT_FAST16_MIN (-9223372036854775807L-1)
11921 #define INT_FAST32_MIN (-9223372036854775807L-1)
11922
11923
11924
11925
11926 #define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
11927
11928 #define INT_FAST8_MAX (127)
11929
11930 #define INT_FAST16_MAX (9223372036854775807L)
11931 #define INT_FAST32_MAX (9223372036854775807L)
11932
11933
11934
11935
11936 #define INT_FAST64_MAX (__INT64_C(9223372036854775807))
11937
11938
11939 #define UINT_FAST8_MAX (255)
11940
11941 #define UINT_FAST16_MAX (18446744073709551615UL)
11942 #define UINT_FAST32_MAX (18446744073709551615UL)
11943
11944
11945
11946
11947 #define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
11948
11949
11950
11951
11952 #define INTPTR_MIN (-9223372036854775807L-1)
11953 #define INTPTR_MAX (9223372036854775807L)
11954 #define UINTPTR_MAX (18446744073709551615UL)
11955 # 241 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11956 #define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
11957
11958 #define INTMAX_MAX (__INT64_C(9223372036854775807))
11959
11960
11961 #define UINTMAX_MAX (__UINT64_C(18446744073709551615))
11962
11963
11964
11965
11966
11967
11968 #define PTRDIFF_MIN (-9223372036854775807L-1)
11969 #define PTRDIFF_MAX (9223372036854775807L)
11970
11971
11972
11973
11974
11975
11976 #define SIG_ATOMIC_MIN (-2147483647-1)
11977 #define SIG_ATOMIC_MAX (2147483647)
11978
11979
11980
11981 #define SIZE_MAX (18446744073709551615UL)
11982 # 279 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11983 #define WINT_MIN (0u)
11984 #define WINT_MAX (4294967295u)
11985 # 9 "/usr/include/stdint.h" 2 3 4
11986 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 2 3
11987
11988
11989 namespace std __attribute__ ((__visibility__ ("default"))) {
11990 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
11991 typedef int64_t streamoff;
11992
11993
11994
11995
11996
11997 typedef ptrdiff_t streamsize;
11998
11999 template<typename _StateT>
12000 class fpos;
12001 # 94 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
12002 template<typename _StateT>
12003 class fpos
12004 {
12005 private:
12006 streamoff _M_off;
12007 _StateT _M_state;
12008
12009 public:
12010
12011
12012
12013
12014 fpos()
12015 : _M_off(0), _M_state() { }
12016 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
12017 fpos(streamoff __off)
12018 : _M_off(__off), _M_state() { }
12019
12020
12021 operator streamoff() const { return _M_off; }
12022
12023
12024 void
12025 state(_StateT __st)
12026 { _M_state = __st; }
12027
12028
12029 _StateT
12030 state() const
12031 { return _M_state; }
12032
12033
12034
12035
12036
12037 fpos&
12038 operator+=(streamoff __off)
12039 {
12040 _M_off += __off;
12041 return *this;
12042 }
12043
12044
12045
12046
12047
12048 fpos&
12049 operator-=(streamoff __off)
12050 {
12051 _M_off -= __off;
12052 return *this;
12053 }
12054
12055
12056
12057
12058
12059
12060
12061 fpos
12062 operator+(streamoff __off) const
12063 {
12064 fpos __pos(*this);
12065 __pos += __off;
12066 return __pos;
12067 }
12068
12069
12070
12071
12072
12073
12074
12075 fpos
12076 operator-(streamoff __off) const
12077 {
12078 fpos __pos(*this);
12079 __pos -= __off;
12080 return __pos;
12081 }
12082
12083
12084
12085
12086
12087
12088 streamoff
12089 operator-(const fpos& __other) const
12090 { return _M_off - __other._M_off; }
12091 };
12092
12093
12094
12095
12096
12097
12098 template<typename _StateT>
12099 inline bool
12100 operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
12101 { return streamoff(__lhs) == streamoff(__rhs); }
12102
12103 template<typename _StateT>
12104 inline bool
12105 operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
12106 { return streamoff(__lhs) != streamoff(__rhs); }
12107
12108
12109
12110
12111
12112 typedef fpos<mbstate_t> streampos;
12113
12114 typedef fpos<mbstate_t> wstreampos;
12115
12116 }
12117 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
12118
12119
12120 namespace std __attribute__ ((__visibility__ ("default"))) {
12121
12122 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12123 class basic_ios;
12124
12125 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12126 class basic_streambuf;
12127
12128 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12129 class basic_istream;
12130
12131 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12132 class basic_ostream;
12133
12134 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12135 class basic_iostream;
12136
12137 template<typename _CharT, typename _Traits = char_traits<_CharT>,
12138 typename _Alloc = allocator<_CharT> >
12139 class basic_stringbuf;
12140
12141 template<typename _CharT, typename _Traits = char_traits<_CharT>,
12142 typename _Alloc = allocator<_CharT> >
12143 class basic_istringstream;
12144
12145 template<typename _CharT, typename _Traits = char_traits<_CharT>,
12146 typename _Alloc = allocator<_CharT> >
12147 class basic_ostringstream;
12148
12149 template<typename _CharT, typename _Traits = char_traits<_CharT>,
12150 typename _Alloc = allocator<_CharT> >
12151 class basic_stringstream;
12152
12153 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12154 class basic_filebuf;
12155
12156 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12157 class basic_ifstream;
12158
12159 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12160 class basic_ofstream;
12161
12162 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12163 class basic_fstream;
12164
12165 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12166 class istreambuf_iterator;
12167
12168 template<typename _CharT, typename _Traits = char_traits<_CharT> >
12169 class ostreambuf_iterator;
12170
12171
12172
12173 class ios_base;
12174 # 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 3
12175 typedef basic_ios<char> ios;
12176 typedef basic_streambuf<char> streambuf;
12177 typedef basic_istream<char> istream;
12178 typedef basic_ostream<char> ostream;
12179 typedef basic_iostream<char> iostream;
12180 typedef basic_stringbuf<char> stringbuf;
12181 typedef basic_istringstream<char> istringstream;
12182 typedef basic_ostringstream<char> ostringstream;
12183 typedef basic_stringstream<char> stringstream;
12184 typedef basic_filebuf<char> filebuf;
12185 typedef basic_ifstream<char> ifstream;
12186 typedef basic_ofstream<char> ofstream;
12187 typedef basic_fstream<char> fstream;
12188
12189
12190 typedef basic_ios<wchar_t> wios;
12191 typedef basic_streambuf<wchar_t> wstreambuf;
12192 typedef basic_istream<wchar_t> wistream;
12193 typedef basic_ostream<wchar_t> wostream;
12194 typedef basic_iostream<wchar_t> wiostream;
12195 typedef basic_stringbuf<wchar_t> wstringbuf;
12196 typedef basic_istringstream<wchar_t> wistringstream;
12197 typedef basic_ostringstream<wchar_t> wostringstream;
12198 typedef basic_stringstream<wchar_t> wstringstream;
12199 typedef basic_filebuf<wchar_t> wfilebuf;
12200 typedef basic_ifstream<wchar_t> wifstream;
12201 typedef basic_ofstream<wchar_t> wofstream;
12202 typedef basic_fstream<wchar_t> wfstream;
12203
12204
12205
12206 }
12207 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12208 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_pair.h" 1 3
12209 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_pair.h" 3
12210 #define _PAIR_H 1
12211
12212 namespace std __attribute__ ((__visibility__ ("default"))) {
12213
12214
12215 template<class _T1, class _T2>
12216 struct pair
12217 {
12218 typedef _T1 first_type;
12219 typedef _T2 second_type;
12220
12221 _T1 first;
12222 _T2 second;
12223
12224
12225
12226
12227
12228 pair()
12229 : first(), second() { }
12230
12231
12232 pair(const _T1& __a, const _T2& __b)
12233 : first(__a), second(__b) { }
12234
12235
12236 template<class _U1, class _U2>
12237 pair(const pair<_U1, _U2>& __p)
12238 : first(__p.first), second(__p.second) { }
12239 };
12240
12241
12242 template<class _T1, class _T2>
12243 inline bool
12244 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12245 { return __x.first == __y.first && __x.second == __y.second; }
12246
12247
12248 template<class _T1, class _T2>
12249 inline bool
12250 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12251 { return __x.first < __y.first
12252 || (!(__y.first < __x.first) && __x.second < __y.second); }
12253
12254
12255 template<class _T1, class _T2>
12256 inline bool
12257 operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12258 { return !(__x == __y); }
12259
12260
12261 template<class _T1, class _T2>
12262 inline bool
12263 operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12264 { return __y < __x; }
12265
12266
12267 template<class _T1, class _T2>
12268 inline bool
12269 operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12270 { return !(__y < __x); }
12271
12272
12273 template<class _T1, class _T2>
12274 inline bool
12275 operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12276 { return !(__x < __y); }
12277 # 142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_pair.h" 3
12278 template<class _T1, class _T2>
12279 inline pair<_T1, _T2>
12280 make_pair(_T1 __x, _T2 __y)
12281 { return pair<_T1, _T2>(__x, __y); }
12282
12283 }
12284 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12285 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 1 3
12286 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 3
12287 #define _CPP_TYPE_TRAITS_H 1
12288
12289
12290 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 3
12291 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 3
12292 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
12293
12294 template<typename _Iterator, typename _Container>
12295 class __normal_iterator;
12296
12297 }
12298
12299 namespace std __attribute__ ((__visibility__ ("default"))) {
12300
12301 namespace __detail
12302 {
12303
12304
12305 typedef char __one;
12306 typedef char __two[2];
12307
12308 template<typename _Tp>
12309 __one __test_type(int _Tp::*);
12310 template<typename _Tp>
12311 __two& __test_type(...);
12312 }
12313
12314
12315 struct __true_type { };
12316 struct __false_type { };
12317
12318 template<bool>
12319 struct __truth_type
12320 { typedef __false_type __type; };
12321
12322 template<>
12323 struct __truth_type<true>
12324 { typedef __true_type __type; };
12325
12326
12327
12328 template<class _Sp, class _Tp>
12329 struct __traitor
12330 {
12331 enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
12332 typedef typename __truth_type<__value>::__type __type;
12333 };
12334
12335
12336 template<typename, typename>
12337 struct __are_same
12338 {
12339 enum { __value = 0 };
12340 typedef __false_type __type;
12341 };
12342
12343 template<typename _Tp>
12344 struct __are_same<_Tp, _Tp>
12345 {
12346 enum { __value = 1 };
12347 typedef __true_type __type;
12348 };
12349
12350
12351 template<typename _Tp>
12352 struct __is_void
12353 {
12354 enum { __value = 0 };
12355 typedef __false_type __type;
12356 };
12357
12358 template<>
12359 struct __is_void<void>
12360 {
12361 enum { __value = 1 };
12362 typedef __true_type __type;
12363 };
12364
12365
12366
12367
12368 template<typename _Tp>
12369 struct __is_integer
12370 {
12371 enum { __value = 0 };
12372 typedef __false_type __type;
12373 };
12374
12375
12376
12377
12378 template<>
12379 struct __is_integer<bool>
12380 {
12381 enum { __value = 1 };
12382 typedef __true_type __type;
12383 };
12384
12385 template<>
12386 struct __is_integer<char>
12387 {
12388 enum { __value = 1 };
12389 typedef __true_type __type;
12390 };
12391
12392 template<>
12393 struct __is_integer<signed char>
12394 {
12395 enum { __value = 1 };
12396 typedef __true_type __type;
12397 };
12398
12399 template<>
12400 struct __is_integer<unsigned char>
12401 {
12402 enum { __value = 1 };
12403 typedef __true_type __type;
12404 };
12405
12406
12407 template<>
12408 struct __is_integer<wchar_t>
12409 {
12410 enum { __value = 1 };
12411 typedef __true_type __type;
12412 };
12413
12414
12415 template<>
12416 struct __is_integer<short>
12417 {
12418 enum { __value = 1 };
12419 typedef __true_type __type;
12420 };
12421
12422 template<>
12423 struct __is_integer<unsigned short>
12424 {
12425 enum { __value = 1 };
12426 typedef __true_type __type;
12427 };
12428
12429 template<>
12430 struct __is_integer<int>
12431 {
12432 enum { __value = 1 };
12433 typedef __true_type __type;
12434 };
12435
12436 template<>
12437 struct __is_integer<unsigned int>
12438 {
12439 enum { __value = 1 };
12440 typedef __true_type __type;
12441 };
12442
12443 template<>
12444 struct __is_integer<long>
12445 {
12446 enum { __value = 1 };
12447 typedef __true_type __type;
12448 };
12449
12450 template<>
12451 struct __is_integer<unsigned long>
12452 {
12453 enum { __value = 1 };
12454 typedef __true_type __type;
12455 };
12456
12457 template<>
12458 struct __is_integer<long long>
12459 {
12460 enum { __value = 1 };
12461 typedef __true_type __type;
12462 };
12463
12464 template<>
12465 struct __is_integer<unsigned long long>
12466 {
12467 enum { __value = 1 };
12468 typedef __true_type __type;
12469 };
12470
12471
12472
12473
12474 template<typename _Tp>
12475 struct __is_floating
12476 {
12477 enum { __value = 0 };
12478 typedef __false_type __type;
12479 };
12480
12481
12482 template<>
12483 struct __is_floating<float>
12484 {
12485 enum { __value = 1 };
12486 typedef __true_type __type;
12487 };
12488
12489 template<>
12490 struct __is_floating<double>
12491 {
12492 enum { __value = 1 };
12493 typedef __true_type __type;
12494 };
12495
12496 template<>
12497 struct __is_floating<long double>
12498 {
12499 enum { __value = 1 };
12500 typedef __true_type __type;
12501 };
12502
12503
12504
12505
12506 template<typename _Tp>
12507 struct __is_pointer
12508 {
12509 enum { __value = 0 };
12510 typedef __false_type __type;
12511 };
12512
12513 template<typename _Tp>
12514 struct __is_pointer<_Tp*>
12515 {
12516 enum { __value = 1 };
12517 typedef __true_type __type;
12518 };
12519
12520
12521
12522
12523 template<typename _Tp>
12524 struct __is_normal_iterator
12525 {
12526 enum { __value = 0 };
12527 typedef __false_type __type;
12528 };
12529
12530 template<typename _Iterator, typename _Container>
12531 struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
12532 _Container> >
12533 {
12534 enum { __value = 1 };
12535 typedef __true_type __type;
12536 };
12537
12538
12539
12540
12541 template<typename _Tp>
12542 struct __is_arithmetic
12543 : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
12544 { };
12545
12546
12547
12548
12549 template<typename _Tp>
12550 struct __is_fundamental
12551 : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
12552 { };
12553
12554
12555
12556
12557 template<typename _Tp>
12558 struct __is_scalar
12559 : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
12560 { };
12561
12562
12563 template<typename _Tp>
12564 struct __is_pod
12565 {
12566 enum
12567 {
12568 __value = (sizeof(__detail::__test_type<_Tp>(0))
12569 != sizeof(__detail::__one))
12570 };
12571 };
12572
12573
12574
12575
12576 template<typename _Tp>
12577 struct __is_empty
12578 {
12579 private:
12580 template<typename>
12581 struct __first { };
12582 template<typename _Up>
12583 struct __second
12584 : public _Up { };
12585
12586 public:
12587 enum
12588 {
12589 __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
12590 };
12591 };
12592
12593
12594
12595
12596 template<typename _Tp>
12597 struct __is_char
12598 {
12599 enum { __value = 0 };
12600 typedef __false_type __type;
12601 };
12602
12603 template<>
12604 struct __is_char<char>
12605 {
12606 enum { __value = 1 };
12607 typedef __true_type __type;
12608 };
12609
12610
12611 template<>
12612 struct __is_char<wchar_t>
12613 {
12614 enum { __value = 1 };
12615 typedef __true_type __type;
12616 };
12617
12618
12619 }
12620 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12621 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 1 3
12622 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 3
12623 #define _EXT_TYPE_TRAITS 1
12624
12625
12626 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 3
12627
12628
12629 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 1 3
12630 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 3
12631 #define _GLIBCXX_UTILITY 1
12632
12633
12634 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 3
12635
12636
12637 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 1 3
12638 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12639 #define _STL_RELOPS_H 1
12640
12641 namespace std __attribute__ ((__visibility__ ("default"))) {
12642
12643 namespace rel_ops
12644 {
12645 # 90 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12646 template <class _Tp>
12647 inline bool
12648 operator!=(const _Tp& __x, const _Tp& __y)
12649 { return !(__x == __y); }
12650 # 103 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12651 template <class _Tp>
12652 inline bool
12653 operator>(const _Tp& __x, const _Tp& __y)
12654 { return __y < __x; }
12655 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12656 template <class _Tp>
12657 inline bool
12658 operator<=(const _Tp& __x, const _Tp& __y)
12659 { return !(__y < __x); }
12660 # 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12661 template <class _Tp>
12662 inline bool
12663 operator>=(const _Tp& __x, const _Tp& __y)
12664 { return !(__x < __y); }
12665
12666 }
12667
12668 }
12669 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 2 3
12670 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 2 3
12671
12672
12673 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
12674
12675
12676 template<bool, typename>
12677 struct __enable_if
12678 { };
12679
12680 template<typename _Tp>
12681 struct __enable_if<true, _Tp>
12682 { typedef _Tp __type; };
12683
12684
12685
12686 template<bool _Cond, typename _Iftrue, typename _Iffalse>
12687 struct __conditional_type
12688 { typedef _Iftrue __type; };
12689
12690 template<typename _Iftrue, typename _Iffalse>
12691 struct __conditional_type<false, _Iftrue, _Iffalse>
12692 { typedef _Iffalse __type; };
12693
12694
12695
12696 template<typename _Tp>
12697 struct __add_unsigned
12698 {
12699 private:
12700 typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
12701
12702 public:
12703 typedef typename __if_type::__type __type;
12704 };
12705
12706 template<>
12707 struct __add_unsigned<char>
12708 { typedef unsigned char __type; };
12709
12710 template<>
12711 struct __add_unsigned<signed char>
12712 { typedef unsigned char __type; };
12713
12714 template<>
12715 struct __add_unsigned<short>
12716 { typedef unsigned short __type; };
12717
12718 template<>
12719 struct __add_unsigned<int>
12720 { typedef unsigned int __type; };
12721
12722 template<>
12723 struct __add_unsigned<long>
12724 { typedef unsigned long __type; };
12725
12726 template<>
12727 struct __add_unsigned<long long>
12728 { typedef unsigned long long __type; };
12729
12730
12731 template<>
12732 struct __add_unsigned<bool>;
12733
12734 template<>
12735 struct __add_unsigned<wchar_t>;
12736
12737
12738
12739 template<typename _Tp>
12740 struct __remove_unsigned
12741 {
12742 private:
12743 typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
12744
12745 public:
12746 typedef typename __if_type::__type __type;
12747 };
12748
12749 template<>
12750 struct __remove_unsigned<char>
12751 { typedef signed char __type; };
12752
12753 template<>
12754 struct __remove_unsigned<unsigned char>
12755 { typedef signed char __type; };
12756
12757 template<>
12758 struct __remove_unsigned<unsigned short>
12759 { typedef short __type; };
12760
12761 template<>
12762 struct __remove_unsigned<unsigned int>
12763 { typedef int __type; };
12764
12765 template<>
12766 struct __remove_unsigned<unsigned long>
12767 { typedef long __type; };
12768
12769 template<>
12770 struct __remove_unsigned<unsigned long long>
12771 { typedef long long __type; };
12772
12773
12774 template<>
12775 struct __remove_unsigned<bool>;
12776
12777 template<>
12778 struct __remove_unsigned<wchar_t>;
12779
12780 }
12781 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12782 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 1 3
12783 # 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12784 #define _ITERATOR_BASE_TYPES_H 1
12785
12786
12787 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12788
12789 namespace std __attribute__ ((__visibility__ ("default"))) {
12790 # 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12791 struct input_iterator_tag {};
12792
12793 struct output_iterator_tag {};
12794
12795 struct forward_iterator_tag : public input_iterator_tag {};
12796
12797
12798 struct bidirectional_iterator_tag : public forward_iterator_tag {};
12799
12800
12801 struct random_access_iterator_tag : public bidirectional_iterator_tag {};
12802 # 104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12803 template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
12804 typename _Pointer = _Tp*, typename _Reference = _Tp&>
12805 struct iterator
12806 {
12807
12808 typedef _Category iterator_category;
12809
12810 typedef _Tp value_type;
12811
12812 typedef _Distance difference_type;
12813
12814 typedef _Pointer pointer;
12815
12816 typedef _Reference reference;
12817 };
12818
12819
12820
12821
12822
12823
12824
12825 template<typename _Iterator>
12826 struct iterator_traits
12827 {
12828 typedef typename _Iterator::iterator_category iterator_category;
12829 typedef typename _Iterator::value_type value_type;
12830 typedef typename _Iterator::difference_type difference_type;
12831 typedef typename _Iterator::pointer pointer;
12832 typedef typename _Iterator::reference reference;
12833 };
12834
12835 template<typename _Tp>
12836 struct iterator_traits<_Tp*>
12837 {
12838 typedef random_access_iterator_tag iterator_category;
12839 typedef _Tp value_type;
12840 typedef ptrdiff_t difference_type;
12841 typedef _Tp* pointer;
12842 typedef _Tp& reference;
12843 };
12844
12845 template<typename _Tp>
12846 struct iterator_traits<const _Tp*>
12847 {
12848 typedef random_access_iterator_tag iterator_category;
12849 typedef _Tp value_type;
12850 typedef ptrdiff_t difference_type;
12851 typedef const _Tp* pointer;
12852 typedef const _Tp& reference;
12853 };
12854
12855
12856
12857
12858
12859
12860
12861 template<typename _Iter>
12862 inline typename iterator_traits<_Iter>::iterator_category
12863 __iterator_category(const _Iter&)
12864 { return typename iterator_traits<_Iter>::iterator_category(); }
12865
12866 }
12867 # 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12868 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3
12869 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12870 #define _ITERATOR_BASE_FUNCS_H 1
12871
12872
12873 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12874 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 1 3
12875 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 3
12876 #define _CONCEPT_CHECK_H 1
12877
12878
12879 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 3
12880 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 3
12881 #define __glibcxx_function_requires(...)
12882 #define __glibcxx_class_requires(_a,_b)
12883 #define __glibcxx_class_requires2(_a,_b,_c)
12884 #define __glibcxx_class_requires3(_a,_b,_c,_d)
12885 #define __glibcxx_class_requires4(_a,_b,_c,_d,_e)
12886 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3
12887
12888 namespace std __attribute__ ((__visibility__ ("default"))) {
12889
12890 template<typename _InputIterator>
12891 inline typename iterator_traits<_InputIterator>::difference_type
12892 __distance(_InputIterator __first, _InputIterator __last,
12893 input_iterator_tag)
12894 {
12895
12896
12897
12898 typename iterator_traits<_InputIterator>::difference_type __n = 0;
12899 while (__first != __last)
12900 {
12901 ++__first;
12902 ++__n;
12903 }
12904 return __n;
12905 }
12906
12907 template<typename _RandomAccessIterator>
12908 inline typename iterator_traits<_RandomAccessIterator>::difference_type
12909 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
12910 random_access_iterator_tag)
12911 {
12912
12913
12914
12915 return __last - __first;
12916 }
12917 # 113 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12918 template<typename _InputIterator>
12919 inline typename iterator_traits<_InputIterator>::difference_type
12920 distance(_InputIterator __first, _InputIterator __last)
12921 {
12922
12923 return std::__distance(__first, __last,
12924 std::__iterator_category(__first));
12925 }
12926
12927 template<typename _InputIterator, typename _Distance>
12928 inline void
12929 __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
12930 {
12931
12932
12933 while (__n--)
12934 ++__i;
12935 }
12936
12937 template<typename _BidirectionalIterator, typename _Distance>
12938 inline void
12939 __advance(_BidirectionalIterator& __i, _Distance __n,
12940 bidirectional_iterator_tag)
12941 {
12942
12943
12944
12945 if (__n > 0)
12946 while (__n--)
12947 ++__i;
12948 else
12949 while (__n++)
12950 --__i;
12951 }
12952
12953 template<typename _RandomAccessIterator, typename _Distance>
12954 inline void
12955 __advance(_RandomAccessIterator& __i, _Distance __n,
12956 random_access_iterator_tag)
12957 {
12958
12959
12960
12961 __i += __n;
12962 }
12963 # 171 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12964 template<typename _InputIterator, typename _Distance>
12965 inline void
12966 advance(_InputIterator& __i, _Distance __n)
12967 {
12968
12969 typename iterator_traits<_InputIterator>::difference_type __d = __n;
12970 std::__advance(__i, __d, std::__iterator_category(__i));
12971 }
12972
12973 }
12974 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12975 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 1 3
12976 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
12977 #define _ITERATOR_H 1
12978
12979
12980
12981
12982 namespace std __attribute__ ((__visibility__ ("default"))) {
12983 # 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
12984 template<typename _Iterator>
12985 class reverse_iterator
12986 : public iterator<typename iterator_traits<_Iterator>::iterator_category,
12987 typename iterator_traits<_Iterator>::value_type,
12988 typename iterator_traits<_Iterator>::difference_type,
12989 typename iterator_traits<_Iterator>::pointer,
12990 typename iterator_traits<_Iterator>::reference>
12991 {
12992 protected:
12993 _Iterator current;
12994
12995 public:
12996 typedef _Iterator iterator_type;
12997 typedef typename iterator_traits<_Iterator>::difference_type
12998 difference_type;
12999 typedef typename iterator_traits<_Iterator>::reference reference;
13000 typedef typename iterator_traits<_Iterator>::pointer pointer;
13001
13002 public:
13003
13004
13005
13006
13007
13008
13009 reverse_iterator() : current() { }
13010
13011
13012
13013
13014 explicit
13015 reverse_iterator(iterator_type __x) : current(__x) { }
13016
13017
13018
13019
13020 reverse_iterator(const reverse_iterator& __x)
13021 : current(__x.current) { }
13022
13023
13024
13025
13026
13027 template<typename _Iter>
13028 reverse_iterator(const reverse_iterator<_Iter>& __x)
13029 : current(__x.base()) { }
13030
13031
13032
13033
13034 iterator_type
13035 base() const
13036 { return current; }
13037
13038
13039
13040
13041
13042
13043 reference
13044 operator*() const
13045 {
13046 _Iterator __tmp = current;
13047 return *--__tmp;
13048 }
13049
13050
13051
13052
13053
13054
13055 pointer
13056 operator->() const
13057 { return &(operator*()); }
13058
13059
13060
13061
13062
13063
13064 reverse_iterator&
13065 operator++()
13066 {
13067 --current;
13068 return *this;
13069 }
13070
13071
13072
13073
13074
13075
13076 reverse_iterator
13077 operator++(int)
13078 {
13079 reverse_iterator __tmp = *this;
13080 --current;
13081 return __tmp;
13082 }
13083
13084
13085
13086
13087
13088
13089 reverse_iterator&
13090 operator--()
13091 {
13092 ++current;
13093 return *this;
13094 }
13095
13096
13097
13098
13099
13100
13101 reverse_iterator
13102 operator--(int)
13103 {
13104 reverse_iterator __tmp = *this;
13105 ++current;
13106 return __tmp;
13107 }
13108
13109
13110
13111
13112
13113
13114 reverse_iterator
13115 operator+(difference_type __n) const
13116 { return reverse_iterator(current - __n); }
13117
13118
13119
13120
13121
13122
13123 reverse_iterator&
13124 operator+=(difference_type __n)
13125 {
13126 current -= __n;
13127 return *this;
13128 }
13129
13130
13131
13132
13133
13134
13135 reverse_iterator
13136 operator-(difference_type __n) const
13137 { return reverse_iterator(current + __n); }
13138
13139
13140
13141
13142
13143
13144 reverse_iterator&
13145 operator-=(difference_type __n)
13146 {
13147 current += __n;
13148 return *this;
13149 }
13150
13151
13152
13153
13154
13155
13156 reference
13157 operator[](difference_type __n) const
13158 { return *(*this + __n); }
13159 };
13160 # 280 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13161 template<typename _Iterator>
13162 inline bool
13163 operator==(const reverse_iterator<_Iterator>& __x,
13164 const reverse_iterator<_Iterator>& __y)
13165 { return __x.base() == __y.base(); }
13166
13167 template<typename _Iterator>
13168 inline bool
13169 operator<(const reverse_iterator<_Iterator>& __x,
13170 const reverse_iterator<_Iterator>& __y)
13171 { return __y.base() < __x.base(); }
13172
13173 template<typename _Iterator>
13174 inline bool
13175 operator!=(const reverse_iterator<_Iterator>& __x,
13176 const reverse_iterator<_Iterator>& __y)
13177 { return !(__x == __y); }
13178
13179 template<typename _Iterator>
13180 inline bool
13181 operator>(const reverse_iterator<_Iterator>& __x,
13182 const reverse_iterator<_Iterator>& __y)
13183 { return __y < __x; }
13184
13185 template<typename _Iterator>
13186 inline bool
13187 operator<=(const reverse_iterator<_Iterator>& __x,
13188 const reverse_iterator<_Iterator>& __y)
13189 { return !(__y < __x); }
13190
13191 template<typename _Iterator>
13192 inline bool
13193 operator>=(const reverse_iterator<_Iterator>& __x,
13194 const reverse_iterator<_Iterator>& __y)
13195 { return !(__x < __y); }
13196
13197 template<typename _Iterator>
13198 inline typename reverse_iterator<_Iterator>::difference_type
13199 operator-(const reverse_iterator<_Iterator>& __x,
13200 const reverse_iterator<_Iterator>& __y)
13201 { return __y.base() - __x.base(); }
13202
13203 template<typename _Iterator>
13204 inline reverse_iterator<_Iterator>
13205 operator+(typename reverse_iterator<_Iterator>::difference_type __n,
13206 const reverse_iterator<_Iterator>& __x)
13207 { return reverse_iterator<_Iterator>(__x.base() - __n); }
13208
13209
13210
13211 template<typename _IteratorL, typename _IteratorR>
13212 inline bool
13213 operator==(const reverse_iterator<_IteratorL>& __x,
13214 const reverse_iterator<_IteratorR>& __y)
13215 { return __x.base() == __y.base(); }
13216
13217 template<typename _IteratorL, typename _IteratorR>
13218 inline bool
13219 operator<(const reverse_iterator<_IteratorL>& __x,
13220 const reverse_iterator<_IteratorR>& __y)
13221 { return __y.base() < __x.base(); }
13222
13223 template<typename _IteratorL, typename _IteratorR>
13224 inline bool
13225 operator!=(const reverse_iterator<_IteratorL>& __x,
13226 const reverse_iterator<_IteratorR>& __y)
13227 { return !(__x == __y); }
13228
13229 template<typename _IteratorL, typename _IteratorR>
13230 inline bool
13231 operator>(const reverse_iterator<_IteratorL>& __x,
13232 const reverse_iterator<_IteratorR>& __y)
13233 { return __y < __x; }
13234
13235 template<typename _IteratorL, typename _IteratorR>
13236 inline bool
13237 operator<=(const reverse_iterator<_IteratorL>& __x,
13238 const reverse_iterator<_IteratorR>& __y)
13239 { return !(__y < __x); }
13240
13241 template<typename _IteratorL, typename _IteratorR>
13242 inline bool
13243 operator>=(const reverse_iterator<_IteratorL>& __x,
13244 const reverse_iterator<_IteratorR>& __y)
13245 { return !(__x < __y); }
13246
13247 template<typename _IteratorL, typename _IteratorR>
13248 inline typename reverse_iterator<_IteratorL>::difference_type
13249 operator-(const reverse_iterator<_IteratorL>& __x,
13250 const reverse_iterator<_IteratorR>& __y)
13251 { return __y.base() - __x.base(); }
13252 # 384 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13253 template<typename _Container>
13254 class back_insert_iterator
13255 : public iterator<output_iterator_tag, void, void, void, void>
13256 {
13257 protected:
13258 _Container* container;
13259
13260 public:
13261
13262 typedef _Container container_type;
13263
13264
13265 explicit
13266 back_insert_iterator(_Container& __x) : container(&__x) { }
13267 # 410 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13268 back_insert_iterator&
13269 operator=(typename _Container::const_reference __value)
13270 {
13271 container->push_back(__value);
13272 return *this;
13273 }
13274
13275
13276 back_insert_iterator&
13277 operator*()
13278 { return *this; }
13279
13280
13281 back_insert_iterator&
13282 operator++()
13283 { return *this; }
13284
13285
13286 back_insert_iterator
13287 operator++(int)
13288 { return *this; }
13289 };
13290 # 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13291 template<typename _Container>
13292 inline back_insert_iterator<_Container>
13293 back_inserter(_Container& __x)
13294 { return back_insert_iterator<_Container>(__x); }
13295 # 459 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13296 template<typename _Container>
13297 class front_insert_iterator
13298 : public iterator<output_iterator_tag, void, void, void, void>
13299 {
13300 protected:
13301 _Container* container;
13302
13303 public:
13304
13305 typedef _Container container_type;
13306
13307
13308 explicit front_insert_iterator(_Container& __x) : container(&__x) { }
13309 # 484 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13310 front_insert_iterator&
13311 operator=(typename _Container::const_reference __value)
13312 {
13313 container->push_front(__value);
13314 return *this;
13315 }
13316
13317
13318 front_insert_iterator&
13319 operator*()
13320 { return *this; }
13321
13322
13323 front_insert_iterator&
13324 operator++()
13325 { return *this; }
13326
13327
13328 front_insert_iterator
13329 operator++(int)
13330 { return *this; }
13331 };
13332 # 518 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13333 template<typename _Container>
13334 inline front_insert_iterator<_Container>
13335 front_inserter(_Container& __x)
13336 { return front_insert_iterator<_Container>(__x); }
13337 # 537 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13338 template<typename _Container>
13339 class insert_iterator
13340 : public iterator<output_iterator_tag, void, void, void, void>
13341 {
13342 protected:
13343 _Container* container;
13344 typename _Container::iterator iter;
13345
13346 public:
13347
13348 typedef _Container container_type;
13349
13350
13351
13352
13353
13354 insert_iterator(_Container& __x, typename _Container::iterator __i)
13355 : container(&__x), iter(__i) {}
13356 # 579 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13357 insert_iterator&
13358 operator=(const typename _Container::const_reference __value)
13359 {
13360 iter = container->insert(iter, __value);
13361 ++iter;
13362 return *this;
13363 }
13364
13365
13366 insert_iterator&
13367 operator*()
13368 { return *this; }
13369
13370
13371 insert_iterator&
13372 operator++()
13373 { return *this; }
13374
13375
13376 insert_iterator&
13377 operator++(int)
13378 { return *this; }
13379 };
13380 # 614 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13381 template<typename _Container, typename _Iterator>
13382 inline insert_iterator<_Container>
13383 inserter(_Container& __x, _Iterator __i)
13384 {
13385 return insert_iterator<_Container>(__x,
13386 typename _Container::iterator(__i));
13387 }
13388
13389 }
13390
13391 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
13392 # 633 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13393 using std::iterator_traits;
13394 using std::iterator;
13395 template<typename _Iterator, typename _Container>
13396 class __normal_iterator
13397 {
13398 protected:
13399 _Iterator _M_current;
13400
13401 public:
13402 typedef typename iterator_traits<_Iterator>::iterator_category
13403 iterator_category;
13404 typedef typename iterator_traits<_Iterator>::value_type value_type;
13405 typedef typename iterator_traits<_Iterator>::difference_type
13406 difference_type;
13407 typedef typename iterator_traits<_Iterator>::reference reference;
13408 typedef typename iterator_traits<_Iterator>::pointer pointer;
13409
13410 __normal_iterator() : _M_current(_Iterator()) { }
13411
13412 explicit
13413 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
13414
13415
13416 template<typename _Iter>
13417 __normal_iterator(const __normal_iterator<_Iter,
13418 typename __enable_if<
13419 (std::__are_same<_Iter, typename _Container::pointer>::__value),
13420 _Container>::__type>& __i)
13421 : _M_current(__i.base()) { }
13422
13423
13424 reference
13425 operator*() const
13426 { return *_M_current; }
13427
13428 pointer
13429 operator->() const
13430 { return _M_current; }
13431
13432 __normal_iterator&
13433 operator++()
13434 {
13435 ++_M_current;
13436 return *this;
13437 }
13438
13439 __normal_iterator
13440 operator++(int)
13441 { return __normal_iterator(_M_current++); }
13442
13443
13444 __normal_iterator&
13445 operator--()
13446 {
13447 --_M_current;
13448 return *this;
13449 }
13450
13451 __normal_iterator
13452 operator--(int)
13453 { return __normal_iterator(_M_current--); }
13454
13455
13456 reference
13457 operator[](const difference_type& __n) const
13458 { return _M_current[__n]; }
13459
13460 __normal_iterator&
13461 operator+=(const difference_type& __n)
13462 { _M_current += __n; return *this; }
13463
13464 __normal_iterator
13465 operator+(const difference_type& __n) const
13466 { return __normal_iterator(_M_current + __n); }
13467
13468 __normal_iterator&
13469 operator-=(const difference_type& __n)
13470 { _M_current -= __n; return *this; }
13471
13472 __normal_iterator
13473 operator-(const difference_type& __n) const
13474 { return __normal_iterator(_M_current - __n); }
13475
13476 const _Iterator&
13477 base() const
13478 { return _M_current; }
13479 };
13480 # 730 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13481 template<typename _IteratorL, typename _IteratorR, typename _Container>
13482 inline bool
13483 operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
13484 const __normal_iterator<_IteratorR, _Container>& __rhs)
13485 { return __lhs.base() == __rhs.base(); }
13486
13487 template<typename _Iterator, typename _Container>
13488 inline bool
13489 operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
13490 const __normal_iterator<_Iterator, _Container>& __rhs)
13491 { return __lhs.base() == __rhs.base(); }
13492
13493 template<typename _IteratorL, typename _IteratorR, typename _Container>
13494 inline bool
13495 operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
13496 const __normal_iterator<_IteratorR, _Container>& __rhs)
13497 { return __lhs.base() != __rhs.base(); }
13498
13499 template<typename _Iterator, typename _Container>
13500 inline bool
13501 operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
13502 const __normal_iterator<_Iterator, _Container>& __rhs)
13503 { return __lhs.base() != __rhs.base(); }
13504
13505
13506 template<typename _IteratorL, typename _IteratorR, typename _Container>
13507 inline bool
13508 operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
13509 const __normal_iterator<_IteratorR, _Container>& __rhs)
13510 { return __lhs.base() < __rhs.base(); }
13511
13512 template<typename _Iterator, typename _Container>
13513 inline bool
13514 operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
13515 const __normal_iterator<_Iterator, _Container>& __rhs)
13516 { return __lhs.base() < __rhs.base(); }
13517
13518 template<typename _IteratorL, typename _IteratorR, typename _Container>
13519 inline bool
13520 operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
13521 const __normal_iterator<_IteratorR, _Container>& __rhs)
13522 { return __lhs.base() > __rhs.base(); }
13523
13524 template<typename _Iterator, typename _Container>
13525 inline bool
13526 operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
13527 const __normal_iterator<_Iterator, _Container>& __rhs)
13528 { return __lhs.base() > __rhs.base(); }
13529
13530 template<typename _IteratorL, typename _IteratorR, typename _Container>
13531 inline bool
13532 operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
13533 const __normal_iterator<_IteratorR, _Container>& __rhs)
13534 { return __lhs.base() <= __rhs.base(); }
13535
13536 template<typename _Iterator, typename _Container>
13537 inline bool
13538 operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
13539 const __normal_iterator<_Iterator, _Container>& __rhs)
13540 { return __lhs.base() <= __rhs.base(); }
13541
13542 template<typename _IteratorL, typename _IteratorR, typename _Container>
13543 inline bool
13544 operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
13545 const __normal_iterator<_IteratorR, _Container>& __rhs)
13546 { return __lhs.base() >= __rhs.base(); }
13547
13548 template<typename _Iterator, typename _Container>
13549 inline bool
13550 operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
13551 const __normal_iterator<_Iterator, _Container>& __rhs)
13552 { return __lhs.base() >= __rhs.base(); }
13553
13554
13555
13556
13557
13558 template<typename _IteratorL, typename _IteratorR, typename _Container>
13559 inline typename __normal_iterator<_IteratorL, _Container>::difference_type
13560 operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
13561 const __normal_iterator<_IteratorR, _Container>& __rhs)
13562 { return __lhs.base() - __rhs.base(); }
13563
13564 template<typename _Iterator, typename _Container>
13565 inline typename __normal_iterator<_Iterator, _Container>::difference_type
13566 operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
13567 const __normal_iterator<_Iterator, _Container>& __rhs)
13568 { return __lhs.base() - __rhs.base(); }
13569
13570 template<typename _Iterator, typename _Container>
13571 inline __normal_iterator<_Iterator, _Container>
13572 operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
13573 __n, const __normal_iterator<_Iterator, _Container>& __i)
13574 { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
13575
13576 }
13577 # 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
13578
13579 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/debug/debug.h" 1 3
13580 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/debug/debug.h" 3
13581 #define _GLIBCXX_DEBUG_MACRO_SWITCH_H 1
13582 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/debug/debug.h" 3
13583 namespace std
13584 {
13585 namespace __debug { }
13586 }
13587
13588 namespace __gnu_cxx
13589 {
13590 namespace __debug { };
13591 }
13592
13593 namespace __gnu_debug
13594 {
13595 using namespace std::__debug;
13596 using namespace __gnu_cxx::__debug;
13597 }
13598
13599
13600
13601 #define _GLIBCXX_DEBUG_ASSERT(_Condition)
13602 #define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
13603 #define _GLIBCXX_DEBUG_ONLY(_Statement) ;
13604 #define __glibcxx_requires_cond(_Cond,_Msg)
13605 #define __glibcxx_requires_valid_range(_First,_Last)
13606 #define __glibcxx_requires_sorted(_First,_Last)
13607 #define __glibcxx_requires_sorted_pred(_First,_Last,_Pred)
13608 #define __glibcxx_requires_partitioned(_First,_Last,_Value)
13609 #define __glibcxx_requires_partitioned_pred(_First,_Last,_Value,_Pred)
13610 #define __glibcxx_requires_heap(_First,_Last)
13611 #define __glibcxx_requires_heap_pred(_First,_Last,_Pred)
13612 #define __glibcxx_requires_nonempty()
13613 #define __glibcxx_requires_string(_String)
13614 #define __glibcxx_requires_string_len(_String,_Len)
13615 #define __glibcxx_requires_subscript(_N)
13616 # 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
13617
13618 namespace std __attribute__ ((__visibility__ ("default"))) {
13619 # 91 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13620 template<typename _Tp>
13621 inline void
13622 swap(_Tp& __a, _Tp& __b)
13623 {
13624
13625
13626
13627 _Tp __tmp = __a;
13628 __a = __b;
13629 __b = __tmp;
13630 }
13631
13632
13633
13634
13635 template<bool _BoolType>
13636 struct __iter_swap
13637 {
13638 template<typename _ForwardIterator1, typename _ForwardIterator2>
13639 static void
13640 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
13641 {
13642 typedef typename iterator_traits<_ForwardIterator1>::value_type
13643 _ValueType1;
13644 _ValueType1 __tmp = *__a;
13645 *__a = *__b;
13646 *__b = __tmp;
13647 }
13648 };
13649
13650 template<>
13651 struct __iter_swap<true>
13652 {
13653 template<typename _ForwardIterator1, typename _ForwardIterator2>
13654 static void
13655 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
13656 {
13657 swap(*__a, *__b);
13658 }
13659 };
13660 # 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13661 template<typename _ForwardIterator1, typename _ForwardIterator2>
13662 inline void
13663 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
13664 {
13665 typedef typename iterator_traits<_ForwardIterator1>::value_type
13666 _ValueType1;
13667 typedef typename iterator_traits<_ForwardIterator2>::value_type
13668 _ValueType2;
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680 typedef typename iterator_traits<_ForwardIterator1>::reference
13681 _ReferenceType1;
13682 typedef typename iterator_traits<_ForwardIterator2>::reference
13683 _ReferenceType2;
13684 std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
13685 __are_same<_ValueType1 &, _ReferenceType1>::__value &&
13686 __are_same<_ValueType2 &, _ReferenceType2>::__value>::
13687 iter_swap(__a, __b);
13688 }
13689 # 180 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13690 template<typename _Tp>
13691 inline const _Tp&
13692 min(const _Tp& __a, const _Tp& __b)
13693 {
13694
13695
13696
13697 if (__b < __a)
13698 return __b;
13699 return __a;
13700 }
13701 # 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13702 template<typename _Tp>
13703 inline const _Tp&
13704 max(const _Tp& __a, const _Tp& __b)
13705 {
13706
13707
13708
13709 if (__a < __b)
13710 return __b;
13711 return __a;
13712 }
13713 # 224 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13714 template<typename _Tp, typename _Compare>
13715 inline const _Tp&
13716 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
13717 {
13718
13719 if (__comp(__b, __a))
13720 return __b;
13721 return __a;
13722 }
13723 # 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13724 template<typename _Tp, typename _Compare>
13725 inline const _Tp&
13726 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
13727 {
13728
13729 if (__comp(__a, __b))
13730 return __b;
13731 return __a;
13732 }
13733
13734
13735
13736
13737
13738
13739
13740 template<bool, typename>
13741 struct __copy
13742 {
13743 template<typename _II, typename _OI>
13744 static _OI
13745 copy(_II __first, _II __last, _OI __result)
13746 {
13747 for (; __first != __last; ++__result, ++__first)
13748 *__result = *__first;
13749 return __result;
13750 }
13751 };
13752
13753 template<bool _BoolType>
13754 struct __copy<_BoolType, random_access_iterator_tag>
13755 {
13756 template<typename _II, typename _OI>
13757 static _OI
13758 copy(_II __first, _II __last, _OI __result)
13759 {
13760 typedef typename iterator_traits<_II>::difference_type _Distance;
13761 for(_Distance __n = __last - __first; __n > 0; --__n)
13762 {
13763 *__result = *__first;
13764 ++__first;
13765 ++__result;
13766 }
13767 return __result;
13768 }
13769 };
13770
13771 template<>
13772 struct __copy<true, random_access_iterator_tag>
13773 {
13774 template<typename _Tp>
13775 static _Tp*
13776 copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
13777 {
13778 std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
13779 return __result + (__last - __first);
13780 }
13781 };
13782
13783 template<typename _II, typename _OI>
13784 inline _OI
13785 __copy_aux(_II __first, _II __last, _OI __result)
13786 {
13787 typedef typename iterator_traits<_II>::value_type _ValueTypeI;
13788 typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
13789 typedef typename iterator_traits<_II>::iterator_category _Category;
13790 const bool __simple = (__is_scalar<_ValueTypeI>::__value
13791 && __is_pointer<_II>::__value
13792 && __is_pointer<_OI>::__value
13793 && __are_same<_ValueTypeI, _ValueTypeO>::__value);
13794
13795 return std::__copy<__simple, _Category>::copy(__first, __last, __result);
13796 }
13797
13798
13799 template<typename _CharT>
13800 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
13801 ostreambuf_iterator<_CharT> >::__type
13802 __copy_aux(_CharT*, _CharT*, ostreambuf_iterator<_CharT>);
13803
13804 template<typename _CharT>
13805 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
13806 ostreambuf_iterator<_CharT> >::__type
13807 __copy_aux(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT>);
13808
13809 template<typename _CharT>
13810 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT*>::__type
13811 __copy_aux(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
13812 _CharT*);
13813
13814 template<bool, bool>
13815 struct __copy_normal
13816 {
13817 template<typename _II, typename _OI>
13818 static _OI
13819 __copy_n(_II __first, _II __last, _OI __result)
13820 { return std::__copy_aux(__first, __last, __result); }
13821 };
13822
13823 template<>
13824 struct __copy_normal<true, false>
13825 {
13826 template<typename _II, typename _OI>
13827 static _OI
13828 __copy_n(_II __first, _II __last, _OI __result)
13829 { return std::__copy_aux(__first.base(), __last.base(), __result); }
13830 };
13831
13832 template<>
13833 struct __copy_normal<false, true>
13834 {
13835 template<typename _II, typename _OI>
13836 static _OI
13837 __copy_n(_II __first, _II __last, _OI __result)
13838 { return _OI(std::__copy_aux(__first, __last, __result.base())); }
13839 };
13840
13841 template<>
13842 struct __copy_normal<true, true>
13843 {
13844 template<typename _II, typename _OI>
13845 static _OI
13846 __copy_n(_II __first, _II __last, _OI __result)
13847 { return _OI(std::__copy_aux(__first.base(), __last.base(),
13848 __result.base())); }
13849 };
13850 # 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13851 template<typename _InputIterator, typename _OutputIterator>
13852 inline _OutputIterator
13853 copy(_InputIterator __first, _InputIterator __last,
13854 _OutputIterator __result)
13855 {
13856
13857
13858
13859
13860 ;
13861
13862 const bool __in = __is_normal_iterator<_InputIterator>::__value;
13863 const bool __out = __is_normal_iterator<_OutputIterator>::__value;
13864 return std::__copy_normal<__in, __out>::__copy_n(__first, __last,
13865 __result);
13866 }
13867
13868
13869 template<typename _CharT>
13870 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
13871 ostreambuf_iterator<_CharT> >::__type
13872 copy(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
13873 ostreambuf_iterator<_CharT>);
13874
13875 template<bool, typename>
13876 struct __copy_backward
13877 {
13878 template<typename _BI1, typename _BI2>
13879 static _BI2
13880 __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
13881 {
13882 while (__first != __last)
13883 *--__result = *--__last;
13884 return __result;
13885 }
13886 };
13887
13888 template<bool _BoolType>
13889 struct __copy_backward<_BoolType, random_access_iterator_tag>
13890 {
13891 template<typename _BI1, typename _BI2>
13892 static _BI2
13893 __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
13894 {
13895 typename iterator_traits<_BI1>::difference_type __n;
13896 for (__n = __last - __first; __n > 0; --__n)
13897 *--__result = *--__last;
13898 return __result;
13899 }
13900 };
13901
13902 template<>
13903 struct __copy_backward<true, random_access_iterator_tag>
13904 {
13905 template<typename _Tp>
13906 static _Tp*
13907 __copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
13908 {
13909 const ptrdiff_t _Num = __last - __first;
13910 std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
13911 return __result - _Num;
13912 }
13913 };
13914
13915 template<typename _BI1, typename _BI2>
13916 inline _BI2
13917 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
13918 {
13919 typedef typename iterator_traits<_BI1>::value_type _ValueType1;
13920 typedef typename iterator_traits<_BI2>::value_type _ValueType2;
13921 typedef typename iterator_traits<_BI1>::iterator_category _Category;
13922 const bool __simple = (__is_scalar<_ValueType1>::__value
13923 && __is_pointer<_BI1>::__value
13924 && __is_pointer<_BI2>::__value
13925 && __are_same<_ValueType1, _ValueType2>::__value);
13926
13927 return std::__copy_backward<__simple, _Category>::__copy_b(__first,
13928 __last,
13929 __result);
13930 }
13931
13932 template<bool, bool>
13933 struct __copy_backward_normal
13934 {
13935 template<typename _BI1, typename _BI2>
13936 static _BI2
13937 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13938 { return std::__copy_backward_aux(__first, __last, __result); }
13939 };
13940
13941 template<>
13942 struct __copy_backward_normal<true, false>
13943 {
13944 template<typename _BI1, typename _BI2>
13945 static _BI2
13946 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13947 { return std::__copy_backward_aux(__first.base(), __last.base(),
13948 __result); }
13949 };
13950
13951 template<>
13952 struct __copy_backward_normal<false, true>
13953 {
13954 template<typename _BI1, typename _BI2>
13955 static _BI2
13956 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13957 { return _BI2(std::__copy_backward_aux(__first, __last,
13958 __result.base())); }
13959 };
13960
13961 template<>
13962 struct __copy_backward_normal<true, true>
13963 {
13964 template<typename _BI1, typename _BI2>
13965 static _BI2
13966 __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13967 { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
13968 __result.base())); }
13969 };
13970 # 524 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13971 template <typename _BI1, typename _BI2>
13972 inline _BI2
13973 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
13974 {
13975
13976
13977
13978
13979
13980
13981 ;
13982
13983 const bool __bi1 = __is_normal_iterator<_BI1>::__value;
13984 const bool __bi2 = __is_normal_iterator<_BI2>::__value;
13985 return std::__copy_backward_normal<__bi1, __bi2>::__copy_b_n(__first,
13986 __last,
13987 __result);
13988 }
13989
13990 template<bool>
13991 struct __fill
13992 {
13993 template<typename _ForwardIterator, typename _Tp>
13994 static void
13995 fill(_ForwardIterator __first, _ForwardIterator __last,
13996 const _Tp& __value)
13997 {
13998 for (; __first != __last; ++__first)
13999 *__first = __value;
14000 }
14001 };
14002
14003 template<>
14004 struct __fill<true>
14005 {
14006 template<typename _ForwardIterator, typename _Tp>
14007 static void
14008 fill(_ForwardIterator __first, _ForwardIterator __last,
14009 const _Tp& __value)
14010 {
14011 const _Tp __tmp = __value;
14012 for (; __first != __last; ++__first)
14013 *__first = __tmp;
14014 }
14015 };
14016 # 581 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14017 template<typename _ForwardIterator, typename _Tp>
14018 void
14019 fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
14020 {
14021
14022
14023
14024 ;
14025
14026 const bool __scalar = __is_scalar<_Tp>::__value;
14027 std::__fill<__scalar>::fill(__first, __last, __value);
14028 }
14029
14030
14031 inline void
14032 fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
14033 {
14034 ;
14035 const unsigned char __tmp = __c;
14036 std::memset(__first, __tmp, __last - __first);
14037 }
14038
14039 inline void
14040 fill(signed char* __first, signed char* __last, const signed char& __c)
14041 {
14042 ;
14043 const signed char __tmp = __c;
14044 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
14045 }
14046
14047 inline void
14048 fill(char* __first, char* __last, const char& __c)
14049 {
14050 ;
14051 const char __tmp = __c;
14052 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
14053 }
14054
14055 template<bool>
14056 struct __fill_n
14057 {
14058 template<typename _OutputIterator, typename _Size, typename _Tp>
14059 static _OutputIterator
14060 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
14061 {
14062 for (; __n > 0; --__n, ++__first)
14063 *__first = __value;
14064 return __first;
14065 }
14066 };
14067
14068 template<>
14069 struct __fill_n<true>
14070 {
14071 template<typename _OutputIterator, typename _Size, typename _Tp>
14072 static _OutputIterator
14073 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
14074 {
14075 const _Tp __tmp = __value;
14076 for (; __n > 0; --__n, ++__first)
14077 *__first = __tmp;
14078 return __first;
14079 }
14080 };
14081 # 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14082 template<typename _OutputIterator, typename _Size, typename _Tp>
14083 _OutputIterator
14084 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
14085 {
14086
14087
14088
14089 const bool __scalar = __is_scalar<_Tp>::__value;
14090 return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
14091 }
14092
14093 template<typename _Size>
14094 inline unsigned char*
14095 fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
14096 {
14097 std::fill(__first, __first + __n, __c);
14098 return __first + __n;
14099 }
14100
14101 template<typename _Size>
14102 inline signed char*
14103 fill_n(signed char* __first, _Size __n, const signed char& __c)
14104 {
14105 std::fill(__first, __first + __n, __c);
14106 return __first + __n;
14107 }
14108
14109 template<typename _Size>
14110 inline char*
14111 fill_n(char* __first, _Size __n, const char& __c)
14112 {
14113 std::fill(__first, __first + __n, __c);
14114 return __first + __n;
14115 }
14116 # 704 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14117 template<typename _InputIterator1, typename _InputIterator2>
14118 pair<_InputIterator1, _InputIterator2>
14119 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
14120 _InputIterator2 __first2)
14121 {
14122
14123
14124
14125
14126
14127
14128 ;
14129
14130 while (__first1 != __last1 && *__first1 == *__first2)
14131 {
14132 ++__first1;
14133 ++__first2;
14134 }
14135 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
14136 }
14137 # 739 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14138 template<typename _InputIterator1, typename _InputIterator2,
14139 typename _BinaryPredicate>
14140 pair<_InputIterator1, _InputIterator2>
14141 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
14142 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
14143 {
14144
14145
14146
14147 ;
14148
14149 while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
14150 {
14151 ++__first1;
14152 ++__first2;
14153 }
14154 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
14155 }
14156 # 769 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14157 template<typename _InputIterator1, typename _InputIterator2>
14158 inline bool
14159 equal(_InputIterator1 __first1, _InputIterator1 __last1,
14160 _InputIterator2 __first2)
14161 {
14162
14163
14164
14165
14166
14167
14168 ;
14169
14170 for (; __first1 != __last1; ++__first1, ++__first2)
14171 if (!(*__first1 == *__first2))
14172 return false;
14173 return true;
14174 }
14175 # 801 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14176 template<typename _InputIterator1, typename _InputIterator2,
14177 typename _BinaryPredicate>
14178 inline bool
14179 equal(_InputIterator1 __first1, _InputIterator1 __last1,
14180 _InputIterator2 __first2,
14181 _BinaryPredicate __binary_pred)
14182 {
14183
14184
14185
14186 ;
14187
14188 for (; __first1 != __last1; ++__first1, ++__first2)
14189 if (!__binary_pred(*__first1, *__first2))
14190 return false;
14191 return true;
14192 }
14193 # 833 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14194 template<typename _InputIterator1, typename _InputIterator2>
14195 bool
14196 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
14197 _InputIterator2 __first2, _InputIterator2 __last2)
14198 {
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208 ;
14209 ;
14210
14211 for (; __first1 != __last1 && __first2 != __last2;
14212 ++__first1, ++__first2)
14213 {
14214 if (*__first1 < *__first2)
14215 return true;
14216 if (*__first2 < *__first1)
14217 return false;
14218 }
14219 return __first1 == __last1 && __first2 != __last2;
14220 }
14221 # 873 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14222 template<typename _InputIterator1, typename _InputIterator2,
14223 typename _Compare>
14224 bool
14225 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
14226 _InputIterator2 __first2, _InputIterator2 __last2,
14227 _Compare __comp)
14228 {
14229
14230
14231
14232 ;
14233 ;
14234
14235 for (; __first1 != __last1 && __first2 != __last2;
14236 ++__first1, ++__first2)
14237 {
14238 if (__comp(*__first1, *__first2))
14239 return true;
14240 if (__comp(*__first2, *__first1))
14241 return false;
14242 }
14243 return __first1 == __last1 && __first2 != __last2;
14244 }
14245
14246 inline bool
14247 lexicographical_compare(const unsigned char* __first1,
14248 const unsigned char* __last1,
14249 const unsigned char* __first2,
14250 const unsigned char* __last2)
14251 {
14252 ;
14253 ;
14254
14255 const size_t __len1 = __last1 - __first1;
14256 const size_t __len2 = __last2 - __first2;
14257 const int __result = std::memcmp(__first1, __first2,
14258 std::min(__len1, __len2));
14259 return __result != 0 ? __result < 0 : __len1 < __len2;
14260 }
14261
14262 inline bool
14263 lexicographical_compare(const char* __first1, const char* __last1,
14264 const char* __first2, const char* __last2)
14265 {
14266 ;
14267 ;
14268
14269
14270 return std::lexicographical_compare((const signed char*) __first1,
14271 (const signed char*) __last1,
14272 (const signed char*) __first2,
14273 (const signed char*) __last2);
14274
14275
14276
14277
14278
14279
14280 }
14281
14282 }
14283 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
14284 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/allocator.h" 1 3
14285 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/allocator.h" 3
14286 #define _ALLOCATOR_H 1
14287
14288
14289 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 1 3
14290 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 3
14291 #define _CXX_ALLOCATOR_H 1
14292
14293
14294 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 1 3
14295 # 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 3
14296 #define _NEW_ALLOCATOR_H 1
14297
14298 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 1 3
14299 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 3
14300 #define _NEW
14301
14302
14303 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 1 3
14304 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14305 #define __EXCEPTION__
14306
14307 #pragma GCC visibility push(default)
14308
14309
14310
14311 extern "C++" {
14312
14313 namespace std
14314 {
14315 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14316 class exception
14317 {
14318 public:
14319 exception() throw() { }
14320 virtual ~exception() throw();
14321
14322
14323
14324 virtual const char* what() const throw();
14325 };
14326
14327
14328
14329 class bad_exception : public exception
14330 {
14331 public:
14332 bad_exception() throw() { }
14333
14334
14335
14336 virtual ~bad_exception() throw();
14337
14338
14339 virtual const char* what() const throw();
14340 };
14341
14342
14343 typedef void (*terminate_handler) ();
14344
14345
14346 typedef void (*unexpected_handler) ();
14347
14348
14349 terminate_handler set_terminate(terminate_handler) throw();
14350
14351
14352
14353 void terminate() __attribute__ ((__noreturn__));
14354
14355
14356 unexpected_handler set_unexpected(unexpected_handler) throw();
14357
14358
14359
14360 void unexpected() __attribute__ ((__noreturn__));
14361 # 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14362 bool uncaught_exception() throw();
14363 }
14364
14365 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
14366 # 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14367 void __verbose_terminate_handler ();
14368
14369 }
14370
14371 }
14372
14373 #pragma GCC visibility pop
14374 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 2 3
14375
14376 #pragma GCC visibility push(default)
14377
14378 extern "C++" {
14379
14380 namespace std
14381 {
14382
14383
14384
14385
14386
14387 class bad_alloc : public exception
14388 {
14389 public:
14390 bad_alloc() throw() { }
14391
14392
14393
14394 virtual ~bad_alloc() throw();
14395
14396
14397 virtual const char* what() const throw();
14398 };
14399
14400 struct nothrow_t { };
14401
14402 extern const nothrow_t nothrow;
14403
14404
14405
14406 typedef void (*new_handler)();
14407
14408
14409
14410 new_handler set_new_handler(new_handler) throw();
14411 }
14412 # 95 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 3
14413 void* operator new(std::size_t) throw (std::bad_alloc);
14414 void* operator new[](std::size_t) throw (std::bad_alloc);
14415 void operator delete(void*) throw();
14416 void operator delete[](void*) throw();
14417 void* operator new(std::size_t, const std::nothrow_t&) throw();
14418 void* operator new[](std::size_t, const std::nothrow_t&) throw();
14419 void operator delete(void*, const std::nothrow_t&) throw();
14420 void operator delete[](void*, const std::nothrow_t&) throw();
14421
14422
14423 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
14424 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
14425
14426
14427 inline void operator delete (void*, void*) throw() { }
14428 inline void operator delete[](void*, void*) throw() { }
14429
14430 }
14431
14432 #pragma GCC visibility pop
14433 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 2 3
14434
14435
14436 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
14437
14438 using std::size_t;
14439 using std::ptrdiff_t;
14440 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 3
14441 template<typename _Tp>
14442 class new_allocator
14443 {
14444 public:
14445 typedef size_t size_type;
14446 typedef ptrdiff_t difference_type;
14447 typedef _Tp* pointer;
14448 typedef const _Tp* const_pointer;
14449 typedef _Tp& reference;
14450 typedef const _Tp& const_reference;
14451 typedef _Tp value_type;
14452
14453 template<typename _Tp1>
14454 struct rebind
14455 { typedef new_allocator<_Tp1> other; };
14456
14457 new_allocator() throw() { }
14458
14459 new_allocator(const new_allocator&) throw() { }
14460
14461 template<typename _Tp1>
14462 new_allocator(const new_allocator<_Tp1>&) throw() { }
14463
14464 ~new_allocator() throw() { }
14465
14466 pointer
14467 address(reference __x) const { return &__x; }
14468
14469 const_pointer
14470 address(const_reference __x) const { return &__x; }
14471
14472
14473
14474 pointer
14475 allocate(size_type __n, const void* = 0)
14476 {
14477 if (__builtin_expect(__n > this->max_size(), false))
14478 std::__throw_bad_alloc();
14479
14480 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
14481 }
14482
14483
14484 void
14485 deallocate(pointer __p, size_type)
14486 { ::operator delete(__p); }
14487
14488 size_type
14489 max_size() const throw()
14490 { return size_t(-1) / sizeof(_Tp); }
14491
14492
14493
14494 void
14495 construct(pointer __p, const _Tp& __val)
14496 { ::new(__p) _Tp(__val); }
14497
14498 void
14499 destroy(pointer __p) { __p->~_Tp(); }
14500 };
14501
14502 template<typename _Tp>
14503 inline bool
14504 operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
14505 { return true; }
14506
14507 template<typename _Tp>
14508 inline bool
14509 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
14510 { return false; }
14511
14512 }
14513 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 2 3
14514 #define __glibcxx_base_allocator __gnu_cxx::new_allocator
14515 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/allocator.h" 2 3
14516
14517
14518
14519 namespace std __attribute__ ((__visibility__ ("default"))) {
14520
14521 template<typename _Tp>
14522 class allocator;
14523
14524
14525 template<>
14526 class allocator<void>
14527 {
14528 public:
14529 typedef size_t size_type;
14530 typedef ptrdiff_t difference_type;
14531 typedef void* pointer;
14532 typedef const void* const_pointer;
14533 typedef void value_type;
14534
14535 template<typename _Tp1>
14536 struct rebind
14537 { typedef allocator<_Tp1> other; };
14538 };
14539
14540
14541
14542
14543
14544
14545
14546 template<typename _Tp>
14547 class allocator: public __gnu_cxx::new_allocator<_Tp>
14548 {
14549 public:
14550 typedef size_t size_type;
14551 typedef ptrdiff_t difference_type;
14552 typedef _Tp* pointer;
14553 typedef const _Tp* const_pointer;
14554 typedef _Tp& reference;
14555 typedef const _Tp& const_reference;
14556 typedef _Tp value_type;
14557
14558 template<typename _Tp1>
14559 struct rebind
14560 { typedef allocator<_Tp1> other; };
14561
14562 allocator() throw() { }
14563
14564 allocator(const allocator& __a) throw()
14565 : __gnu_cxx::new_allocator<_Tp>(__a) { }
14566
14567 template<typename _Tp1>
14568 allocator(const allocator<_Tp1>&) throw() { }
14569
14570 ~allocator() throw() { }
14571
14572
14573 };
14574
14575 template<typename _T1, typename _T2>
14576 inline bool
14577 operator==(const allocator<_T1>&, const allocator<_T2>&)
14578 { return true; }
14579
14580 template<typename _Tp>
14581 inline bool
14582 operator==(const allocator<_Tp>&, const allocator<_Tp>&)
14583 { return true; }
14584
14585 template<typename _T1, typename _T2>
14586 inline bool
14587 operator!=(const allocator<_T1>&, const allocator<_T2>&)
14588 { return false; }
14589
14590 template<typename _Tp>
14591 inline bool
14592 operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
14593 { return false; }
14594
14595
14596
14597
14598
14599 extern template class allocator<char>;
14600 extern template class allocator<wchar_t>;
14601
14602
14603
14604 #undef __glibcxx_base_allocator
14605
14606
14607 template<typename _Alloc, bool = std::__is_empty<_Alloc>::__value>
14608 struct __alloc_swap
14609 { static void _S_do_it(_Alloc&, _Alloc&) { } };
14610
14611 template<typename _Alloc>
14612 struct __alloc_swap<_Alloc, false>
14613 {
14614 static void
14615 _S_do_it(_Alloc& __one, _Alloc& __two)
14616 {
14617
14618 if (__one != __two)
14619 swap(__one, __two);
14620 }
14621 };
14622
14623 }
14624 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
14625 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 1 3
14626 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14627 #define _STL_CONSTRUCT_H 1
14628
14629
14630
14631
14632 namespace std __attribute__ ((__visibility__ ("default"))) {
14633
14634
14635
14636
14637
14638
14639
14640 template<typename _T1, typename _T2>
14641 inline void
14642 _Construct(_T1* __p, const _T2& __value)
14643 {
14644
14645
14646 ::new(static_cast<void*>(__p)) _T1(__value);
14647 }
14648
14649
14650
14651
14652
14653
14654
14655 template<typename _T1>
14656 inline void
14657 _Construct(_T1* __p)
14658 {
14659
14660
14661 ::new(static_cast<void*>(__p)) _T1();
14662 }
14663
14664
14665
14666
14667
14668
14669 template<typename _Tp>
14670 inline void
14671 _Destroy(_Tp* __pointer)
14672 { __pointer->~_Tp(); }
14673 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14674 template<typename _ForwardIterator>
14675 inline void
14676 __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
14677 __false_type)
14678 {
14679 for (; __first != __last; ++__first)
14680 std::_Destroy(&*__first);
14681 }
14682 # 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14683 template<typename _ForwardIterator>
14684 inline void
14685 __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
14686 { }
14687 # 146 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14688 template<typename _ForwardIterator>
14689 inline void
14690 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
14691 {
14692 typedef typename iterator_traits<_ForwardIterator>::value_type
14693 _Value_type;
14694 typedef typename std::__is_scalar<_Value_type>::__type
14695 _Has_trivial_destructor;
14696
14697 std::__destroy_aux(__first, __last, _Has_trivial_destructor());
14698 }
14699 # 166 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14700 template <typename _Tp> class allocator;
14701
14702 template<typename _ForwardIterator, typename _Allocator>
14703 void
14704 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
14705 _Allocator __alloc)
14706 {
14707 for (; __first != __last; ++__first)
14708 __alloc.destroy(&*__first);
14709 }
14710
14711 template<typename _ForwardIterator, typename _Tp>
14712 inline void
14713 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
14714 allocator<_Tp>)
14715 {
14716 _Destroy(__first, __last);
14717 }
14718
14719 }
14720 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
14721 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 1 3
14722 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14723 #define _STL_UNINITIALIZED_H 1
14724
14725
14726
14727 namespace std __attribute__ ((__visibility__ ("default"))) {
14728
14729
14730 template<typename _InputIterator, typename _ForwardIterator>
14731 inline _ForwardIterator
14732 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
14733 _ForwardIterator __result,
14734 __true_type)
14735 { return std::copy(__first, __last, __result); }
14736
14737 template<typename _InputIterator, typename _ForwardIterator>
14738 inline _ForwardIterator
14739 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
14740 _ForwardIterator __result,
14741 __false_type)
14742 {
14743 _ForwardIterator __cur = __result;
14744 try
14745 {
14746 for (; __first != __last; ++__first, ++__cur)
14747 std::_Construct(&*__cur, *__first);
14748 return __cur;
14749 }
14750 catch(...)
14751 {
14752 std::_Destroy(__result, __cur);
14753 throw;
14754 }
14755 }
14756 # 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14757 template<typename _InputIterator, typename _ForwardIterator>
14758 inline _ForwardIterator
14759 uninitialized_copy(_InputIterator __first, _InputIterator __last,
14760 _ForwardIterator __result)
14761 {
14762 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
14763 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
14764 return std::__uninitialized_copy_aux(__first, __last, __result,
14765 _Is_POD());
14766 }
14767
14768 inline char*
14769 uninitialized_copy(const char* __first, const char* __last, char* __result)
14770 {
14771 std::memmove(__result, __first, __last - __first);
14772 return __result + (__last - __first);
14773 }
14774
14775 inline wchar_t*
14776 uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
14777 wchar_t* __result)
14778 {
14779 std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
14780 return __result + (__last - __first);
14781 }
14782
14783
14784
14785 template<typename _ForwardIterator, typename _Tp>
14786 inline void
14787 __uninitialized_fill_aux(_ForwardIterator __first,
14788 _ForwardIterator __last,
14789 const _Tp& __x, __true_type)
14790 { std::fill(__first, __last, __x); }
14791
14792 template<typename _ForwardIterator, typename _Tp>
14793 void
14794 __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
14795 const _Tp& __x, __false_type)
14796 {
14797 _ForwardIterator __cur = __first;
14798 try
14799 {
14800 for (; __cur != __last; ++__cur)
14801 std::_Construct(&*__cur, __x);
14802 }
14803 catch(...)
14804 {
14805 std::_Destroy(__first, __cur);
14806 throw;
14807 }
14808 }
14809 # 168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14810 template<typename _ForwardIterator, typename _Tp>
14811 inline void
14812 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
14813 const _Tp& __x)
14814 {
14815 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
14816 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
14817 std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
14818 }
14819
14820
14821
14822 template<typename _ForwardIterator, typename _Size, typename _Tp>
14823 inline void
14824 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
14825 const _Tp& __x, __true_type)
14826 { std::fill_n(__first, __n, __x); }
14827
14828 template<typename _ForwardIterator, typename _Size, typename _Tp>
14829 void
14830 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
14831 const _Tp& __x, __false_type)
14832 {
14833 _ForwardIterator __cur = __first;
14834 try
14835 {
14836 for (; __n > 0; --__n, ++__cur)
14837 std::_Construct(&*__cur, __x);
14838 }
14839 catch(...)
14840 {
14841 std::_Destroy(__first, __cur);
14842 throw;
14843 }
14844 }
14845 # 213 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14846 template<typename _ForwardIterator, typename _Size, typename _Tp>
14847 inline void
14848 uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
14849 {
14850 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
14851 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
14852 std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
14853 }
14854
14855
14856
14857
14858
14859
14860
14861 template<typename _InputIterator, typename _ForwardIterator,
14862 typename _Allocator>
14863 _ForwardIterator
14864 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
14865 _ForwardIterator __result,
14866 _Allocator __alloc)
14867 {
14868 _ForwardIterator __cur = __result;
14869 try
14870 {
14871 for (; __first != __last; ++__first, ++__cur)
14872 __alloc.construct(&*__cur, *__first);
14873 return __cur;
14874 }
14875 catch(...)
14876 {
14877 std::_Destroy(__result, __cur, __alloc);
14878 throw;
14879 }
14880 }
14881
14882 template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
14883 inline _ForwardIterator
14884 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
14885 _ForwardIterator __result,
14886 allocator<_Tp>)
14887 { return std::uninitialized_copy(__first, __last, __result); }
14888
14889 template<typename _ForwardIterator, typename _Tp, typename _Allocator>
14890 void
14891 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
14892 const _Tp& __x, _Allocator __alloc)
14893 {
14894 _ForwardIterator __cur = __first;
14895 try
14896 {
14897 for (; __cur != __last; ++__cur)
14898 __alloc.construct(&*__cur, __x);
14899 }
14900 catch(...)
14901 {
14902 std::_Destroy(__first, __cur, __alloc);
14903 throw;
14904 }
14905 }
14906
14907 template<typename _ForwardIterator, typename _Tp, typename _Tp2>
14908 inline void
14909 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
14910 const _Tp& __x, allocator<_Tp2>)
14911 { std::uninitialized_fill(__first, __last, __x); }
14912
14913 template<typename _ForwardIterator, typename _Size, typename _Tp,
14914 typename _Allocator>
14915 void
14916 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
14917 const _Tp& __x,
14918 _Allocator __alloc)
14919 {
14920 _ForwardIterator __cur = __first;
14921 try
14922 {
14923 for (; __n > 0; --__n, ++__cur)
14924 __alloc.construct(&*__cur, __x);
14925 }
14926 catch(...)
14927 {
14928 std::_Destroy(__first, __cur, __alloc);
14929 throw;
14930 }
14931 }
14932
14933 template<typename _ForwardIterator, typename _Size, typename _Tp,
14934 typename _Tp2>
14935 inline void
14936 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
14937 const _Tp& __x,
14938 allocator<_Tp2>)
14939 { std::uninitialized_fill_n(__first, __n, __x); }
14940 # 318 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14941 template<typename _InputIterator1, typename _InputIterator2,
14942 typename _ForwardIterator, typename _Allocator>
14943 inline _ForwardIterator
14944 __uninitialized_copy_copy(_InputIterator1 __first1,
14945 _InputIterator1 __last1,
14946 _InputIterator2 __first2,
14947 _InputIterator2 __last2,
14948 _ForwardIterator __result,
14949 _Allocator __alloc)
14950 {
14951 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
14952 __result,
14953 __alloc);
14954 try
14955 {
14956 return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
14957 }
14958 catch(...)
14959 {
14960 std::_Destroy(__result, __mid, __alloc);
14961 throw;
14962 }
14963 }
14964
14965
14966
14967
14968 template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
14969 typename _Allocator>
14970 inline _ForwardIterator
14971 __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
14972 const _Tp& __x, _InputIterator __first,
14973 _InputIterator __last,
14974 _Allocator __alloc)
14975 {
14976 std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
14977 try
14978 {
14979 return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
14980 }
14981 catch(...)
14982 {
14983 std::_Destroy(__result, __mid, __alloc);
14984 throw;
14985 }
14986 }
14987
14988
14989
14990
14991 template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
14992 typename _Allocator>
14993 inline void
14994 __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
14995 _ForwardIterator __first2,
14996 _ForwardIterator __last2, const _Tp& __x,
14997 _Allocator __alloc)
14998 {
14999 _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
15000 __first2,
15001 __alloc);
15002 try
15003 {
15004 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
15005 }
15006 catch(...)
15007 {
15008 std::_Destroy(__first2, __mid2, __alloc);
15009 throw;
15010 }
15011 }
15012
15013 }
15014 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
15015 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 1 3
15016 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15017 #define _DEQUE_H 1
15018
15019
15020
15021
15022
15023 namespace std __attribute__ ((__visibility__ ("default"))) {
15024 # 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15025 inline size_t
15026 __deque_buf_size(size_t __size)
15027 { return __size < 512 ? size_t(512 / __size) : size_t(1); }
15028 # 101 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15029 template<typename _Tp, typename _Ref, typename _Ptr>
15030 struct _Deque_iterator
15031 {
15032 typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
15033 typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
15034
15035 static size_t _S_buffer_size()
15036 { return __deque_buf_size(sizeof(_Tp)); }
15037
15038 typedef std::random_access_iterator_tag iterator_category;
15039 typedef _Tp value_type;
15040 typedef _Ptr pointer;
15041 typedef _Ref reference;
15042 typedef size_t size_type;
15043 typedef ptrdiff_t difference_type;
15044 typedef _Tp** _Map_pointer;
15045 typedef _Deque_iterator _Self;
15046
15047 _Tp* _M_cur;
15048 _Tp* _M_first;
15049 _Tp* _M_last;
15050 _Map_pointer _M_node;
15051
15052 _Deque_iterator(_Tp* __x, _Map_pointer __y)
15053 : _M_cur(__x), _M_first(*__y),
15054 _M_last(*__y + _S_buffer_size()), _M_node(__y) {}
15055
15056 _Deque_iterator() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {}
15057
15058 _Deque_iterator(const iterator& __x)
15059 : _M_cur(__x._M_cur), _M_first(__x._M_first),
15060 _M_last(__x._M_last), _M_node(__x._M_node) {}
15061
15062 reference
15063 operator*() const
15064 { return *_M_cur; }
15065
15066 pointer
15067 operator->() const
15068 { return _M_cur; }
15069
15070 _Self&
15071 operator++()
15072 {
15073 ++_M_cur;
15074 if (_M_cur == _M_last)
15075 {
15076 _M_set_node(_M_node + 1);
15077 _M_cur = _M_first;
15078 }
15079 return *this;
15080 }
15081
15082 _Self
15083 operator++(int)
15084 {
15085 _Self __tmp = *this;
15086 ++*this;
15087 return __tmp;
15088 }
15089
15090 _Self&
15091 operator--()
15092 {
15093 if (_M_cur == _M_first)
15094 {
15095 _M_set_node(_M_node - 1);
15096 _M_cur = _M_last;
15097 }
15098 --_M_cur;
15099 return *this;
15100 }
15101
15102 _Self
15103 operator--(int)
15104 {
15105 _Self __tmp = *this;
15106 --*this;
15107 return __tmp;
15108 }
15109
15110 _Self&
15111 operator+=(difference_type __n)
15112 {
15113 const difference_type __offset = __n + (_M_cur - _M_first);
15114 if (__offset >= 0 && __offset < difference_type(_S_buffer_size()))
15115 _M_cur += __n;
15116 else
15117 {
15118 const difference_type __node_offset =
15119 __offset > 0 ? __offset / difference_type(_S_buffer_size())
15120 : -difference_type((-__offset - 1)
15121 / _S_buffer_size()) - 1;
15122 _M_set_node(_M_node + __node_offset);
15123 _M_cur = _M_first + (__offset - __node_offset
15124 * difference_type(_S_buffer_size()));
15125 }
15126 return *this;
15127 }
15128
15129 _Self
15130 operator+(difference_type __n) const
15131 {
15132 _Self __tmp = *this;
15133 return __tmp += __n;
15134 }
15135
15136 _Self&
15137 operator-=(difference_type __n)
15138 { return *this += -__n; }
15139
15140 _Self
15141 operator-(difference_type __n) const
15142 {
15143 _Self __tmp = *this;
15144 return __tmp -= __n;
15145 }
15146
15147 reference
15148 operator[](difference_type __n) const
15149 { return *(*this + __n); }
15150
15151
15152
15153
15154
15155
15156
15157 void
15158 _M_set_node(_Map_pointer __new_node)
15159 {
15160 _M_node = __new_node;
15161 _M_first = *__new_node;
15162 _M_last = _M_first + difference_type(_S_buffer_size());
15163 }
15164 };
15165
15166
15167
15168
15169 template<typename _Tp, typename _Ref, typename _Ptr>
15170 inline bool
15171 operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15172 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15173 { return __x._M_cur == __y._M_cur; }
15174
15175 template<typename _Tp, typename _RefL, typename _PtrL,
15176 typename _RefR, typename _PtrR>
15177 inline bool
15178 operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15179 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15180 { return __x._M_cur == __y._M_cur; }
15181
15182 template<typename _Tp, typename _Ref, typename _Ptr>
15183 inline bool
15184 operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15185 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15186 { return !(__x == __y); }
15187
15188 template<typename _Tp, typename _RefL, typename _PtrL,
15189 typename _RefR, typename _PtrR>
15190 inline bool
15191 operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15192 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15193 { return !(__x == __y); }
15194
15195 template<typename _Tp, typename _Ref, typename _Ptr>
15196 inline bool
15197 operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15198 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15199 { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur)
15200 : (__x._M_node < __y._M_node); }
15201
15202 template<typename _Tp, typename _RefL, typename _PtrL,
15203 typename _RefR, typename _PtrR>
15204 inline bool
15205 operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15206 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15207 { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur)
15208 : (__x._M_node < __y._M_node); }
15209
15210 template<typename _Tp, typename _Ref, typename _Ptr>
15211 inline bool
15212 operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15213 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15214 { return __y < __x; }
15215
15216 template<typename _Tp, typename _RefL, typename _PtrL,
15217 typename _RefR, typename _PtrR>
15218 inline bool
15219 operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15220 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15221 { return __y < __x; }
15222
15223 template<typename _Tp, typename _Ref, typename _Ptr>
15224 inline bool
15225 operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15226 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15227 { return !(__y < __x); }
15228
15229 template<typename _Tp, typename _RefL, typename _PtrL,
15230 typename _RefR, typename _PtrR>
15231 inline bool
15232 operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15233 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15234 { return !(__y < __x); }
15235
15236 template<typename _Tp, typename _Ref, typename _Ptr>
15237 inline bool
15238 operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15239 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15240 { return !(__x < __y); }
15241
15242 template<typename _Tp, typename _RefL, typename _PtrL,
15243 typename _RefR, typename _PtrR>
15244 inline bool
15245 operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15246 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15247 { return !(__x < __y); }
15248
15249
15250
15251
15252
15253 template<typename _Tp, typename _Ref, typename _Ptr>
15254 inline typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type
15255 operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15256 const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15257 {
15258 return typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type
15259 (_Deque_iterator<_Tp, _Ref, _Ptr>::_S_buffer_size())
15260 * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first)
15261 + (__y._M_last - __y._M_cur);
15262 }
15263
15264 template<typename _Tp, typename _RefL, typename _PtrL,
15265 typename _RefR, typename _PtrR>
15266 inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
15267 operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15268 const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15269 {
15270 return typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
15271 (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size())
15272 * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first)
15273 + (__y._M_last - __y._M_cur);
15274 }
15275
15276 template<typename _Tp, typename _Ref, typename _Ptr>
15277 inline _Deque_iterator<_Tp, _Ref, _Ptr>
15278 operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
15279 { return __x + __n; }
15280
15281 template<typename _Tp>
15282 void
15283 fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first,
15284 const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value);
15285 # 370 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15286 template<typename _Tp, typename _Alloc>
15287 class _Deque_base
15288 {
15289 public:
15290 typedef _Alloc allocator_type;
15291
15292 allocator_type
15293 get_allocator() const
15294 { return allocator_type(_M_get_Tp_allocator()); }
15295
15296 typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
15297 typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
15298
15299 _Deque_base(const allocator_type& __a, size_t __num_elements)
15300 : _M_impl(__a)
15301 { _M_initialize_map(__num_elements); }
15302
15303 _Deque_base(const allocator_type& __a)
15304 : _M_impl(__a)
15305 { }
15306
15307 ~_Deque_base();
15308
15309 protected:
15310
15311
15312
15313 typedef typename _Alloc::template rebind<_Tp*>::other _Map_alloc_type;
15314
15315 typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
15316
15317 struct _Deque_impl
15318 : public _Tp_alloc_type
15319 {
15320 _Tp** _M_map;
15321 size_t _M_map_size;
15322 iterator _M_start;
15323 iterator _M_finish;
15324
15325 _Deque_impl(const _Tp_alloc_type& __a)
15326 : _Tp_alloc_type(__a), _M_map(0), _M_map_size(0),
15327 _M_start(), _M_finish()
15328 { }
15329 };
15330
15331 _Tp_alloc_type&
15332 _M_get_Tp_allocator()
15333 { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
15334
15335 const _Tp_alloc_type&
15336 _M_get_Tp_allocator() const
15337 { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
15338
15339 _Map_alloc_type
15340 _M_get_map_allocator() const
15341 { return _Map_alloc_type(_M_get_Tp_allocator()); }
15342
15343 _Tp*
15344 _M_allocate_node()
15345 {
15346 return _M_impl._Tp_alloc_type::allocate(__deque_buf_size(sizeof(_Tp)));
15347 }
15348
15349 void
15350 _M_deallocate_node(_Tp* __p)
15351 {
15352 _M_impl._Tp_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp)));
15353 }
15354
15355 _Tp**
15356 _M_allocate_map(size_t __n)
15357 { return _M_get_map_allocator().allocate(__n); }
15358
15359 void
15360 _M_deallocate_map(_Tp** __p, size_t __n)
15361 { _M_get_map_allocator().deallocate(__p, __n); }
15362
15363 protected:
15364 void _M_initialize_map(size_t);
15365 void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish);
15366 void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish);
15367 enum { _S_initial_map_size = 8 };
15368
15369 _Deque_impl _M_impl;
15370 };
15371
15372 template<typename _Tp, typename _Alloc>
15373 _Deque_base<_Tp, _Alloc>::
15374 ~_Deque_base()
15375 {
15376 if (this->_M_impl._M_map)
15377 {
15378 _M_destroy_nodes(this->_M_impl._M_start._M_node,
15379 this->_M_impl._M_finish._M_node + 1);
15380 _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size);
15381 }
15382 }
15383 # 478 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15384 template<typename _Tp, typename _Alloc>
15385 void
15386 _Deque_base<_Tp, _Alloc>::
15387 _M_initialize_map(size_t __num_elements)
15388 {
15389 const size_t __num_nodes = (__num_elements/ __deque_buf_size(sizeof(_Tp))
15390 + 1);
15391
15392 this->_M_impl._M_map_size = std::max((size_t) _S_initial_map_size,
15393 size_t(__num_nodes + 2));
15394 this->_M_impl._M_map = _M_allocate_map(this->_M_impl._M_map_size);
15395
15396
15397
15398
15399
15400
15401 _Tp** __nstart = (this->_M_impl._M_map
15402 + (this->_M_impl._M_map_size - __num_nodes) / 2);
15403 _Tp** __nfinish = __nstart + __num_nodes;
15404
15405 try
15406 { _M_create_nodes(__nstart, __nfinish); }
15407 catch(...)
15408 {
15409 _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size);
15410 this->_M_impl._M_map = 0;
15411 this->_M_impl._M_map_size = 0;
15412 throw;
15413 }
15414
15415 this->_M_impl._M_start._M_set_node(__nstart);
15416 this->_M_impl._M_finish._M_set_node(__nfinish - 1);
15417 this->_M_impl._M_start._M_cur = _M_impl._M_start._M_first;
15418 this->_M_impl._M_finish._M_cur = (this->_M_impl._M_finish._M_first
15419 + __num_elements
15420 % __deque_buf_size(sizeof(_Tp)));
15421 }
15422
15423 template<typename _Tp, typename _Alloc>
15424 void
15425 _Deque_base<_Tp, _Alloc>::
15426 _M_create_nodes(_Tp** __nstart, _Tp** __nfinish)
15427 {
15428 _Tp** __cur;
15429 try
15430 {
15431 for (__cur = __nstart; __cur < __nfinish; ++__cur)
15432 *__cur = this->_M_allocate_node();
15433 }
15434 catch(...)
15435 {
15436 _M_destroy_nodes(__nstart, __cur);
15437 throw;
15438 }
15439 }
15440
15441 template<typename _Tp, typename _Alloc>
15442 void
15443 _Deque_base<_Tp, _Alloc>::
15444 _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
15445 {
15446 for (_Tp** __n = __nstart; __n < __nfinish; ++__n)
15447 _M_deallocate_node(*__n);
15448 }
15449 # 628 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15450 template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
15451 class deque : protected _Deque_base<_Tp, _Alloc>
15452 {
15453
15454 typedef typename _Alloc::value_type _Alloc_value_type;
15455
15456
15457
15458 typedef _Deque_base<_Tp, _Alloc> _Base;
15459 typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
15460
15461 public:
15462 typedef _Tp value_type;
15463 typedef typename _Tp_alloc_type::pointer pointer;
15464 typedef typename _Tp_alloc_type::const_pointer const_pointer;
15465 typedef typename _Tp_alloc_type::reference reference;
15466 typedef typename _Tp_alloc_type::const_reference const_reference;
15467 typedef typename _Base::iterator iterator;
15468 typedef typename _Base::const_iterator const_iterator;
15469 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
15470 typedef std::reverse_iterator<iterator> reverse_iterator;
15471 typedef size_t size_type;
15472 typedef ptrdiff_t difference_type;
15473 typedef _Alloc allocator_type;
15474
15475 protected:
15476 typedef pointer* _Map_pointer;
15477
15478 static size_t _S_buffer_size()
15479 { return __deque_buf_size(sizeof(_Tp)); }
15480
15481
15482 using _Base::_M_initialize_map;
15483 using _Base::_M_create_nodes;
15484 using _Base::_M_destroy_nodes;
15485 using _Base::_M_allocate_node;
15486 using _Base::_M_deallocate_node;
15487 using _Base::_M_allocate_map;
15488 using _Base::_M_deallocate_map;
15489 using _Base::_M_get_Tp_allocator;
15490
15491
15492
15493
15494
15495
15496 using _Base::_M_impl;
15497
15498 public:
15499
15500
15501
15502
15503
15504 explicit
15505 deque(const allocator_type& __a = allocator_type())
15506 : _Base(__a, 0) {}
15507 # 693 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15508 explicit
15509 deque(size_type __n, const value_type& __value = value_type(),
15510 const allocator_type& __a = allocator_type())
15511 : _Base(__a, __n)
15512 { _M_fill_initialize(__value); }
15513 # 706 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15514 deque(const deque& __x)
15515 : _Base(__x._M_get_Tp_allocator(), __x.size())
15516 { std::__uninitialized_copy_a(__x.begin(), __x.end(),
15517 this->_M_impl._M_start,
15518 _M_get_Tp_allocator()); }
15519 # 726 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15520 template<typename _InputIterator>
15521 deque(_InputIterator __first, _InputIterator __last,
15522 const allocator_type& __a = allocator_type())
15523 : _Base(__a)
15524 {
15525
15526 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
15527 _M_initialize_dispatch(__first, __last, _Integral());
15528 }
15529
15530
15531
15532
15533
15534
15535 ~deque()
15536 { _M_destroy_data(begin(), end(), _M_get_Tp_allocator()); }
15537 # 751 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15538 deque&
15539 operator=(const deque& __x);
15540 # 764 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15541 void
15542 assign(size_type __n, const value_type& __val)
15543 { _M_fill_assign(__n, __val); }
15544 # 780 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15545 template<typename _InputIterator>
15546 void
15547 assign(_InputIterator __first, _InputIterator __last)
15548 {
15549 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
15550 _M_assign_dispatch(__first, __last, _Integral());
15551 }
15552
15553
15554 allocator_type
15555 get_allocator() const
15556 { return _Base::get_allocator(); }
15557
15558
15559
15560
15561
15562
15563 iterator
15564 begin()
15565 { return this->_M_impl._M_start; }
15566
15567
15568
15569
15570
15571 const_iterator
15572 begin() const
15573 { return this->_M_impl._M_start; }
15574
15575
15576
15577
15578
15579
15580 iterator
15581 end()
15582 { return this->_M_impl._M_finish; }
15583
15584
15585
15586
15587
15588
15589 const_iterator
15590 end() const
15591 { return this->_M_impl._M_finish; }
15592
15593
15594
15595
15596
15597
15598 reverse_iterator
15599 rbegin()
15600 { return reverse_iterator(this->_M_impl._M_finish); }
15601
15602
15603
15604
15605
15606
15607 const_reverse_iterator
15608 rbegin() const
15609 { return const_reverse_iterator(this->_M_impl._M_finish); }
15610
15611
15612
15613
15614
15615
15616 reverse_iterator
15617 rend()
15618 { return reverse_iterator(this->_M_impl._M_start); }
15619
15620
15621
15622
15623
15624
15625 const_reverse_iterator
15626 rend() const
15627 { return const_reverse_iterator(this->_M_impl._M_start); }
15628
15629
15630
15631 size_type
15632 size() const
15633 { return this->_M_impl._M_finish - this->_M_impl._M_start; }
15634
15635
15636 size_type
15637 max_size() const
15638 { return _M_get_Tp_allocator().max_size(); }
15639 # 886 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15640 void
15641 resize(size_type __new_size, value_type __x = value_type())
15642 {
15643 const size_type __len = size();
15644 if (__new_size < __len)
15645 _M_erase_at_end(this->_M_impl._M_start + difference_type(__new_size));
15646 else
15647 insert(this->_M_impl._M_finish, __new_size - __len, __x);
15648 }
15649
15650
15651
15652
15653
15654 bool
15655 empty() const
15656 { return this->_M_impl._M_finish == this->_M_impl._M_start; }
15657 # 916 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15658 reference
15659 operator[](size_type __n)
15660 { return this->_M_impl._M_start[difference_type(__n)]; }
15661 # 931 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15662 const_reference
15663 operator[](size_type __n) const
15664 { return this->_M_impl._M_start[difference_type(__n)]; }
15665
15666 protected:
15667
15668 void
15669 _M_range_check(size_type __n) const
15670 {
15671 if (__n >= this->size())
15672 __throw_out_of_range(("deque::_M_range_check"));
15673 }
15674
15675 public:
15676 # 956 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15677 reference
15678 at(size_type __n)
15679 {
15680 _M_range_check(__n);
15681 return (*this)[__n];
15682 }
15683 # 974 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15684 const_reference
15685 at(size_type __n) const
15686 {
15687 _M_range_check(__n);
15688 return (*this)[__n];
15689 }
15690
15691
15692
15693
15694
15695 reference
15696 front()
15697 { return *begin(); }
15698
15699
15700
15701
15702
15703 const_reference
15704 front() const
15705 { return *begin(); }
15706
15707
15708
15709
15710
15711 reference
15712 back()
15713 {
15714 iterator __tmp = end();
15715 --__tmp;
15716 return *__tmp;
15717 }
15718
15719
15720
15721
15722
15723 const_reference
15724 back() const
15725 {
15726 const_iterator __tmp = end();
15727 --__tmp;
15728 return *__tmp;
15729 }
15730 # 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15731 void
15732 push_front(const value_type& __x)
15733 {
15734 if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first)
15735 {
15736 this->_M_impl.construct(this->_M_impl._M_start._M_cur - 1, __x);
15737 --this->_M_impl._M_start._M_cur;
15738 }
15739 else
15740 _M_push_front_aux(__x);
15741 }
15742 # 1052 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15743 void
15744 push_back(const value_type& __x)
15745 {
15746 if (this->_M_impl._M_finish._M_cur
15747 != this->_M_impl._M_finish._M_last - 1)
15748 {
15749 this->_M_impl.construct(this->_M_impl._M_finish._M_cur, __x);
15750 ++this->_M_impl._M_finish._M_cur;
15751 }
15752 else
15753 _M_push_back_aux(__x);
15754 }
15755 # 1073 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15756 void
15757 pop_front()
15758 {
15759 if (this->_M_impl._M_start._M_cur
15760 != this->_M_impl._M_start._M_last - 1)
15761 {
15762 this->_M_impl.destroy(this->_M_impl._M_start._M_cur);
15763 ++this->_M_impl._M_start._M_cur;
15764 }
15765 else
15766 _M_pop_front_aux();
15767 }
15768 # 1094 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15769 void
15770 pop_back()
15771 {
15772 if (this->_M_impl._M_finish._M_cur
15773 != this->_M_impl._M_finish._M_first)
15774 {
15775 --this->_M_impl._M_finish._M_cur;
15776 this->_M_impl.destroy(this->_M_impl._M_finish._M_cur);
15777 }
15778 else
15779 _M_pop_back_aux();
15780 }
15781 # 1116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15782 iterator
15783 insert(iterator __position, const value_type& __x);
15784 # 1128 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15785 void
15786 insert(iterator __position, size_type __n, const value_type& __x)
15787 { _M_fill_insert(__position, __n, __x); }
15788 # 1142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15789 template<typename _InputIterator>
15790 void
15791 insert(iterator __position, _InputIterator __first,
15792 _InputIterator __last)
15793 {
15794
15795 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
15796 _M_insert_dispatch(__position, __first, __last, _Integral());
15797 }
15798 # 1165 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15799 iterator
15800 erase(iterator __position);
15801 # 1184 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15802 iterator
15803 erase(iterator __first, iterator __last);
15804 # 1196 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15805 void
15806 swap(deque& __x)
15807 {
15808 std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
15809 std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
15810 std::swap(this->_M_impl._M_map, __x._M_impl._M_map);
15811 std::swap(this->_M_impl._M_map_size, __x._M_impl._M_map_size);
15812
15813
15814
15815 std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
15816 __x._M_get_Tp_allocator());
15817 }
15818
15819
15820
15821
15822
15823
15824
15825 void
15826 clear()
15827 { _M_erase_at_end(begin()); }
15828
15829 protected:
15830
15831
15832
15833 template<typename _Integer>
15834 void
15835 _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
15836 {
15837 _M_initialize_map(__n);
15838 _M_fill_initialize(__x);
15839 }
15840
15841
15842 template<typename _InputIterator>
15843 void
15844 _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
15845 __false_type)
15846 {
15847 typedef typename std::iterator_traits<_InputIterator>::
15848 iterator_category _IterCategory;
15849 _M_range_initialize(__first, __last, _IterCategory());
15850 }
15851 # 1257 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15852 template<typename _InputIterator>
15853 void
15854 _M_range_initialize(_InputIterator __first, _InputIterator __last,
15855 std::input_iterator_tag);
15856
15857
15858 template<typename _ForwardIterator>
15859 void
15860 _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
15861 std::forward_iterator_tag);
15862 # 1281 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15863 void
15864 _M_fill_initialize(const value_type& __value);
15865
15866
15867
15868
15869
15870 template<typename _Integer>
15871 void
15872 _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
15873 {
15874 _M_fill_assign(static_cast<size_type>(__n),
15875 static_cast<value_type>(__val));
15876 }
15877
15878
15879 template<typename _InputIterator>
15880 void
15881 _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
15882 __false_type)
15883 {
15884 typedef typename std::iterator_traits<_InputIterator>::
15885 iterator_category _IterCategory;
15886 _M_assign_aux(__first, __last, _IterCategory());
15887 }
15888
15889
15890 template<typename _InputIterator>
15891 void
15892 _M_assign_aux(_InputIterator __first, _InputIterator __last,
15893 std::input_iterator_tag);
15894
15895
15896 template<typename _ForwardIterator>
15897 void
15898 _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
15899 std::forward_iterator_tag)
15900 {
15901 const size_type __len = std::distance(__first, __last);
15902 if (__len > size())
15903 {
15904 _ForwardIterator __mid = __first;
15905 std::advance(__mid, size());
15906 std::copy(__first, __mid, begin());
15907 insert(end(), __mid, __last);
15908 }
15909 else
15910 _M_erase_at_end(std::copy(__first, __last, begin()));
15911 }
15912
15913
15914
15915 void
15916 _M_fill_assign(size_type __n, const value_type& __val)
15917 {
15918 if (__n > size())
15919 {
15920 std::fill(begin(), end(), __val);
15921 insert(end(), __n - size(), __val);
15922 }
15923 else
15924 {
15925 _M_erase_at_end(begin() + difference_type(__n));
15926 std::fill(begin(), end(), __val);
15927 }
15928 }
15929
15930
15931
15932
15933
15934
15935
15936 void _M_push_back_aux(const value_type&);
15937
15938 void _M_push_front_aux(const value_type&);
15939
15940 void _M_pop_back_aux();
15941
15942 void _M_pop_front_aux();
15943
15944
15945
15946
15947
15948
15949 template<typename _Integer>
15950 void
15951 _M_insert_dispatch(iterator __pos,
15952 _Integer __n, _Integer __x, __true_type)
15953 {
15954 _M_fill_insert(__pos, static_cast<size_type>(__n),
15955 static_cast<value_type>(__x));
15956 }
15957
15958
15959 template<typename _InputIterator>
15960 void
15961 _M_insert_dispatch(iterator __pos,
15962 _InputIterator __first, _InputIterator __last,
15963 __false_type)
15964 {
15965 typedef typename std::iterator_traits<_InputIterator>::
15966 iterator_category _IterCategory;
15967 _M_range_insert_aux(__pos, __first, __last, _IterCategory());
15968 }
15969
15970
15971 template<typename _InputIterator>
15972 void
15973 _M_range_insert_aux(iterator __pos, _InputIterator __first,
15974 _InputIterator __last, std::input_iterator_tag);
15975
15976
15977 template<typename _ForwardIterator>
15978 void
15979 _M_range_insert_aux(iterator __pos, _ForwardIterator __first,
15980 _ForwardIterator __last, std::forward_iterator_tag);
15981
15982
15983
15984
15985 void
15986 _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
15987
15988
15989 iterator
15990 _M_insert_aux(iterator __pos, const value_type& __x);
15991
15992
15993 void
15994 _M_insert_aux(iterator __pos, size_type __n, const value_type& __x);
15995
15996
15997 template<typename _ForwardIterator>
15998 void
15999 _M_insert_aux(iterator __pos,
16000 _ForwardIterator __first, _ForwardIterator __last,
16001 size_type __n);
16002
16003
16004
16005
16006 void
16007 _M_destroy_data_aux(iterator __first, iterator __last);
16008
16009 void
16010 _M_destroy_data_dispatch(iterator, iterator, __true_type) { }
16011
16012 void
16013 _M_destroy_data_dispatch(iterator __first, iterator __last, __false_type)
16014 { _M_destroy_data_aux(__first, __last); }
16015
16016
16017
16018 template<typename _Alloc1>
16019 void
16020 _M_destroy_data(iterator __first, iterator __last, const _Alloc1&)
16021 { _M_destroy_data_aux(__first, __last); }
16022
16023 void
16024 _M_destroy_data(iterator __first, iterator __last,
16025 const std::allocator<_Tp>&)
16026 {
16027 typedef typename std::__is_scalar<value_type>::__type
16028 _Has_trivial_destructor;
16029 _M_destroy_data_dispatch(__first, __last, _Has_trivial_destructor());
16030 }
16031
16032
16033 void
16034 _M_erase_at_begin(iterator __pos)
16035 {
16036 _M_destroy_data(begin(), __pos, _M_get_Tp_allocator());
16037 _M_destroy_nodes(this->_M_impl._M_start._M_node, __pos._M_node);
16038 this->_M_impl._M_start = __pos;
16039 }
16040
16041
16042
16043 void
16044 _M_erase_at_end(iterator __pos)
16045 {
16046 _M_destroy_data(__pos, end(), _M_get_Tp_allocator());
16047 _M_destroy_nodes(__pos._M_node + 1,
16048 this->_M_impl._M_finish._M_node + 1);
16049 this->_M_impl._M_finish = __pos;
16050 }
16051 # 1477 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16052 iterator
16053 _M_reserve_elements_at_front(size_type __n)
16054 {
16055 const size_type __vacancies = this->_M_impl._M_start._M_cur
16056 - this->_M_impl._M_start._M_first;
16057 if (__n > __vacancies)
16058 _M_new_elements_at_front(__n - __vacancies);
16059 return this->_M_impl._M_start - difference_type(__n);
16060 }
16061
16062 iterator
16063 _M_reserve_elements_at_back(size_type __n)
16064 {
16065 const size_type __vacancies = (this->_M_impl._M_finish._M_last
16066 - this->_M_impl._M_finish._M_cur) - 1;
16067 if (__n > __vacancies)
16068 _M_new_elements_at_back(__n - __vacancies);
16069 return this->_M_impl._M_finish + difference_type(__n);
16070 }
16071
16072 void
16073 _M_new_elements_at_front(size_type __new_elements);
16074
16075 void
16076 _M_new_elements_at_back(size_type __new_elements);
16077 # 1515 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16078 void
16079 _M_reserve_map_at_back(size_type __nodes_to_add = 1)
16080 {
16081 if (__nodes_to_add + 1 > this->_M_impl._M_map_size
16082 - (this->_M_impl._M_finish._M_node - this->_M_impl._M_map))
16083 _M_reallocate_map(__nodes_to_add, false);
16084 }
16085
16086 void
16087 _M_reserve_map_at_front(size_type __nodes_to_add = 1)
16088 {
16089 if (__nodes_to_add > size_type(this->_M_impl._M_start._M_node
16090 - this->_M_impl._M_map))
16091 _M_reallocate_map(__nodes_to_add, true);
16092 }
16093
16094 void
16095 _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front);
16096
16097 };
16098 # 1547 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16099 template<typename _Tp, typename _Alloc>
16100 inline bool
16101 operator==(const deque<_Tp, _Alloc>& __x,
16102 const deque<_Tp, _Alloc>& __y)
16103 { return __x.size() == __y.size()
16104 && std::equal(__x.begin(), __x.end(), __y.begin()); }
16105 # 1565 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16106 template<typename _Tp, typename _Alloc>
16107 inline bool
16108 operator<(const deque<_Tp, _Alloc>& __x,
16109 const deque<_Tp, _Alloc>& __y)
16110 { return std::lexicographical_compare(__x.begin(), __x.end(),
16111 __y.begin(), __y.end()); }
16112
16113
16114 template<typename _Tp, typename _Alloc>
16115 inline bool
16116 operator!=(const deque<_Tp, _Alloc>& __x,
16117 const deque<_Tp, _Alloc>& __y)
16118 { return !(__x == __y); }
16119
16120
16121 template<typename _Tp, typename _Alloc>
16122 inline bool
16123 operator>(const deque<_Tp, _Alloc>& __x,
16124 const deque<_Tp, _Alloc>& __y)
16125 { return __y < __x; }
16126
16127
16128 template<typename _Tp, typename _Alloc>
16129 inline bool
16130 operator<=(const deque<_Tp, _Alloc>& __x,
16131 const deque<_Tp, _Alloc>& __y)
16132 { return !(__y < __x); }
16133
16134
16135 template<typename _Tp, typename _Alloc>
16136 inline bool
16137 operator>=(const deque<_Tp, _Alloc>& __x,
16138 const deque<_Tp, _Alloc>& __y)
16139 { return !(__x < __y); }
16140
16141
16142 template<typename _Tp, typename _Alloc>
16143 inline void
16144 swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)
16145 { __x.swap(__y); }
16146
16147 }
16148 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
16149
16150
16151 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/deque.tcc" 1 3
16152 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/deque.tcc" 3
16153 #define _DEQUE_TCC 1
16154
16155 namespace std __attribute__ ((__visibility__ ("default"))) {
16156
16157 template <typename _Tp, typename _Alloc>
16158 deque<_Tp, _Alloc>&
16159 deque<_Tp, _Alloc>::
16160 operator=(const deque& __x)
16161 {
16162 const size_type __len = size();
16163 if (&__x != this)
16164 {
16165 if (__len >= __x.size())
16166 _M_erase_at_end(std::copy(__x.begin(), __x.end(),
16167 this->_M_impl._M_start));
16168 else
16169 {
16170 const_iterator __mid = __x.begin() + difference_type(__len);
16171 std::copy(__x.begin(), __mid, this->_M_impl._M_start);
16172 insert(this->_M_impl._M_finish, __mid, __x.end());
16173 }
16174 }
16175 return *this;
16176 }
16177
16178 template <typename _Tp, typename _Alloc>
16179 typename deque<_Tp, _Alloc>::iterator
16180 deque<_Tp, _Alloc>::
16181 insert(iterator __position, const value_type& __x)
16182 {
16183 if (__position._M_cur == this->_M_impl._M_start._M_cur)
16184 {
16185 push_front(__x);
16186 return this->_M_impl._M_start;
16187 }
16188 else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
16189 {
16190 push_back(__x);
16191 iterator __tmp = this->_M_impl._M_finish;
16192 --__tmp;
16193 return __tmp;
16194 }
16195 else
16196 return _M_insert_aux(__position, __x);
16197 }
16198
16199 template <typename _Tp, typename _Alloc>
16200 typename deque<_Tp, _Alloc>::iterator
16201 deque<_Tp, _Alloc>::
16202 erase(iterator __position)
16203 {
16204 iterator __next = __position;
16205 ++__next;
16206 const difference_type __index = __position - begin();
16207 if (static_cast<size_type>(__index) < (size() >> 1))
16208 {
16209 if (__position != begin())
16210 std::copy_backward(begin(), __position, __next);
16211 pop_front();
16212 }
16213 else
16214 {
16215 if (__next != end())
16216 std::copy(__next, end(), __position);
16217 pop_back();
16218 }
16219 return begin() + __index;
16220 }
16221
16222 template <typename _Tp, typename _Alloc>
16223 typename deque<_Tp, _Alloc>::iterator
16224 deque<_Tp, _Alloc>::
16225 erase(iterator __first, iterator __last)
16226 {
16227 if (__first == begin() && __last == end())
16228 {
16229 clear();
16230 return end();
16231 }
16232 else
16233 {
16234 const difference_type __n = __last - __first;
16235 const difference_type __elems_before = __first - begin();
16236 if (static_cast<size_type>(__elems_before) <= (size() - __n) / 2)
16237 {
16238 if (__first != begin())
16239 std::copy_backward(begin(), __first, __last);
16240 _M_erase_at_begin(begin() + __n);
16241 }
16242 else
16243 {
16244 if (__last != end())
16245 std::copy(__last, end(), __first);
16246 _M_erase_at_end(end() - __n);
16247 }
16248 return begin() + __elems_before;
16249 }
16250 }
16251
16252 template <typename _Tp, class _Alloc>
16253 template <typename _InputIterator>
16254 void
16255 deque<_Tp, _Alloc>::
16256 _M_assign_aux(_InputIterator __first, _InputIterator __last,
16257 std::input_iterator_tag)
16258 {
16259 iterator __cur = begin();
16260 for (; __first != __last && __cur != end(); ++__cur, ++__first)
16261 *__cur = *__first;
16262 if (__first == __last)
16263 _M_erase_at_end(__cur);
16264 else
16265 insert(end(), __first, __last);
16266 }
16267
16268 template <typename _Tp, typename _Alloc>
16269 void
16270 deque<_Tp, _Alloc>::
16271 _M_fill_insert(iterator __pos, size_type __n, const value_type& __x)
16272 {
16273 if (__pos._M_cur == this->_M_impl._M_start._M_cur)
16274 {
16275 iterator __new_start = _M_reserve_elements_at_front(__n);
16276 try
16277 {
16278 std::__uninitialized_fill_a(__new_start, this->_M_impl._M_start,
16279 __x, _M_get_Tp_allocator());
16280 this->_M_impl._M_start = __new_start;
16281 }
16282 catch(...)
16283 {
16284 _M_destroy_nodes(__new_start._M_node,
16285 this->_M_impl._M_start._M_node);
16286 throw;
16287 }
16288 }
16289 else if (__pos._M_cur == this->_M_impl._M_finish._M_cur)
16290 {
16291 iterator __new_finish = _M_reserve_elements_at_back(__n);
16292 try
16293 {
16294 std::__uninitialized_fill_a(this->_M_impl._M_finish,
16295 __new_finish, __x,
16296 _M_get_Tp_allocator());
16297 this->_M_impl._M_finish = __new_finish;
16298 }
16299 catch(...)
16300 {
16301 _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16302 __new_finish._M_node + 1);
16303 throw;
16304 }
16305 }
16306 else
16307 _M_insert_aux(__pos, __n, __x);
16308 }
16309
16310 template <typename _Tp, typename _Alloc>
16311 void
16312 deque<_Tp, _Alloc>::
16313 _M_fill_initialize(const value_type& __value)
16314 {
16315 _Map_pointer __cur;
16316 try
16317 {
16318 for (__cur = this->_M_impl._M_start._M_node;
16319 __cur < this->_M_impl._M_finish._M_node;
16320 ++__cur)
16321 std::__uninitialized_fill_a(*__cur, *__cur + _S_buffer_size(),
16322 __value, _M_get_Tp_allocator());
16323 std::__uninitialized_fill_a(this->_M_impl._M_finish._M_first,
16324 this->_M_impl._M_finish._M_cur,
16325 __value, _M_get_Tp_allocator());
16326 }
16327 catch(...)
16328 {
16329 std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur),
16330 _M_get_Tp_allocator());
16331 throw;
16332 }
16333 }
16334
16335 template <typename _Tp, typename _Alloc>
16336 template <typename _InputIterator>
16337 void
16338 deque<_Tp, _Alloc>::
16339 _M_range_initialize(_InputIterator __first, _InputIterator __last,
16340 std::input_iterator_tag)
16341 {
16342 this->_M_initialize_map(0);
16343 try
16344 {
16345 for (; __first != __last; ++__first)
16346 push_back(*__first);
16347 }
16348 catch(...)
16349 {
16350 clear();
16351 throw;
16352 }
16353 }
16354
16355 template <typename _Tp, typename _Alloc>
16356 template <typename _ForwardIterator>
16357 void
16358 deque<_Tp, _Alloc>::
16359 _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
16360 std::forward_iterator_tag)
16361 {
16362 const size_type __n = std::distance(__first, __last);
16363 this->_M_initialize_map(__n);
16364
16365 _Map_pointer __cur_node;
16366 try
16367 {
16368 for (__cur_node = this->_M_impl._M_start._M_node;
16369 __cur_node < this->_M_impl._M_finish._M_node;
16370 ++__cur_node)
16371 {
16372 _ForwardIterator __mid = __first;
16373 std::advance(__mid, _S_buffer_size());
16374 std::__uninitialized_copy_a(__first, __mid, *__cur_node,
16375 _M_get_Tp_allocator());
16376 __first = __mid;
16377 }
16378 std::__uninitialized_copy_a(__first, __last,
16379 this->_M_impl._M_finish._M_first,
16380 _M_get_Tp_allocator());
16381 }
16382 catch(...)
16383 {
16384 std::_Destroy(this->_M_impl._M_start,
16385 iterator(*__cur_node, __cur_node),
16386 _M_get_Tp_allocator());
16387 throw;
16388 }
16389 }
16390
16391
16392 template <typename _Tp, typename _Alloc>
16393 void
16394 deque<_Tp, _Alloc>::
16395 _M_push_back_aux(const value_type& __t)
16396 {
16397 value_type __t_copy = __t;
16398 _M_reserve_map_at_back();
16399 *(this->_M_impl._M_finish._M_node + 1) = this->_M_allocate_node();
16400 try
16401 {
16402 this->_M_impl.construct(this->_M_impl._M_finish._M_cur, __t_copy);
16403 this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node
16404 + 1);
16405 this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_first;
16406 }
16407 catch(...)
16408 {
16409 _M_deallocate_node(*(this->_M_impl._M_finish._M_node + 1));
16410 throw;
16411 }
16412 }
16413
16414
16415 template <typename _Tp, typename _Alloc>
16416 void
16417 deque<_Tp, _Alloc>::
16418 _M_push_front_aux(const value_type& __t)
16419 {
16420 value_type __t_copy = __t;
16421 _M_reserve_map_at_front();
16422 *(this->_M_impl._M_start._M_node - 1) = this->_M_allocate_node();
16423 try
16424 {
16425 this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node
16426 - 1);
16427 this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_last - 1;
16428 this->_M_impl.construct(this->_M_impl._M_start._M_cur, __t_copy);
16429 }
16430 catch(...)
16431 {
16432 ++this->_M_impl._M_start;
16433 _M_deallocate_node(*(this->_M_impl._M_start._M_node - 1));
16434 throw;
16435 }
16436 }
16437
16438
16439 template <typename _Tp, typename _Alloc>
16440 void deque<_Tp, _Alloc>::
16441 _M_pop_back_aux()
16442 {
16443 _M_deallocate_node(this->_M_impl._M_finish._M_first);
16444 this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node - 1);
16445 this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_last - 1;
16446 this->_M_impl.destroy(this->_M_impl._M_finish._M_cur);
16447 }
16448
16449
16450
16451
16452
16453
16454 template <typename _Tp, typename _Alloc>
16455 void deque<_Tp, _Alloc>::
16456 _M_pop_front_aux()
16457 {
16458 this->_M_impl.destroy(this->_M_impl._M_start._M_cur);
16459 _M_deallocate_node(this->_M_impl._M_start._M_first);
16460 this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node + 1);
16461 this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_first;
16462 }
16463
16464 template <typename _Tp, typename _Alloc>
16465 template <typename _InputIterator>
16466 void
16467 deque<_Tp, _Alloc>::
16468 _M_range_insert_aux(iterator __pos,
16469 _InputIterator __first, _InputIterator __last,
16470 std::input_iterator_tag)
16471 { std::copy(__first, __last, std::inserter(*this, __pos)); }
16472
16473 template <typename _Tp, typename _Alloc>
16474 template <typename _ForwardIterator>
16475 void
16476 deque<_Tp, _Alloc>::
16477 _M_range_insert_aux(iterator __pos,
16478 _ForwardIterator __first, _ForwardIterator __last,
16479 std::forward_iterator_tag)
16480 {
16481 const size_type __n = std::distance(__first, __last);
16482 if (__pos._M_cur == this->_M_impl._M_start._M_cur)
16483 {
16484 iterator __new_start = _M_reserve_elements_at_front(__n);
16485 try
16486 {
16487 std::__uninitialized_copy_a(__first, __last, __new_start,
16488 _M_get_Tp_allocator());
16489 this->_M_impl._M_start = __new_start;
16490 }
16491 catch(...)
16492 {
16493 _M_destroy_nodes(__new_start._M_node,
16494 this->_M_impl._M_start._M_node);
16495 throw;
16496 }
16497 }
16498 else if (__pos._M_cur == this->_M_impl._M_finish._M_cur)
16499 {
16500 iterator __new_finish = _M_reserve_elements_at_back(__n);
16501 try
16502 {
16503 std::__uninitialized_copy_a(__first, __last,
16504 this->_M_impl._M_finish,
16505 _M_get_Tp_allocator());
16506 this->_M_impl._M_finish = __new_finish;
16507 }
16508 catch(...)
16509 {
16510 _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16511 __new_finish._M_node + 1);
16512 throw;
16513 }
16514 }
16515 else
16516 _M_insert_aux(__pos, __first, __last, __n);
16517 }
16518
16519 template <typename _Tp, typename _Alloc>
16520 typename deque<_Tp, _Alloc>::iterator
16521 deque<_Tp, _Alloc>::
16522 _M_insert_aux(iterator __pos, const value_type& __x)
16523 {
16524 difference_type __index = __pos - this->_M_impl._M_start;
16525 value_type __x_copy = __x;
16526 if (static_cast<size_type>(__index) < size() / 2)
16527 {
16528 push_front(front());
16529 iterator __front1 = this->_M_impl._M_start;
16530 ++__front1;
16531 iterator __front2 = __front1;
16532 ++__front2;
16533 __pos = this->_M_impl._M_start + __index;
16534 iterator __pos1 = __pos;
16535 ++__pos1;
16536 std::copy(__front2, __pos1, __front1);
16537 }
16538 else
16539 {
16540 push_back(back());
16541 iterator __back1 = this->_M_impl._M_finish;
16542 --__back1;
16543 iterator __back2 = __back1;
16544 --__back2;
16545 __pos = this->_M_impl._M_start + __index;
16546 std::copy_backward(__pos, __back2, __back1);
16547 }
16548 *__pos = __x_copy;
16549 return __pos;
16550 }
16551
16552 template <typename _Tp, typename _Alloc>
16553 void
16554 deque<_Tp, _Alloc>::
16555 _M_insert_aux(iterator __pos, size_type __n, const value_type& __x)
16556 {
16557 const difference_type __elems_before = __pos - this->_M_impl._M_start;
16558 const size_type __length = this->size();
16559 value_type __x_copy = __x;
16560 if (__elems_before < difference_type(__length / 2))
16561 {
16562 iterator __new_start = _M_reserve_elements_at_front(__n);
16563 iterator __old_start = this->_M_impl._M_start;
16564 __pos = this->_M_impl._M_start + __elems_before;
16565 try
16566 {
16567 if (__elems_before >= difference_type(__n))
16568 {
16569 iterator __start_n = (this->_M_impl._M_start
16570 + difference_type(__n));
16571 std::__uninitialized_copy_a(this->_M_impl._M_start,
16572 __start_n, __new_start,
16573 _M_get_Tp_allocator());
16574 this->_M_impl._M_start = __new_start;
16575 std::copy(__start_n, __pos, __old_start);
16576 std::fill(__pos - difference_type(__n), __pos, __x_copy);
16577 }
16578 else
16579 {
16580 std::__uninitialized_copy_fill(this->_M_impl._M_start,
16581 __pos, __new_start,
16582 this->_M_impl._M_start,
16583 __x_copy,
16584 _M_get_Tp_allocator());
16585 this->_M_impl._M_start = __new_start;
16586 std::fill(__old_start, __pos, __x_copy);
16587 }
16588 }
16589 catch(...)
16590 {
16591 _M_destroy_nodes(__new_start._M_node,
16592 this->_M_impl._M_start._M_node);
16593 throw;
16594 }
16595 }
16596 else
16597 {
16598 iterator __new_finish = _M_reserve_elements_at_back(__n);
16599 iterator __old_finish = this->_M_impl._M_finish;
16600 const difference_type __elems_after =
16601 difference_type(__length) - __elems_before;
16602 __pos = this->_M_impl._M_finish - __elems_after;
16603 try
16604 {
16605 if (__elems_after > difference_type(__n))
16606 {
16607 iterator __finish_n = (this->_M_impl._M_finish
16608 - difference_type(__n));
16609 std::__uninitialized_copy_a(__finish_n,
16610 this->_M_impl._M_finish,
16611 this->_M_impl._M_finish,
16612 _M_get_Tp_allocator());
16613 this->_M_impl._M_finish = __new_finish;
16614 std::copy_backward(__pos, __finish_n, __old_finish);
16615 std::fill(__pos, __pos + difference_type(__n), __x_copy);
16616 }
16617 else
16618 {
16619 std::__uninitialized_fill_copy(this->_M_impl._M_finish,
16620 __pos + difference_type(__n),
16621 __x_copy, __pos,
16622 this->_M_impl._M_finish,
16623 _M_get_Tp_allocator());
16624 this->_M_impl._M_finish = __new_finish;
16625 std::fill(__pos, __old_finish, __x_copy);
16626 }
16627 }
16628 catch(...)
16629 {
16630 _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16631 __new_finish._M_node + 1);
16632 throw;
16633 }
16634 }
16635 }
16636
16637 template <typename _Tp, typename _Alloc>
16638 template <typename _ForwardIterator>
16639 void
16640 deque<_Tp, _Alloc>::
16641 _M_insert_aux(iterator __pos,
16642 _ForwardIterator __first, _ForwardIterator __last,
16643 size_type __n)
16644 {
16645 const difference_type __elemsbefore = __pos - this->_M_impl._M_start;
16646 const size_type __length = size();
16647 if (static_cast<size_type>(__elemsbefore) < __length / 2)
16648 {
16649 iterator __new_start = _M_reserve_elements_at_front(__n);
16650 iterator __old_start = this->_M_impl._M_start;
16651 __pos = this->_M_impl._M_start + __elemsbefore;
16652 try
16653 {
16654 if (__elemsbefore >= difference_type(__n))
16655 {
16656 iterator __start_n = (this->_M_impl._M_start
16657 + difference_type(__n));
16658 std::__uninitialized_copy_a(this->_M_impl._M_start,
16659 __start_n, __new_start,
16660 _M_get_Tp_allocator());
16661 this->_M_impl._M_start = __new_start;
16662 std::copy(__start_n, __pos, __old_start);
16663 std::copy(__first, __last, __pos - difference_type(__n));
16664 }
16665 else
16666 {
16667 _ForwardIterator __mid = __first;
16668 std::advance(__mid, difference_type(__n) - __elemsbefore);
16669 std::__uninitialized_copy_copy(this->_M_impl._M_start,
16670 __pos, __first, __mid,
16671 __new_start,
16672 _M_get_Tp_allocator());
16673 this->_M_impl._M_start = __new_start;
16674 std::copy(__mid, __last, __old_start);
16675 }
16676 }
16677 catch(...)
16678 {
16679 _M_destroy_nodes(__new_start._M_node,
16680 this->_M_impl._M_start._M_node);
16681 throw;
16682 }
16683 }
16684 else
16685 {
16686 iterator __new_finish = _M_reserve_elements_at_back(__n);
16687 iterator __old_finish = this->_M_impl._M_finish;
16688 const difference_type __elemsafter =
16689 difference_type(__length) - __elemsbefore;
16690 __pos = this->_M_impl._M_finish - __elemsafter;
16691 try
16692 {
16693 if (__elemsafter > difference_type(__n))
16694 {
16695 iterator __finish_n = (this->_M_impl._M_finish
16696 - difference_type(__n));
16697 std::__uninitialized_copy_a(__finish_n,
16698 this->_M_impl._M_finish,
16699 this->_M_impl._M_finish,
16700 _M_get_Tp_allocator());
16701 this->_M_impl._M_finish = __new_finish;
16702 std::copy_backward(__pos, __finish_n, __old_finish);
16703 std::copy(__first, __last, __pos);
16704 }
16705 else
16706 {
16707 _ForwardIterator __mid = __first;
16708 std::advance(__mid, __elemsafter);
16709 std::__uninitialized_copy_copy(__mid, __last, __pos,
16710 this->_M_impl._M_finish,
16711 this->_M_impl._M_finish,
16712 _M_get_Tp_allocator());
16713 this->_M_impl._M_finish = __new_finish;
16714 std::copy(__first, __mid, __pos);
16715 }
16716 }
16717 catch(...)
16718 {
16719 _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16720 __new_finish._M_node + 1);
16721 throw;
16722 }
16723 }
16724 }
16725
16726 template<typename _Tp, typename _Alloc>
16727 void
16728 deque<_Tp, _Alloc>::
16729 _M_destroy_data_aux(iterator __first, iterator __last)
16730 {
16731 for (_Map_pointer __node = __first._M_node + 1;
16732 __node < __last._M_node; ++__node)
16733 std::_Destroy(*__node, *__node + _S_buffer_size(),
16734 _M_get_Tp_allocator());
16735
16736 if (__first._M_node != __last._M_node)
16737 {
16738 std::_Destroy(__first._M_cur, __first._M_last,
16739 _M_get_Tp_allocator());
16740 std::_Destroy(__last._M_first, __last._M_cur,
16741 _M_get_Tp_allocator());
16742 }
16743 else
16744 std::_Destroy(__first._M_cur, __last._M_cur,
16745 _M_get_Tp_allocator());
16746 }
16747
16748 template <typename _Tp, typename _Alloc>
16749 void
16750 deque<_Tp, _Alloc>::
16751 _M_new_elements_at_front(size_type __new_elems)
16752 {
16753 if (this->max_size() - this->size() < __new_elems)
16754 __throw_length_error(("deque::_M_new_elements_at_front"));
16755
16756 const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1)
16757 / _S_buffer_size());
16758 _M_reserve_map_at_front(__new_nodes);
16759 size_type __i;
16760 try
16761 {
16762 for (__i = 1; __i <= __new_nodes; ++__i)
16763 *(this->_M_impl._M_start._M_node - __i) = this->_M_allocate_node();
16764 }
16765 catch(...)
16766 {
16767 for (size_type __j = 1; __j < __i; ++__j)
16768 _M_deallocate_node(*(this->_M_impl._M_start._M_node - __j));
16769 throw;
16770 }
16771 }
16772
16773 template <typename _Tp, typename _Alloc>
16774 void
16775 deque<_Tp, _Alloc>::
16776 _M_new_elements_at_back(size_type __new_elems)
16777 {
16778 if (this->max_size() - this->size() < __new_elems)
16779 __throw_length_error(("deque::_M_new_elements_at_back"));
16780
16781 const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1)
16782 / _S_buffer_size());
16783 _M_reserve_map_at_back(__new_nodes);
16784 size_type __i;
16785 try
16786 {
16787 for (__i = 1; __i <= __new_nodes; ++__i)
16788 *(this->_M_impl._M_finish._M_node + __i) = this->_M_allocate_node();
16789 }
16790 catch(...)
16791 {
16792 for (size_type __j = 1; __j < __i; ++__j)
16793 _M_deallocate_node(*(this->_M_impl._M_finish._M_node + __j));
16794 throw;
16795 }
16796 }
16797
16798 template <typename _Tp, typename _Alloc>
16799 void
16800 deque<_Tp, _Alloc>::
16801 _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front)
16802 {
16803 const size_type __old_num_nodes
16804 = this->_M_impl._M_finish._M_node - this->_M_impl._M_start._M_node + 1;
16805 const size_type __new_num_nodes = __old_num_nodes + __nodes_to_add;
16806
16807 _Map_pointer __new_nstart;
16808 if (this->_M_impl._M_map_size > 2 * __new_num_nodes)
16809 {
16810 __new_nstart = this->_M_impl._M_map + (this->_M_impl._M_map_size
16811 - __new_num_nodes) / 2
16812 + (__add_at_front ? __nodes_to_add : 0);
16813 if (__new_nstart < this->_M_impl._M_start._M_node)
16814 std::copy(this->_M_impl._M_start._M_node,
16815 this->_M_impl._M_finish._M_node + 1,
16816 __new_nstart);
16817 else
16818 std::copy_backward(this->_M_impl._M_start._M_node,
16819 this->_M_impl._M_finish._M_node + 1,
16820 __new_nstart + __old_num_nodes);
16821 }
16822 else
16823 {
16824 size_type __new_map_size = this->_M_impl._M_map_size
16825 + std::max(this->_M_impl._M_map_size,
16826 __nodes_to_add) + 2;
16827
16828 _Map_pointer __new_map = this->_M_allocate_map(__new_map_size);
16829 __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2
16830 + (__add_at_front ? __nodes_to_add : 0);
16831 std::copy(this->_M_impl._M_start._M_node,
16832 this->_M_impl._M_finish._M_node + 1,
16833 __new_nstart);
16834 _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size);
16835
16836 this->_M_impl._M_map = __new_map;
16837 this->_M_impl._M_map_size = __new_map_size;
16838 }
16839
16840 this->_M_impl._M_start._M_set_node(__new_nstart);
16841 this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
16842 }
16843
16844
16845
16846 template<typename _Tp>
16847 void
16848 fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first,
16849 const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value)
16850 {
16851 typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self;
16852
16853 for (typename _Self::_Map_pointer __node = __first._M_node + 1;
16854 __node < __last._M_node; ++__node)
16855 std::fill(*__node, *__node + _Self::_S_buffer_size(), __value);
16856
16857 if (__first._M_node != __last._M_node)
16858 {
16859 std::fill(__first._M_cur, __first._M_last, __value);
16860 std::fill(__last._M_first, __last._M_cur, __value);
16861 }
16862 else
16863 std::fill(__first._M_cur, __last._M_cur, __value);
16864 }
16865
16866 }
16867 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
16868 # 40 "Command.h" 2
16869
16870 namespace aria2 {
16871
16872 class Logger;
16873
16874 typedef int32_t CommandUuid;
16875
16876 class Command {
16877 public:
16878 enum STATUS {
16879 STATUS_ALL,
16880 STATUS_INACTIVE,
16881 STATUS_ACTIVE,
16882 STATUS_REALTIME
16883 };
16884 private:
16885 CommandUuid uuid;
16886 static int32_t uuidGen;
16887 STATUS status;
16888 protected:
16889 int32_t cuid;
16890 const Logger* logger;
16891 public:
16892 Command(int32_t cuid);
16893
16894 virtual ~Command() {}
16895
16896 virtual bool execute() = 0;
16897
16898 int32_t getCuid() const { return cuid; }
16899
16900 const CommandUuid& getUuid() const { return uuid; }
16901
16902 void setStatusActive() { this->status = STATUS_ACTIVE; }
16903
16904 void setStatusInactive() { this->status = STATUS_INACTIVE; }
16905
16906 void setStatusRealtime() { this->status = STATUS_REALTIME; }
16907
16908 bool statusMatch(Command::STATUS statusFilter) const
16909 {
16910 return statusFilter <= status;
16911 }
16912
16913 void transitStatus();
16914 };
16915
16916 typedef std::deque<Command*> Commands;
16917
16918 }
16919 # 36 "Command.cc" 2
16920 # 1 "LogFactory.h" 1
16921 # 36 "LogFactory.h"
16922 #define _D_LOG_FACTORY_H_
16923
16924
16925 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 1 3
16926 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 3
16927 #define _GLIBCXX_STRING 1
16928
16929
16930 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 3
16931
16932
16933
16934 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 1 3
16935 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16936 #define _CHAR_TRAITS_H 1
16937
16938
16939 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16940
16941
16942
16943
16944
16945 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
16946 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16947 template <class _CharT>
16948 struct _Char_types
16949 {
16950 typedef unsigned long int_type;
16951 typedef std::streampos pos_type;
16952 typedef std::streamoff off_type;
16953 typedef std::mbstate_t state_type;
16954 };
16955 # 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16956 template<typename _CharT>
16957 struct char_traits
16958 {
16959 typedef _CharT char_type;
16960 typedef typename _Char_types<_CharT>::int_type int_type;
16961 typedef typename _Char_types<_CharT>::pos_type pos_type;
16962 typedef typename _Char_types<_CharT>::off_type off_type;
16963 typedef typename _Char_types<_CharT>::state_type state_type;
16964
16965 static void
16966 assign(char_type& __c1, const char_type& __c2)
16967 { __c1 = __c2; }
16968
16969 static bool
16970 eq(const char_type& __c1, const char_type& __c2)
16971 { return __c1 == __c2; }
16972
16973 static bool
16974 lt(const char_type& __c1, const char_type& __c2)
16975 { return __c1 < __c2; }
16976
16977 static int
16978 compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
16979
16980 static std::size_t
16981 length(const char_type* __s);
16982
16983 static const char_type*
16984 find(const char_type* __s, std::size_t __n, const char_type& __a);
16985
16986 static char_type*
16987 move(char_type* __s1, const char_type* __s2, std::size_t __n);
16988
16989 static char_type*
16990 copy(char_type* __s1, const char_type* __s2, std::size_t __n);
16991
16992 static char_type*
16993 assign(char_type* __s, std::size_t __n, char_type __a);
16994
16995 static char_type
16996 to_char_type(const int_type& __c)
16997 { return static_cast<char_type>(__c); }
16998
16999 static int_type
17000 to_int_type(const char_type& __c)
17001 { return static_cast<int_type>(__c); }
17002
17003 static bool
17004 eq_int_type(const int_type& __c1, const int_type& __c2)
17005 { return __c1 == __c2; }
17006
17007 static int_type
17008 eof()
17009 { return static_cast<int_type>((-1)); }
17010
17011 static int_type
17012 not_eof(const int_type& __c)
17013 { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
17014 };
17015
17016 template<typename _CharT>
17017 int
17018 char_traits<_CharT>::
17019 compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
17020 {
17021 for (std::size_t __i = 0; __i < __n; ++__i)
17022 if (lt(__s1[__i], __s2[__i]))
17023 return -1;
17024 else if (lt(__s2[__i], __s1[__i]))
17025 return 1;
17026 return 0;
17027 }
17028
17029 template<typename _CharT>
17030 std::size_t
17031 char_traits<_CharT>::
17032 length(const char_type* __p)
17033 {
17034 std::size_t __i = 0;
17035 while (!eq(__p[__i], char_type()))
17036 ++__i;
17037 return __i;
17038 }
17039
17040 template<typename _CharT>
17041 const typename char_traits<_CharT>::char_type*
17042 char_traits<_CharT>::
17043 find(const char_type* __s, std::size_t __n, const char_type& __a)
17044 {
17045 for (std::size_t __i = 0; __i < __n; ++__i)
17046 if (eq(__s[__i], __a))
17047 return __s + __i;
17048 return 0;
17049 }
17050
17051 template<typename _CharT>
17052 typename char_traits<_CharT>::char_type*
17053 char_traits<_CharT>::
17054 move(char_type* __s1, const char_type* __s2, std::size_t __n)
17055 {
17056 return static_cast<_CharT*>(std::memmove(__s1, __s2,
17057 __n * sizeof(char_type)));
17058 }
17059
17060 template<typename _CharT>
17061 typename char_traits<_CharT>::char_type*
17062 char_traits<_CharT>::
17063 copy(char_type* __s1, const char_type* __s2, std::size_t __n)
17064 {
17065 std::copy(__s2, __s2 + __n, __s1);
17066 return __s1;
17067 }
17068
17069 template<typename _CharT>
17070 typename char_traits<_CharT>::char_type*
17071 char_traits<_CharT>::
17072 assign(char_type* __s, std::size_t __n, char_type __a)
17073 {
17074 std::fill_n(__s, __n, __a);
17075 return __s;
17076 }
17077
17078 }
17079
17080 namespace std __attribute__ ((__visibility__ ("default"))) {
17081 # 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
17082 template<class _CharT>
17083 struct char_traits : public __gnu_cxx::char_traits<_CharT>
17084 { };
17085
17086
17087
17088 template<>
17089 struct char_traits<char>
17090 {
17091 typedef char char_type;
17092 typedef int int_type;
17093 typedef streampos pos_type;
17094 typedef streamoff off_type;
17095 typedef mbstate_t state_type;
17096
17097 static void
17098 assign(char_type& __c1, const char_type& __c2)
17099 { __c1 = __c2; }
17100
17101 static bool
17102 eq(const char_type& __c1, const char_type& __c2)
17103 { return __c1 == __c2; }
17104
17105 static bool
17106 lt(const char_type& __c1, const char_type& __c2)
17107 { return __c1 < __c2; }
17108
17109 static int
17110 compare(const char_type* __s1, const char_type* __s2, size_t __n)
17111 { return memcmp(__s1, __s2, __n); }
17112
17113 static size_t
17114 length(const char_type* __s)
17115 { return strlen(__s); }
17116
17117 static const char_type*
17118 find(const char_type* __s, size_t __n, const char_type& __a)
17119 { return static_cast<const char_type*>(memchr(__s, __a, __n)); }
17120
17121 static char_type*
17122 move(char_type* __s1, const char_type* __s2, size_t __n)
17123 { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }
17124
17125 static char_type*
17126 copy(char_type* __s1, const char_type* __s2, size_t __n)
17127 { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }
17128
17129 static char_type*
17130 assign(char_type* __s, size_t __n, char_type __a)
17131 { return static_cast<char_type*>(memset(__s, __a, __n)); }
17132
17133 static char_type
17134 to_char_type(const int_type& __c)
17135 { return static_cast<char_type>(__c); }
17136
17137
17138
17139 static int_type
17140 to_int_type(const char_type& __c)
17141 { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
17142
17143 static bool
17144 eq_int_type(const int_type& __c1, const int_type& __c2)
17145 { return __c1 == __c2; }
17146
17147 static int_type
17148 eof() { return static_cast<int_type>((-1)); }
17149
17150 static int_type
17151 not_eof(const int_type& __c)
17152 { return (__c == eof()) ? 0 : __c; }
17153 };
17154
17155
17156
17157
17158 template<>
17159 struct char_traits<wchar_t>
17160 {
17161 typedef wchar_t char_type;
17162 typedef wint_t int_type;
17163 typedef streamoff off_type;
17164 typedef wstreampos pos_type;
17165 typedef mbstate_t state_type;
17166
17167 static void
17168 assign(char_type& __c1, const char_type& __c2)
17169 { __c1 = __c2; }
17170
17171 static bool
17172 eq(const char_type& __c1, const char_type& __c2)
17173 { return __c1 == __c2; }
17174
17175 static bool
17176 lt(const char_type& __c1, const char_type& __c2)
17177 { return __c1 < __c2; }
17178
17179 static int
17180 compare(const char_type* __s1, const char_type* __s2, size_t __n)
17181 { return wmemcmp(__s1, __s2, __n); }
17182
17183 static size_t
17184 length(const char_type* __s)
17185 { return wcslen(__s); }
17186
17187 static const char_type*
17188 find(const char_type* __s, size_t __n, const char_type& __a)
17189 { return wmemchr(__s, __a, __n); }
17190
17191 static char_type*
17192 move(char_type* __s1, const char_type* __s2, size_t __n)
17193 { return wmemmove(__s1, __s2, __n); }
17194
17195 static char_type*
17196 copy(char_type* __s1, const char_type* __s2, size_t __n)
17197 { return wmemcpy(__s1, __s2, __n); }
17198
17199 static char_type*
17200 assign(char_type* __s, size_t __n, char_type __a)
17201 { return wmemset(__s, __a, __n); }
17202
17203 static char_type
17204 to_char_type(const int_type& __c) { return char_type(__c); }
17205
17206 static int_type
17207 to_int_type(const char_type& __c) { return int_type(__c); }
17208
17209 static bool
17210 eq_int_type(const int_type& __c1, const int_type& __c2)
17211 { return __c1 == __c2; }
17212
17213 static int_type
17214 eof() { return static_cast<int_type>((0xffffffffu)); }
17215
17216 static int_type
17217 not_eof(const int_type& __c)
17218 { return eq_int_type(__c, eof()) ? 0 : __c; }
17219 };
17220
17221
17222 }
17223 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
17224 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 1 3
17225 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
17226 #define _GLIBCXX_MEMORY 1
17227
17228
17229 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
17230
17231
17232
17233
17234
17235
17236 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3
17237 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_raw_storage_iter.h" 3
17238 #define _STL_RAW_STORAGE_ITERATOR_H 1
17239
17240 namespace std __attribute__ ((__visibility__ ("default"))) {
17241
17242
17243
17244
17245
17246 template <class _ForwardIterator, class _Tp>
17247 class raw_storage_iterator
17248 : public iterator<output_iterator_tag, void, void, void, void>
17249 {
17250 protected:
17251 _ForwardIterator _M_iter;
17252
17253 public:
17254 explicit
17255 raw_storage_iterator(_ForwardIterator __x)
17256 : _M_iter(__x) {}
17257
17258 raw_storage_iterator&
17259 operator*() { return *this; }
17260
17261 raw_storage_iterator&
17262 operator=(const _Tp& __element)
17263 {
17264 std::_Construct(&*_M_iter, __element);
17265 return *this;
17266 }
17267
17268 raw_storage_iterator<_ForwardIterator, _Tp>&
17269 operator++()
17270 {
17271 ++_M_iter;
17272 return *this;
17273 }
17274
17275 raw_storage_iterator<_ForwardIterator, _Tp>
17276 operator++(int)
17277 {
17278 raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
17279 ++_M_iter;
17280 return __tmp;
17281 }
17282 };
17283
17284 }
17285 # 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 2 3
17286
17287 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 1 3
17288 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17289 #define _GLIBCXX_NUMERIC_LIMITS 1
17290
17291
17292 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17293 # 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17294 #define __glibcxx_integral_traps true
17295 # 95 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17296 #define __glibcxx_float_has_denorm_loss false
17297
17298
17299 #define __glibcxx_float_traps false
17300
17301
17302 #define __glibcxx_float_tinyness_before false
17303
17304
17305
17306
17307
17308
17309
17310 #define __glibcxx_double_has_denorm_loss false
17311
17312
17313 #define __glibcxx_double_traps false
17314
17315
17316 #define __glibcxx_double_tinyness_before false
17317
17318
17319
17320
17321
17322
17323
17324 #define __glibcxx_long_double_has_denorm_loss false
17325
17326
17327 #define __glibcxx_long_double_traps false
17328
17329
17330 #define __glibcxx_long_double_tinyness_before false
17331
17332
17333
17334
17335 #define __glibcxx_signed(T) ((T)(-1) < 0)
17336
17337 #define __glibcxx_min(T) (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0)
17338
17339
17340 #define __glibcxx_max(T) (__glibcxx_signed (T) ? ((T)1 << __glibcxx_digits (T)) - 1 : ~(T)0)
17341
17342
17343 #define __glibcxx_digits(T) (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T))
17344
17345
17346
17347 #define __glibcxx_digits10(T) (__glibcxx_digits (T) * 643 / 2136)
17348
17349
17350
17351 namespace std __attribute__ ((__visibility__ ("default"))) {
17352
17353
17354
17355
17356
17357
17358 enum float_round_style
17359 {
17360 round_indeterminate = -1,
17361 round_toward_zero = 0,
17362 round_to_nearest = 1,
17363 round_toward_infinity = 2,
17364 round_toward_neg_infinity = 3
17365 };
17366
17367
17368
17369
17370
17371
17372
17373 enum float_denorm_style
17374 {
17375
17376 denorm_indeterminate = -1,
17377
17378 denorm_absent = 0,
17379
17380 denorm_present = 1
17381 };
17382 # 192 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17383 struct __numeric_limits_base
17384 {
17385
17386
17387 static const bool is_specialized = false;
17388
17389
17390
17391
17392 static const int digits = 0;
17393
17394 static const int digits10 = 0;
17395
17396 static const bool is_signed = false;
17397
17398
17399
17400
17401
17402 static const bool is_integer = false;
17403
17404
17405
17406
17407 static const bool is_exact = false;
17408
17409
17410 static const int radix = 0;
17411
17412
17413
17414 static const int min_exponent = 0;
17415
17416
17417 static const int min_exponent10 = 0;
17418
17419
17420
17421 static const int max_exponent = 0;
17422
17423
17424 static const int max_exponent10 = 0;
17425
17426
17427 static const bool has_infinity = false;
17428
17429
17430 static const bool has_quiet_NaN = false;
17431
17432
17433 static const bool has_signaling_NaN = false;
17434
17435 static const float_denorm_style has_denorm = denorm_absent;
17436
17437
17438 static const bool has_denorm_loss = false;
17439
17440
17441
17442 static const bool is_iec559 = false;
17443
17444
17445
17446 static const bool is_bounded = false;
17447
17448
17449
17450
17451 static const bool is_modulo = false;
17452
17453
17454 static const bool traps = false;
17455
17456 static const bool tinyness_before = false;
17457
17458
17459
17460 static const float_round_style round_style = round_toward_zero;
17461 };
17462 # 285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17463 template<typename _Tp>
17464 struct numeric_limits : public __numeric_limits_base
17465 {
17466
17467
17468 static _Tp min() throw() { return static_cast<_Tp>(0); }
17469
17470 static _Tp max() throw() { return static_cast<_Tp>(0); }
17471
17472
17473 static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
17474
17475 static _Tp round_error() throw() { return static_cast<_Tp>(0); }
17476
17477 static _Tp infinity() throw() { return static_cast<_Tp>(0); }
17478
17479 static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
17480
17481
17482 static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
17483
17484
17485
17486 static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
17487 };
17488
17489
17490
17491
17492
17493 template<>
17494 struct numeric_limits<bool>
17495 {
17496 static const bool is_specialized = true;
17497
17498 static bool min() throw()
17499 { return false; }
17500 static bool max() throw()
17501 { return true; }
17502
17503 static const int digits = 1;
17504 static const int digits10 = 0;
17505 static const bool is_signed = false;
17506 static const bool is_integer = true;
17507 static const bool is_exact = true;
17508 static const int radix = 2;
17509 static bool epsilon() throw()
17510 { return false; }
17511 static bool round_error() throw()
17512 { return false; }
17513
17514 static const int min_exponent = 0;
17515 static const int min_exponent10 = 0;
17516 static const int max_exponent = 0;
17517 static const int max_exponent10 = 0;
17518
17519 static const bool has_infinity = false;
17520 static const bool has_quiet_NaN = false;
17521 static const bool has_signaling_NaN = false;
17522 static const float_denorm_style has_denorm = denorm_absent;
17523 static const bool has_denorm_loss = false;
17524
17525 static bool infinity() throw()
17526 { return false; }
17527 static bool quiet_NaN() throw()
17528 { return false; }
17529 static bool signaling_NaN() throw()
17530 { return false; }
17531 static bool denorm_min() throw()
17532 { return false; }
17533
17534 static const bool is_iec559 = false;
17535 static const bool is_bounded = true;
17536 static const bool is_modulo = false;
17537
17538
17539
17540
17541 static const bool traps = true;
17542 static const bool tinyness_before = false;
17543 static const float_round_style round_style = round_toward_zero;
17544 };
17545
17546
17547 template<>
17548 struct numeric_limits<char>
17549 {
17550 static const bool is_specialized = true;
17551
17552 static char min() throw()
17553 { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
17554 static char max() throw()
17555 { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
17556
17557 static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
17558 static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
17559 static const bool is_signed = ((char)(-1) < 0);
17560 static const bool is_integer = true;
17561 static const bool is_exact = true;
17562 static const int radix = 2;
17563 static char epsilon() throw()
17564 { return 0; }
17565 static char round_error() throw()
17566 { return 0; }
17567
17568 static const int min_exponent = 0;
17569 static const int min_exponent10 = 0;
17570 static const int max_exponent = 0;
17571 static const int max_exponent10 = 0;
17572
17573 static const bool has_infinity = false;
17574 static const bool has_quiet_NaN = false;
17575 static const bool has_signaling_NaN = false;
17576 static const float_denorm_style has_denorm = denorm_absent;
17577 static const bool has_denorm_loss = false;
17578
17579 static char infinity() throw()
17580 { return char(); }
17581 static char quiet_NaN() throw()
17582 { return char(); }
17583 static char signaling_NaN() throw()
17584 { return char(); }
17585 static char denorm_min() throw()
17586 { return static_cast<char>(0); }
17587
17588 static const bool is_iec559 = false;
17589 static const bool is_bounded = true;
17590 static const bool is_modulo = true;
17591
17592 static const bool traps = true;
17593 static const bool tinyness_before = false;
17594 static const float_round_style round_style = round_toward_zero;
17595 };
17596
17597
17598 template<>
17599 struct numeric_limits<signed char>
17600 {
17601 static const bool is_specialized = true;
17602
17603 static signed char min() throw()
17604 { return -127 - 1; }
17605 static signed char max() throw()
17606 { return 127; }
17607
17608 static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
17609 static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
17610 static const bool is_signed = true;
17611 static const bool is_integer = true;
17612 static const bool is_exact = true;
17613 static const int radix = 2;
17614 static signed char epsilon() throw()
17615 { return 0; }
17616 static signed char round_error() throw()
17617 { return 0; }
17618
17619 static const int min_exponent = 0;
17620 static const int min_exponent10 = 0;
17621 static const int max_exponent = 0;
17622 static const int max_exponent10 = 0;
17623
17624 static const bool has_infinity = false;
17625 static const bool has_quiet_NaN = false;
17626 static const bool has_signaling_NaN = false;
17627 static const float_denorm_style has_denorm = denorm_absent;
17628 static const bool has_denorm_loss = false;
17629
17630 static signed char infinity() throw()
17631 { return static_cast<signed char>(0); }
17632 static signed char quiet_NaN() throw()
17633 { return static_cast<signed char>(0); }
17634 static signed char signaling_NaN() throw()
17635 { return static_cast<signed char>(0); }
17636 static signed char denorm_min() throw()
17637 { return static_cast<signed char>(0); }
17638
17639 static const bool is_iec559 = false;
17640 static const bool is_bounded = true;
17641 static const bool is_modulo = true;
17642
17643 static const bool traps = true;
17644 static const bool tinyness_before = false;
17645 static const float_round_style round_style = round_toward_zero;
17646 };
17647
17648
17649 template<>
17650 struct numeric_limits<unsigned char>
17651 {
17652 static const bool is_specialized = true;
17653
17654 static unsigned char min() throw()
17655 { return 0; }
17656 static unsigned char max() throw()
17657 { return 127 * 2U + 1; }
17658
17659 static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
17660 static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
17661 static const bool is_signed = false;
17662 static const bool is_integer = true;
17663 static const bool is_exact = true;
17664 static const int radix = 2;
17665 static unsigned char epsilon() throw()
17666 { return 0; }
17667 static unsigned char round_error() throw()
17668 { return 0; }
17669
17670 static const int min_exponent = 0;
17671 static const int min_exponent10 = 0;
17672 static const int max_exponent = 0;
17673 static const int max_exponent10 = 0;
17674
17675 static const bool has_infinity = false;
17676 static const bool has_quiet_NaN = false;
17677 static const bool has_signaling_NaN = false;
17678 static const float_denorm_style has_denorm = denorm_absent;
17679 static const bool has_denorm_loss = false;
17680
17681 static unsigned char infinity() throw()
17682 { return static_cast<unsigned char>(0); }
17683 static unsigned char quiet_NaN() throw()
17684 { return static_cast<unsigned char>(0); }
17685 static unsigned char signaling_NaN() throw()
17686 { return static_cast<unsigned char>(0); }
17687 static unsigned char denorm_min() throw()
17688 { return static_cast<unsigned char>(0); }
17689
17690 static const bool is_iec559 = false;
17691 static const bool is_bounded = true;
17692 static const bool is_modulo = true;
17693
17694 static const bool traps = true;
17695 static const bool tinyness_before = false;
17696 static const float_round_style round_style = round_toward_zero;
17697 };
17698
17699
17700 template<>
17701 struct numeric_limits<wchar_t>
17702 {
17703 static const bool is_specialized = true;
17704
17705 static wchar_t min() throw()
17706 { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
17707 static wchar_t max() throw()
17708 { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
17709
17710 static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
17711 static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
17712 static const bool is_signed = ((wchar_t)(-1) < 0);
17713 static const bool is_integer = true;
17714 static const bool is_exact = true;
17715 static const int radix = 2;
17716 static wchar_t epsilon() throw()
17717 { return 0; }
17718 static wchar_t round_error() throw()
17719 { return 0; }
17720
17721 static const int min_exponent = 0;
17722 static const int min_exponent10 = 0;
17723 static const int max_exponent = 0;
17724 static const int max_exponent10 = 0;
17725
17726 static const bool has_infinity = false;
17727 static const bool has_quiet_NaN = false;
17728 static const bool has_signaling_NaN = false;
17729 static const float_denorm_style has_denorm = denorm_absent;
17730 static const bool has_denorm_loss = false;
17731
17732 static wchar_t infinity() throw()
17733 { return wchar_t(); }
17734 static wchar_t quiet_NaN() throw()
17735 { return wchar_t(); }
17736 static wchar_t signaling_NaN() throw()
17737 { return wchar_t(); }
17738 static wchar_t denorm_min() throw()
17739 { return wchar_t(); }
17740
17741 static const bool is_iec559 = false;
17742 static const bool is_bounded = true;
17743 static const bool is_modulo = true;
17744
17745 static const bool traps = true;
17746 static const bool tinyness_before = false;
17747 static const float_round_style round_style = round_toward_zero;
17748 };
17749
17750
17751 template<>
17752 struct numeric_limits<short>
17753 {
17754 static const bool is_specialized = true;
17755
17756 static short min() throw()
17757 { return -32767 - 1; }
17758 static short max() throw()
17759 { return 32767; }
17760
17761 static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
17762 static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
17763 static const bool is_signed = true;
17764 static const bool is_integer = true;
17765 static const bool is_exact = true;
17766 static const int radix = 2;
17767 static short epsilon() throw()
17768 { return 0; }
17769 static short round_error() throw()
17770 { return 0; }
17771
17772 static const int min_exponent = 0;
17773 static const int min_exponent10 = 0;
17774 static const int max_exponent = 0;
17775 static const int max_exponent10 = 0;
17776
17777 static const bool has_infinity = false;
17778 static const bool has_quiet_NaN = false;
17779 static const bool has_signaling_NaN = false;
17780 static const float_denorm_style has_denorm = denorm_absent;
17781 static const bool has_denorm_loss = false;
17782
17783 static short infinity() throw()
17784 { return short(); }
17785 static short quiet_NaN() throw()
17786 { return short(); }
17787 static short signaling_NaN() throw()
17788 { return short(); }
17789 static short denorm_min() throw()
17790 { return short(); }
17791
17792 static const bool is_iec559 = false;
17793 static const bool is_bounded = true;
17794 static const bool is_modulo = true;
17795
17796 static const bool traps = true;
17797 static const bool tinyness_before = false;
17798 static const float_round_style round_style = round_toward_zero;
17799 };
17800
17801
17802 template<>
17803 struct numeric_limits<unsigned short>
17804 {
17805 static const bool is_specialized = true;
17806
17807 static unsigned short min() throw()
17808 { return 0; }
17809 static unsigned short max() throw()
17810 { return 32767 * 2U + 1; }
17811
17812 static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
17813 static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
17814 static const bool is_signed = false;
17815 static const bool is_integer = true;
17816 static const bool is_exact = true;
17817 static const int radix = 2;
17818 static unsigned short epsilon() throw()
17819 { return 0; }
17820 static unsigned short round_error() throw()
17821 { return 0; }
17822
17823 static const int min_exponent = 0;
17824 static const int min_exponent10 = 0;
17825 static const int max_exponent = 0;
17826 static const int max_exponent10 = 0;
17827
17828 static const bool has_infinity = false;
17829 static const bool has_quiet_NaN = false;
17830 static const bool has_signaling_NaN = false;
17831 static const float_denorm_style has_denorm = denorm_absent;
17832 static const bool has_denorm_loss = false;
17833
17834 static unsigned short infinity() throw()
17835 { return static_cast<unsigned short>(0); }
17836 static unsigned short quiet_NaN() throw()
17837 { return static_cast<unsigned short>(0); }
17838 static unsigned short signaling_NaN() throw()
17839 { return static_cast<unsigned short>(0); }
17840 static unsigned short denorm_min() throw()
17841 { return static_cast<unsigned short>(0); }
17842
17843 static const bool is_iec559 = false;
17844 static const bool is_bounded = true;
17845 static const bool is_modulo = true;
17846
17847 static const bool traps = true;
17848 static const bool tinyness_before = false;
17849 static const float_round_style round_style = round_toward_zero;
17850 };
17851
17852
17853 template<>
17854 struct numeric_limits<int>
17855 {
17856 static const bool is_specialized = true;
17857
17858 static int min() throw()
17859 { return -2147483647 - 1; }
17860 static int max() throw()
17861 { return 2147483647; }
17862
17863 static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
17864 static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
17865 static const bool is_signed = true;
17866 static const bool is_integer = true;
17867 static const bool is_exact = true;
17868 static const int radix = 2;
17869 static int epsilon() throw()
17870 { return 0; }
17871 static int round_error() throw()
17872 { return 0; }
17873
17874 static const int min_exponent = 0;
17875 static const int min_exponent10 = 0;
17876 static const int max_exponent = 0;
17877 static const int max_exponent10 = 0;
17878
17879 static const bool has_infinity = false;
17880 static const bool has_quiet_NaN = false;
17881 static const bool has_signaling_NaN = false;
17882 static const float_denorm_style has_denorm = denorm_absent;
17883 static const bool has_denorm_loss = false;
17884
17885 static int infinity() throw()
17886 { return static_cast<int>(0); }
17887 static int quiet_NaN() throw()
17888 { return static_cast<int>(0); }
17889 static int signaling_NaN() throw()
17890 { return static_cast<int>(0); }
17891 static int denorm_min() throw()
17892 { return static_cast<int>(0); }
17893
17894 static const bool is_iec559 = false;
17895 static const bool is_bounded = true;
17896 static const bool is_modulo = true;
17897
17898 static const bool traps = true;
17899 static const bool tinyness_before = false;
17900 static const float_round_style round_style = round_toward_zero;
17901 };
17902
17903
17904 template<>
17905 struct numeric_limits<unsigned int>
17906 {
17907 static const bool is_specialized = true;
17908
17909 static unsigned int min() throw()
17910 { return 0; }
17911 static unsigned int max() throw()
17912 { return 2147483647 * 2U + 1; }
17913
17914 static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
17915 static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
17916 static const bool is_signed = false;
17917 static const bool is_integer = true;
17918 static const bool is_exact = true;
17919 static const int radix = 2;
17920 static unsigned int epsilon() throw()
17921 { return 0; }
17922 static unsigned int round_error() throw()
17923 { return 0; }
17924
17925 static const int min_exponent = 0;
17926 static const int min_exponent10 = 0;
17927 static const int max_exponent = 0;
17928 static const int max_exponent10 = 0;
17929
17930 static const bool has_infinity = false;
17931 static const bool has_quiet_NaN = false;
17932 static const bool has_signaling_NaN = false;
17933 static const float_denorm_style has_denorm = denorm_absent;
17934 static const bool has_denorm_loss = false;
17935
17936 static unsigned int infinity() throw()
17937 { return static_cast<unsigned int>(0); }
17938 static unsigned int quiet_NaN() throw()
17939 { return static_cast<unsigned int>(0); }
17940 static unsigned int signaling_NaN() throw()
17941 { return static_cast<unsigned int>(0); }
17942 static unsigned int denorm_min() throw()
17943 { return static_cast<unsigned int>(0); }
17944
17945 static const bool is_iec559 = false;
17946 static const bool is_bounded = true;
17947 static const bool is_modulo = true;
17948
17949 static const bool traps = true;
17950 static const bool tinyness_before = false;
17951 static const float_round_style round_style = round_toward_zero;
17952 };
17953
17954
17955 template<>
17956 struct numeric_limits<long>
17957 {
17958 static const bool is_specialized = true;
17959
17960 static long min() throw()
17961 { return -9223372036854775807L - 1; }
17962 static long max() throw()
17963 { return 9223372036854775807L; }
17964
17965 static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
17966 static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
17967 static const bool is_signed = true;
17968 static const bool is_integer = true;
17969 static const bool is_exact = true;
17970 static const int radix = 2;
17971 static long epsilon() throw()
17972 { return 0; }
17973 static long round_error() throw()
17974 { return 0; }
17975
17976 static const int min_exponent = 0;
17977 static const int min_exponent10 = 0;
17978 static const int max_exponent = 0;
17979 static const int max_exponent10 = 0;
17980
17981 static const bool has_infinity = false;
17982 static const bool has_quiet_NaN = false;
17983 static const bool has_signaling_NaN = false;
17984 static const float_denorm_style has_denorm = denorm_absent;
17985 static const bool has_denorm_loss = false;
17986
17987 static long infinity() throw()
17988 { return static_cast<long>(0); }
17989 static long quiet_NaN() throw()
17990 { return static_cast<long>(0); }
17991 static long signaling_NaN() throw()
17992 { return static_cast<long>(0); }
17993 static long denorm_min() throw()
17994 { return static_cast<long>(0); }
17995
17996 static const bool is_iec559 = false;
17997 static const bool is_bounded = true;
17998 static const bool is_modulo = true;
17999
18000 static const bool traps = true;
18001 static const bool tinyness_before = false;
18002 static const float_round_style round_style = round_toward_zero;
18003 };
18004
18005
18006 template<>
18007 struct numeric_limits<unsigned long>
18008 {
18009 static const bool is_specialized = true;
18010
18011 static unsigned long min() throw()
18012 { return 0; }
18013 static unsigned long max() throw()
18014 { return 9223372036854775807L * 2UL + 1; }
18015
18016 static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
18017 static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
18018 static const bool is_signed = false;
18019 static const bool is_integer = true;
18020 static const bool is_exact = true;
18021 static const int radix = 2;
18022 static unsigned long epsilon() throw()
18023 { return 0; }
18024 static unsigned long round_error() throw()
18025 { return 0; }
18026
18027 static const int min_exponent = 0;
18028 static const int min_exponent10 = 0;
18029 static const int max_exponent = 0;
18030 static const int max_exponent10 = 0;
18031
18032 static const bool has_infinity = false;
18033 static const bool has_quiet_NaN = false;
18034 static const bool has_signaling_NaN = false;
18035 static const float_denorm_style has_denorm = denorm_absent;
18036 static const bool has_denorm_loss = false;
18037
18038 static unsigned long infinity() throw()
18039 { return static_cast<unsigned long>(0); }
18040 static unsigned long quiet_NaN() throw()
18041 { return static_cast<unsigned long>(0); }
18042 static unsigned long signaling_NaN() throw()
18043 { return static_cast<unsigned long>(0); }
18044 static unsigned long denorm_min() throw()
18045 { return static_cast<unsigned long>(0); }
18046
18047 static const bool is_iec559 = false;
18048 static const bool is_bounded = true;
18049 static const bool is_modulo = true;
18050
18051 static const bool traps = true;
18052 static const bool tinyness_before = false;
18053 static const float_round_style round_style = round_toward_zero;
18054 };
18055
18056
18057 template<>
18058 struct numeric_limits<long long>
18059 {
18060 static const bool is_specialized = true;
18061
18062 static long long min() throw()
18063 { return -9223372036854775807LL - 1; }
18064 static long long max() throw()
18065 { return 9223372036854775807LL; }
18066
18067 static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
18068 static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
18069 static const bool is_signed = true;
18070 static const bool is_integer = true;
18071 static const bool is_exact = true;
18072 static const int radix = 2;
18073 static long long epsilon() throw()
18074 { return 0; }
18075 static long long round_error() throw()
18076 { return 0; }
18077
18078 static const int min_exponent = 0;
18079 static const int min_exponent10 = 0;
18080 static const int max_exponent = 0;
18081 static const int max_exponent10 = 0;
18082
18083 static const bool has_infinity = false;
18084 static const bool has_quiet_NaN = false;
18085 static const bool has_signaling_NaN = false;
18086 static const float_denorm_style has_denorm = denorm_absent;
18087 static const bool has_denorm_loss = false;
18088
18089 static long long infinity() throw()
18090 { return static_cast<long long>(0); }
18091 static long long quiet_NaN() throw()
18092 { return static_cast<long long>(0); }
18093 static long long signaling_NaN() throw()
18094 { return static_cast<long long>(0); }
18095 static long long denorm_min() throw()
18096 { return static_cast<long long>(0); }
18097
18098 static const bool is_iec559 = false;
18099 static const bool is_bounded = true;
18100 static const bool is_modulo = true;
18101
18102 static const bool traps = true;
18103 static const bool tinyness_before = false;
18104 static const float_round_style round_style = round_toward_zero;
18105 };
18106
18107
18108 template<>
18109 struct numeric_limits<unsigned long long>
18110 {
18111 static const bool is_specialized = true;
18112
18113 static unsigned long long min() throw()
18114 { return 0; }
18115 static unsigned long long max() throw()
18116 { return 9223372036854775807LL * 2ULL + 1; }
18117
18118 static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
18119 static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
18120 static const bool is_signed = false;
18121 static const bool is_integer = true;
18122 static const bool is_exact = true;
18123 static const int radix = 2;
18124 static unsigned long long epsilon() throw()
18125 { return 0; }
18126 static unsigned long long round_error() throw()
18127 { return 0; }
18128
18129 static const int min_exponent = 0;
18130 static const int min_exponent10 = 0;
18131 static const int max_exponent = 0;
18132 static const int max_exponent10 = 0;
18133
18134 static const bool has_infinity = false;
18135 static const bool has_quiet_NaN = false;
18136 static const bool has_signaling_NaN = false;
18137 static const float_denorm_style has_denorm = denorm_absent;
18138 static const bool has_denorm_loss = false;
18139
18140 static unsigned long long infinity() throw()
18141 { return static_cast<unsigned long long>(0); }
18142 static unsigned long long quiet_NaN() throw()
18143 { return static_cast<unsigned long long>(0); }
18144 static unsigned long long signaling_NaN() throw()
18145 { return static_cast<unsigned long long>(0); }
18146 static unsigned long long denorm_min() throw()
18147 { return static_cast<unsigned long long>(0); }
18148
18149 static const bool is_iec559 = false;
18150 static const bool is_bounded = true;
18151 static const bool is_modulo = true;
18152
18153 static const bool traps = true;
18154 static const bool tinyness_before = false;
18155 static const float_round_style round_style = round_toward_zero;
18156 };
18157
18158
18159 template<>
18160 struct numeric_limits<float>
18161 {
18162 static const bool is_specialized = true;
18163
18164 static float min() throw()
18165 { return 1.17549435e-38F; }
18166 static float max() throw()
18167 { return 3.40282347e+38F; }
18168
18169 static const int digits = 24;
18170 static const int digits10 = 6;
18171 static const bool is_signed = true;
18172 static const bool is_integer = false;
18173 static const bool is_exact = false;
18174 static const int radix = 2;
18175 static float epsilon() throw()
18176 { return 1.19209290e-7F; }
18177 static float round_error() throw()
18178 { return 0.5F; }
18179
18180 static const int min_exponent = (-125);
18181 static const int min_exponent10 = (-37);
18182 static const int max_exponent = 128;
18183 static const int max_exponent10 = 38;
18184
18185 static const bool has_infinity = 1;
18186 static const bool has_quiet_NaN = 1;
18187 static const bool has_signaling_NaN = has_quiet_NaN;
18188 static const float_denorm_style has_denorm
18189 = bool(1) ? denorm_present : denorm_absent;
18190 static const bool has_denorm_loss = false;
18191
18192 static float infinity() throw()
18193 { return __builtin_huge_valf (); }
18194 static float quiet_NaN() throw()
18195 { return __builtin_nanf (""); }
18196 static float signaling_NaN() throw()
18197 { return __builtin_nansf (""); }
18198 static float denorm_min() throw()
18199 { return 1.40129846e-45F; }
18200
18201 static const bool is_iec559
18202 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
18203 static const bool is_bounded = true;
18204 static const bool is_modulo = false;
18205
18206 static const bool traps = false;
18207 static const bool tinyness_before = false;
18208 static const float_round_style round_style = round_to_nearest;
18209 };
18210
18211 #undef __glibcxx_float_has_denorm_loss
18212 #undef __glibcxx_float_traps
18213 #undef __glibcxx_float_tinyness_before
18214
18215
18216 template<>
18217 struct numeric_limits<double>
18218 {
18219 static const bool is_specialized = true;
18220
18221 static double min() throw()
18222 { return 2.2250738585072014e-308; }
18223 static double max() throw()
18224 { return 1.7976931348623157e+308; }
18225
18226 static const int digits = 53;
18227 static const int digits10 = 15;
18228 static const bool is_signed = true;
18229 static const bool is_integer = false;
18230 static const bool is_exact = false;
18231 static const int radix = 2;
18232 static double epsilon() throw()
18233 { return 2.2204460492503131e-16; }
18234 static double round_error() throw()
18235 { return 0.5; }
18236
18237 static const int min_exponent = (-1021);
18238 static const int min_exponent10 = (-307);
18239 static const int max_exponent = 1024;
18240 static const int max_exponent10 = 308;
18241
18242 static const bool has_infinity = 1;
18243 static const bool has_quiet_NaN = 1;
18244 static const bool has_signaling_NaN = has_quiet_NaN;
18245 static const float_denorm_style has_denorm
18246 = bool(1) ? denorm_present : denorm_absent;
18247 static const bool has_denorm_loss = false;
18248
18249 static double infinity() throw()
18250 { return __builtin_huge_val(); }
18251 static double quiet_NaN() throw()
18252 { return __builtin_nan (""); }
18253 static double signaling_NaN() throw()
18254 { return __builtin_nans (""); }
18255 static double denorm_min() throw()
18256 { return 4.9406564584124654e-324; }
18257
18258 static const bool is_iec559
18259 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
18260 static const bool is_bounded = true;
18261 static const bool is_modulo = false;
18262
18263 static const bool traps = false;
18264 static const bool tinyness_before = false;
18265 static const float_round_style round_style = round_to_nearest;
18266 };
18267
18268 #undef __glibcxx_double_has_denorm_loss
18269 #undef __glibcxx_double_traps
18270 #undef __glibcxx_double_tinyness_before
18271
18272
18273 template<>
18274 struct numeric_limits<long double>
18275 {
18276 static const bool is_specialized = true;
18277
18278 static long double min() throw()
18279 { return 3.36210314311209350626e-4932L; }
18280 static long double max() throw()
18281 { return 1.18973149535723176502e+4932L; }
18282
18283 static const int digits = 64;
18284 static const int digits10 = 18;
18285 static const bool is_signed = true;
18286 static const bool is_integer = false;
18287 static const bool is_exact = false;
18288 static const int radix = 2;
18289 static long double epsilon() throw()
18290 { return 1.08420217248550443401e-19L; }
18291 static long double round_error() throw()
18292 { return 0.5L; }
18293
18294 static const int min_exponent = (-16381);
18295 static const int min_exponent10 = (-4931);
18296 static const int max_exponent = 16384;
18297 static const int max_exponent10 = 4932;
18298
18299 static const bool has_infinity = 1;
18300 static const bool has_quiet_NaN = 1;
18301 static const bool has_signaling_NaN = has_quiet_NaN;
18302 static const float_denorm_style has_denorm
18303 = bool(1) ? denorm_present : denorm_absent;
18304 static const bool has_denorm_loss
18305 = false;
18306
18307 static long double infinity() throw()
18308 { return __builtin_huge_vall (); }
18309 static long double quiet_NaN() throw()
18310 { return __builtin_nanl (""); }
18311 static long double signaling_NaN() throw()
18312 { return __builtin_nansl (""); }
18313 static long double denorm_min() throw()
18314 { return 3.64519953188247460253e-4951L; }
18315
18316 static const bool is_iec559
18317 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
18318 static const bool is_bounded = true;
18319 static const bool is_modulo = false;
18320
18321 static const bool traps = false;
18322 static const bool tinyness_before = false;
18323 static const float_round_style round_style = round_to_nearest;
18324 };
18325
18326 #undef __glibcxx_long_double_has_denorm_loss
18327 #undef __glibcxx_long_double_traps
18328 #undef __glibcxx_long_double_tinyness_before
18329
18330 }
18331
18332 #undef __glibcxx_signed
18333 #undef __glibcxx_min
18334 #undef __glibcxx_max
18335 #undef __glibcxx_digits
18336 #undef __glibcxx_digits10
18337 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 2 3
18338
18339 namespace std __attribute__ ((__visibility__ ("default"))) {
18340 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18341 template<typename _Tp>
18342 pair<_Tp*, ptrdiff_t>
18343 __get_temporary_buffer(ptrdiff_t __len, _Tp*)
18344 {
18345 const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
18346 if (__len > __max)
18347 __len = __max;
18348
18349 while (__len > 0)
18350 {
18351 _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
18352 nothrow));
18353 if (__tmp != 0)
18354 return pair<_Tp*, ptrdiff_t>(__tmp, __len);
18355 __len /= 2;
18356 }
18357 return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
18358 }
18359 # 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18360 template<typename _Tp>
18361 inline pair<_Tp*, ptrdiff_t>
18362 get_temporary_buffer(ptrdiff_t __len)
18363 { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
18364 # 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18365 template<typename _Tp>
18366 void
18367 return_temporary_buffer(_Tp* __p)
18368 { ::operator delete(__p, nothrow); }
18369 # 132 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18370 template<typename _Tp1>
18371 struct auto_ptr_ref
18372 {
18373 _Tp1* _M_ptr;
18374
18375 explicit
18376 auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
18377 };
18378 # 173 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18379 template<typename _Tp>
18380 class auto_ptr
18381 {
18382 private:
18383 _Tp* _M_ptr;
18384
18385 public:
18386
18387 typedef _Tp element_type;
18388
18389
18390
18391
18392
18393
18394
18395 explicit
18396 auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
18397 # 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18398 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
18399 # 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18400 template<typename _Tp1>
18401 auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
18402 # 222 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18403 auto_ptr&
18404 operator=(auto_ptr& __a) throw()
18405 {
18406 reset(__a.release());
18407 return *this;
18408 }
18409 # 239 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18410 template<typename _Tp1>
18411 auto_ptr&
18412 operator=(auto_ptr<_Tp1>& __a) throw()
18413 {
18414 reset(__a.release());
18415 return *this;
18416 }
18417 # 259 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18418 ~auto_ptr() { delete _M_ptr; }
18419 # 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18420 element_type&
18421 operator*() const throw()
18422 {
18423 ;
18424 return *_M_ptr;
18425 }
18426
18427
18428
18429
18430
18431
18432
18433 element_type*
18434 operator->() const throw()
18435 {
18436 ;
18437 return _M_ptr;
18438 }
18439 # 299 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18440 element_type*
18441 get() const throw() { return _M_ptr; }
18442 # 313 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18443 element_type*
18444 release() throw()
18445 {
18446 element_type* __tmp = _M_ptr;
18447 _M_ptr = 0;
18448 return __tmp;
18449 }
18450 # 328 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18451 void
18452 reset(element_type* __p = 0) throw()
18453 {
18454 if (__p != _M_ptr)
18455 {
18456 delete _M_ptr;
18457 _M_ptr = __p;
18458 }
18459 }
18460 # 349 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18461 auto_ptr(auto_ptr_ref<element_type> __ref) throw()
18462 : _M_ptr(__ref._M_ptr) { }
18463
18464 auto_ptr&
18465 operator=(auto_ptr_ref<element_type> __ref) throw()
18466 {
18467 if (__ref._M_ptr != this->get())
18468 {
18469 delete _M_ptr;
18470 _M_ptr = __ref._M_ptr;
18471 }
18472 return *this;
18473 }
18474
18475 template<typename _Tp1>
18476 operator auto_ptr_ref<_Tp1>() throw()
18477 { return auto_ptr_ref<_Tp1>(this->release()); }
18478
18479 template<typename _Tp1>
18480 operator auto_ptr<_Tp1>() throw()
18481 { return auto_ptr<_Tp1>(this->release()); }
18482 };
18483
18484 }
18485 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
18486
18487
18488 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/ostream_insert.h" 1 3
18489 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/ostream_insert.h" 3
18490 #define _OSTREAM_INSERT_H 1
18491
18492
18493 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/ostream_insert.h" 3
18494
18495
18496
18497 namespace std __attribute__ ((__visibility__ ("default"))) {
18498
18499 template<typename _CharT, typename _Traits>
18500 inline void
18501 __ostream_write(basic_ostream<_CharT, _Traits>& __out,
18502 const _CharT* __s, streamsize __n)
18503 {
18504 typedef basic_ostream<_CharT, _Traits> __ostream_type;
18505 typedef typename __ostream_type::ios_base __ios_base;
18506
18507 const streamsize __put = __out.rdbuf()->sputn(__s, __n);
18508 if (__put != __n)
18509 __out.setstate(__ios_base::badbit);
18510 }
18511
18512 template<typename _CharT, typename _Traits>
18513 inline void
18514 __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
18515 {
18516 typedef basic_ostream<_CharT, _Traits> __ostream_type;
18517 typedef typename __ostream_type::ios_base __ios_base;
18518
18519 const _CharT __c = __out.fill();
18520 for (; __n > 0; --__n)
18521 {
18522 const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
18523 if (_Traits::eq_int_type(__put, _Traits::eof()))
18524 {
18525 __out.setstate(__ios_base::badbit);
18526 break;
18527 }
18528 }
18529 }
18530
18531 template<typename _CharT, typename _Traits>
18532 basic_ostream<_CharT, _Traits>&
18533 __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
18534 const _CharT* __s, streamsize __n)
18535 {
18536 typedef basic_ostream<_CharT, _Traits> __ostream_type;
18537 typedef typename __ostream_type::ios_base __ios_base;
18538
18539 typename __ostream_type::sentry __cerb(__out);
18540 if (__cerb)
18541 {
18542 try
18543 {
18544 const streamsize __w = __out.width();
18545 if (__w > __n)
18546 {
18547 const bool __left = ((__out.flags()
18548 & __ios_base::adjustfield)
18549 == __ios_base::left);
18550 if (!__left)
18551 __ostream_fill(__out, __w - __n);
18552 if (__out.good())
18553 __ostream_write(__out, __s, __n);
18554 if (__left && __out.good())
18555 __ostream_fill(__out, __w - __n);
18556 }
18557 else
18558 __ostream_write(__out, __s, __n);
18559 __out.width(0);
18560 }
18561 catch(...)
18562 { __out._M_setstate(__ios_base::badbit); }
18563 }
18564 return __out;
18565 }
18566
18567
18568
18569
18570
18571 extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
18572
18573
18574 extern template wostream& __ostream_insert(wostream&, const wchar_t*,
18575 streamsize);
18576
18577
18578
18579 }
18580 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
18581
18582 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 1 3
18583 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18584 #define _FUNCTION_H 1
18585
18586 namespace std __attribute__ ((__visibility__ ("default"))) {
18587 # 101 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18588 template <class _Arg, class _Result>
18589 struct unary_function
18590 {
18591 typedef _Arg argument_type;
18592
18593
18594 typedef _Result result_type;
18595 };
18596
18597
18598
18599
18600 template <class _Arg1, class _Arg2, class _Result>
18601 struct binary_function
18602 {
18603 typedef _Arg1 first_argument_type;
18604
18605
18606 typedef _Arg2 second_argument_type;
18607 typedef _Result result_type;
18608 };
18609 # 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18610 template <class _Tp>
18611 struct plus : public binary_function<_Tp, _Tp, _Tp>
18612 {
18613 _Tp
18614 operator()(const _Tp& __x, const _Tp& __y) const
18615 { return __x + __y; }
18616 };
18617
18618
18619 template <class _Tp>
18620 struct minus : public binary_function<_Tp, _Tp, _Tp>
18621 {
18622 _Tp
18623 operator()(const _Tp& __x, const _Tp& __y) const
18624 { return __x - __y; }
18625 };
18626
18627
18628 template <class _Tp>
18629 struct multiplies : public binary_function<_Tp, _Tp, _Tp>
18630 {
18631 _Tp
18632 operator()(const _Tp& __x, const _Tp& __y) const
18633 { return __x * __y; }
18634 };
18635
18636
18637 template <class _Tp>
18638 struct divides : public binary_function<_Tp, _Tp, _Tp>
18639 {
18640 _Tp
18641 operator()(const _Tp& __x, const _Tp& __y) const
18642 { return __x / __y; }
18643 };
18644
18645
18646 template <class _Tp>
18647 struct modulus : public binary_function<_Tp, _Tp, _Tp>
18648 {
18649 _Tp
18650 operator()(const _Tp& __x, const _Tp& __y) const
18651 { return __x % __y; }
18652 };
18653
18654
18655 template <class _Tp>
18656 struct negate : public unary_function<_Tp, _Tp>
18657 {
18658 _Tp
18659 operator()(const _Tp& __x) const
18660 { return -__x; }
18661 };
18662 # 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18663 template <class _Tp>
18664 struct equal_to : public binary_function<_Tp, _Tp, bool>
18665 {
18666 bool
18667 operator()(const _Tp& __x, const _Tp& __y) const
18668 { return __x == __y; }
18669 };
18670
18671
18672 template <class _Tp>
18673 struct not_equal_to : public binary_function<_Tp, _Tp, bool>
18674 {
18675 bool
18676 operator()(const _Tp& __x, const _Tp& __y) const
18677 { return __x != __y; }
18678 };
18679
18680
18681 template <class _Tp>
18682 struct greater : public binary_function<_Tp, _Tp, bool>
18683 {
18684 bool
18685 operator()(const _Tp& __x, const _Tp& __y) const
18686 { return __x > __y; }
18687 };
18688
18689
18690 template <class _Tp>
18691 struct less : public binary_function<_Tp, _Tp, bool>
18692 {
18693 bool
18694 operator()(const _Tp& __x, const _Tp& __y) const
18695 { return __x < __y; }
18696 };
18697
18698
18699 template <class _Tp>
18700 struct greater_equal : public binary_function<_Tp, _Tp, bool>
18701 {
18702 bool
18703 operator()(const _Tp& __x, const _Tp& __y) const
18704 { return __x >= __y; }
18705 };
18706
18707
18708 template <class _Tp>
18709 struct less_equal : public binary_function<_Tp, _Tp, bool>
18710 {
18711 bool
18712 operator()(const _Tp& __x, const _Tp& __y) const
18713 { return __x <= __y; }
18714 };
18715 # 256 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18716 template <class _Tp>
18717 struct logical_and : public binary_function<_Tp, _Tp, bool>
18718 {
18719 bool
18720 operator()(const _Tp& __x, const _Tp& __y) const
18721 { return __x && __y; }
18722 };
18723
18724
18725 template <class _Tp>
18726 struct logical_or : public binary_function<_Tp, _Tp, bool>
18727 {
18728 bool
18729 operator()(const _Tp& __x, const _Tp& __y) const
18730 { return __x || __y; }
18731 };
18732
18733
18734 template <class _Tp>
18735 struct logical_not : public unary_function<_Tp, bool>
18736 {
18737 bool
18738 operator()(const _Tp& __x) const
18739 { return !__x; }
18740 };
18741 # 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18742 template <class _Predicate>
18743 class unary_negate
18744 : public unary_function<typename _Predicate::argument_type, bool>
18745 {
18746 protected:
18747 _Predicate _M_pred;
18748 public:
18749 explicit
18750 unary_negate(const _Predicate& __x) : _M_pred(__x) {}
18751
18752 bool
18753 operator()(const typename _Predicate::argument_type& __x) const
18754 { return !_M_pred(__x); }
18755 };
18756
18757
18758 template <class _Predicate>
18759 inline unary_negate<_Predicate>
18760 not1(const _Predicate& __pred)
18761 { return unary_negate<_Predicate>(__pred); }
18762
18763
18764 template <class _Predicate>
18765 class binary_negate
18766 : public binary_function<typename _Predicate::first_argument_type,
18767 typename _Predicate::second_argument_type,
18768 bool>
18769 {
18770 protected:
18771 _Predicate _M_pred;
18772 public:
18773 explicit
18774 binary_negate(const _Predicate& __x)
18775 : _M_pred(__x) { }
18776
18777 bool
18778 operator()(const typename _Predicate::first_argument_type& __x,
18779 const typename _Predicate::second_argument_type& __y) const
18780 { return !_M_pred(__x, __y); }
18781 };
18782
18783
18784 template <class _Predicate>
18785 inline binary_negate<_Predicate>
18786 not2(const _Predicate& __pred)
18787 { return binary_negate<_Predicate>(__pred); }
18788 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18789 template <class _Operation>
18790 class binder1st
18791 : public unary_function<typename _Operation::second_argument_type,
18792 typename _Operation::result_type>
18793 {
18794 protected:
18795 _Operation op;
18796 typename _Operation::first_argument_type value;
18797 public:
18798 binder1st(const _Operation& __x,
18799 const typename _Operation::first_argument_type& __y)
18800 : op(__x), value(__y) {}
18801
18802 typename _Operation::result_type
18803 operator()(const typename _Operation::second_argument_type& __x) const
18804 { return op(value, __x); }
18805
18806
18807
18808 typename _Operation::result_type
18809 operator()(typename _Operation::second_argument_type& __x) const
18810 { return op(value, __x); }
18811 };
18812
18813
18814 template <class _Operation, class _Tp>
18815 inline binder1st<_Operation>
18816 bind1st(const _Operation& __fn, const _Tp& __x)
18817 {
18818 typedef typename _Operation::first_argument_type _Arg1_type;
18819 return binder1st<_Operation>(__fn, _Arg1_type(__x));
18820 }
18821
18822
18823 template <class _Operation>
18824 class binder2nd
18825 : public unary_function<typename _Operation::first_argument_type,
18826 typename _Operation::result_type>
18827 {
18828 protected:
18829 _Operation op;
18830 typename _Operation::second_argument_type value;
18831 public:
18832 binder2nd(const _Operation& __x,
18833 const typename _Operation::second_argument_type& __y)
18834 : op(__x), value(__y) {}
18835
18836 typename _Operation::result_type
18837 operator()(const typename _Operation::first_argument_type& __x) const
18838 { return op(__x, value); }
18839
18840
18841
18842 typename _Operation::result_type
18843 operator()(typename _Operation::first_argument_type& __x) const
18844 { return op(__x, value); }
18845 };
18846
18847
18848 template <class _Operation, class _Tp>
18849 inline binder2nd<_Operation>
18850 bind2nd(const _Operation& __fn, const _Tp& __x)
18851 {
18852 typedef typename _Operation::second_argument_type _Arg2_type;
18853 return binder2nd<_Operation>(__fn, _Arg2_type(__x));
18854 }
18855 # 480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18856 template <class _Arg, class _Result>
18857 class pointer_to_unary_function : public unary_function<_Arg, _Result>
18858 {
18859 protected:
18860 _Result (*_M_ptr)(_Arg);
18861 public:
18862 pointer_to_unary_function() {}
18863
18864 explicit
18865 pointer_to_unary_function(_Result (*__x)(_Arg))
18866 : _M_ptr(__x) {}
18867
18868 _Result
18869 operator()(_Arg __x) const
18870 { return _M_ptr(__x); }
18871 };
18872
18873
18874 template <class _Arg, class _Result>
18875 inline pointer_to_unary_function<_Arg, _Result>
18876 ptr_fun(_Result (*__x)(_Arg))
18877 { return pointer_to_unary_function<_Arg, _Result>(__x); }
18878
18879
18880 template <class _Arg1, class _Arg2, class _Result>
18881 class pointer_to_binary_function
18882 : public binary_function<_Arg1, _Arg2, _Result>
18883 {
18884 protected:
18885 _Result (*_M_ptr)(_Arg1, _Arg2);
18886 public:
18887 pointer_to_binary_function() {}
18888
18889 explicit
18890 pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
18891 : _M_ptr(__x) {}
18892
18893 _Result
18894 operator()(_Arg1 __x, _Arg2 __y) const
18895 { return _M_ptr(__x, __y); }
18896 };
18897
18898
18899 template <class _Arg1, class _Arg2, class _Result>
18900 inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
18901 ptr_fun(_Result (*__x)(_Arg1, _Arg2))
18902 { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
18903
18904
18905 template <class _Tp>
18906 struct _Identity : public unary_function<_Tp,_Tp>
18907 {
18908 _Tp&
18909 operator()(_Tp& __x) const
18910 { return __x; }
18911
18912 const _Tp&
18913 operator()(const _Tp& __x) const
18914 { return __x; }
18915 };
18916
18917 template <class _Pair>
18918 struct _Select1st : public unary_function<_Pair,
18919 typename _Pair::first_type>
18920 {
18921 typename _Pair::first_type&
18922 operator()(_Pair& __x) const
18923 { return __x.first; }
18924
18925 const typename _Pair::first_type&
18926 operator()(const _Pair& __x) const
18927 { return __x.first; }
18928 };
18929
18930 template <class _Pair>
18931 struct _Select2nd : public unary_function<_Pair,
18932 typename _Pair::second_type>
18933 {
18934 typename _Pair::second_type&
18935 operator()(_Pair& __x) const
18936 { return __x.second; }
18937
18938 const typename _Pair::second_type&
18939 operator()(const _Pair& __x) const
18940 { return __x.second; }
18941 };
18942 # 582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18943 template <class _Ret, class _Tp>
18944 class mem_fun_t : public unary_function<_Tp*, _Ret>
18945 {
18946 public:
18947 explicit
18948 mem_fun_t(_Ret (_Tp::*__pf)())
18949 : _M_f(__pf) {}
18950
18951 _Ret
18952 operator()(_Tp* __p) const
18953 { return (__p->*_M_f)(); }
18954 private:
18955 _Ret (_Tp::*_M_f)();
18956 };
18957
18958
18959 template <class _Ret, class _Tp>
18960 class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
18961 {
18962 public:
18963 explicit
18964 const_mem_fun_t(_Ret (_Tp::*__pf)() const)
18965 : _M_f(__pf) {}
18966
18967 _Ret
18968 operator()(const _Tp* __p) const
18969 { return (__p->*_M_f)(); }
18970 private:
18971 _Ret (_Tp::*_M_f)() const;
18972 };
18973
18974
18975 template <class _Ret, class _Tp>
18976 class mem_fun_ref_t : public unary_function<_Tp, _Ret>
18977 {
18978 public:
18979 explicit
18980 mem_fun_ref_t(_Ret (_Tp::*__pf)())
18981 : _M_f(__pf) {}
18982
18983 _Ret
18984 operator()(_Tp& __r) const
18985 { return (__r.*_M_f)(); }
18986 private:
18987 _Ret (_Tp::*_M_f)();
18988 };
18989
18990
18991 template <class _Ret, class _Tp>
18992 class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
18993 {
18994 public:
18995 explicit
18996 const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
18997 : _M_f(__pf) {}
18998
18999 _Ret
19000 operator()(const _Tp& __r) const
19001 { return (__r.*_M_f)(); }
19002 private:
19003 _Ret (_Tp::*_M_f)() const;
19004 };
19005
19006
19007 template <class _Ret, class _Tp, class _Arg>
19008 class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
19009 {
19010 public:
19011 explicit
19012 mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
19013 : _M_f(__pf) {}
19014
19015 _Ret
19016 operator()(_Tp* __p, _Arg __x) const
19017 { return (__p->*_M_f)(__x); }
19018 private:
19019 _Ret (_Tp::*_M_f)(_Arg);
19020 };
19021
19022
19023 template <class _Ret, class _Tp, class _Arg>
19024 class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
19025 {
19026 public:
19027 explicit
19028 const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
19029 : _M_f(__pf) {}
19030
19031 _Ret
19032 operator()(const _Tp* __p, _Arg __x) const
19033 { return (__p->*_M_f)(__x); }
19034 private:
19035 _Ret (_Tp::*_M_f)(_Arg) const;
19036 };
19037
19038
19039 template <class _Ret, class _Tp, class _Arg>
19040 class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
19041 {
19042 public:
19043 explicit
19044 mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
19045 : _M_f(__pf) {}
19046
19047 _Ret
19048 operator()(_Tp& __r, _Arg __x) const
19049 { return (__r.*_M_f)(__x); }
19050 private:
19051 _Ret (_Tp::*_M_f)(_Arg);
19052 };
19053
19054
19055 template <class _Ret, class _Tp, class _Arg>
19056 class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
19057 {
19058 public:
19059 explicit
19060 const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
19061 : _M_f(__pf) {}
19062
19063 _Ret
19064 operator()(const _Tp& __r, _Arg __x) const
19065 { return (__r.*_M_f)(__x); }
19066 private:
19067 _Ret (_Tp::*_M_f)(_Arg) const;
19068 };
19069
19070
19071
19072 template <class _Ret, class _Tp>
19073 inline mem_fun_t<_Ret, _Tp>
19074 mem_fun(_Ret (_Tp::*__f)())
19075 { return mem_fun_t<_Ret, _Tp>(__f); }
19076
19077 template <class _Ret, class _Tp>
19078 inline const_mem_fun_t<_Ret, _Tp>
19079 mem_fun(_Ret (_Tp::*__f)() const)
19080 { return const_mem_fun_t<_Ret, _Tp>(__f); }
19081
19082 template <class _Ret, class _Tp>
19083 inline mem_fun_ref_t<_Ret, _Tp>
19084 mem_fun_ref(_Ret (_Tp::*__f)())
19085 { return mem_fun_ref_t<_Ret, _Tp>(__f); }
19086
19087 template <class _Ret, class _Tp>
19088 inline const_mem_fun_ref_t<_Ret, _Tp>
19089 mem_fun_ref(_Ret (_Tp::*__f)() const)
19090 { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
19091
19092 template <class _Ret, class _Tp, class _Arg>
19093 inline mem_fun1_t<_Ret, _Tp, _Arg>
19094 mem_fun(_Ret (_Tp::*__f)(_Arg))
19095 { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
19096
19097 template <class _Ret, class _Tp, class _Arg>
19098 inline const_mem_fun1_t<_Ret, _Tp, _Arg>
19099 mem_fun(_Ret (_Tp::*__f)(_Arg) const)
19100 { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
19101
19102 template <class _Ret, class _Tp, class _Arg>
19103 inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
19104 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
19105 { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
19106
19107 template <class _Ret, class _Tp, class _Arg>
19108 inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
19109 mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
19110 { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
19111
19112
19113
19114 }
19115 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
19116 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 1 3
19117 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19118 #define _BASIC_STRING_H 1
19119
19120
19121 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19122
19123 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 1 3
19124 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 3
19125 #define _GLIBCXX_ATOMICITY_H 1
19126
19127
19128
19129 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h" 1 3
19130 # 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h" 3
19131 #define _GLIBCXX_ATOMIC_WORD_H 1
19132
19133 typedef int _Atomic_word;
19134 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 2 3
19135
19136 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
19137
19138
19139
19140
19141
19142
19143 static inline _Atomic_word
19144 __exchange_and_add(volatile _Atomic_word* __mem, int __val)
19145 { return __sync_fetch_and_add(__mem, __val); }
19146
19147 static inline void
19148 __atomic_add(volatile _Atomic_word* __mem, int __val)
19149 { __sync_fetch_and_add(__mem, __val); }
19150 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 3
19151 static inline _Atomic_word
19152 __exchange_and_add_single(_Atomic_word* __mem, int __val)
19153 {
19154 _Atomic_word __result = *__mem;
19155 *__mem += __val;
19156 return __result;
19157 }
19158
19159 static inline void
19160 __atomic_add_single(_Atomic_word* __mem, int __val)
19161 { *__mem += __val; }
19162
19163 static inline _Atomic_word
19164 __attribute__ ((__unused__))
19165 __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
19166 {
19167
19168 if (__gthread_active_p())
19169 return __exchange_and_add(__mem, __val);
19170 else
19171 return __exchange_and_add_single(__mem, __val);
19172
19173
19174
19175 }
19176
19177 static inline void
19178 __attribute__ ((__unused__))
19179 __atomic_add_dispatch(_Atomic_word* __mem, int __val)
19180 {
19181
19182 if (__gthread_active_p())
19183 __atomic_add(__mem, __val);
19184 else
19185 __atomic_add_single(__mem, __val);
19186
19187
19188
19189 }
19190
19191 }
19192
19193
19194
19195
19196
19197 #define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory")
19198
19199
19200 #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("":::"memory")
19201 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 2 3
19202
19203
19204 namespace std __attribute__ ((__visibility__ ("default"))) {
19205 # 110 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19206 template<typename _CharT, typename _Traits, typename _Alloc>
19207 class basic_string
19208 {
19209 typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
19210
19211
19212 public:
19213 typedef _Traits traits_type;
19214 typedef typename _Traits::char_type value_type;
19215 typedef _Alloc allocator_type;
19216 typedef typename _CharT_alloc_type::size_type size_type;
19217 typedef typename _CharT_alloc_type::difference_type difference_type;
19218 typedef typename _CharT_alloc_type::reference reference;
19219 typedef typename _CharT_alloc_type::const_reference const_reference;
19220 typedef typename _CharT_alloc_type::pointer pointer;
19221 typedef typename _CharT_alloc_type::const_pointer const_pointer;
19222 typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
19223 typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
19224 const_iterator;
19225 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
19226 typedef std::reverse_iterator<iterator> reverse_iterator;
19227
19228 private:
19229 # 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19230 struct _Rep_base
19231 {
19232 size_type _M_length;
19233 size_type _M_capacity;
19234 _Atomic_word _M_refcount;
19235 };
19236
19237 struct _Rep : _Rep_base
19238 {
19239
19240 typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
19241 # 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19242 static const size_type _S_max_size;
19243 static const _CharT _S_terminal;
19244
19245
19246
19247 static size_type _S_empty_rep_storage[];
19248
19249 static _Rep&
19250 _S_empty_rep()
19251 {
19252
19253
19254
19255 void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
19256 return *reinterpret_cast<_Rep*>(__p);
19257 }
19258
19259 bool
19260 _M_is_leaked() const
19261 { return this->_M_refcount < 0; }
19262
19263 bool
19264 _M_is_shared() const
19265 { return this->_M_refcount > 0; }
19266
19267 void
19268 _M_set_leaked()
19269 { this->_M_refcount = -1; }
19270
19271 void
19272 _M_set_sharable()
19273 { this->_M_refcount = 0; }
19274
19275 void
19276 _M_set_length_and_sharable(size_type __n)
19277 {
19278 this->_M_set_sharable();
19279 this->_M_length = __n;
19280 traits_type::assign(this->_M_refdata()[__n], _S_terminal);
19281
19282
19283 }
19284
19285 _CharT*
19286 _M_refdata() throw()
19287 { return reinterpret_cast<_CharT*>(this + 1); }
19288
19289 _CharT*
19290 _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
19291 {
19292 return (!_M_is_leaked() && __alloc1 == __alloc2)
19293 ? _M_refcopy() : _M_clone(__alloc1);
19294 }
19295
19296
19297 static _Rep*
19298 _S_create(size_type, size_type, const _Alloc&);
19299
19300 void
19301 _M_dispose(const _Alloc& __a)
19302 {
19303
19304 if (__builtin_expect(this != &_S_empty_rep(), false))
19305
19306 if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
19307 -1) <= 0)
19308 _M_destroy(__a);
19309 }
19310
19311 void
19312 _M_destroy(const _Alloc&) throw();
19313
19314 _CharT*
19315 _M_refcopy() throw()
19316 {
19317
19318 if (__builtin_expect(this != &_S_empty_rep(), false))
19319
19320 __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
19321 return _M_refdata();
19322 }
19323
19324 _CharT*
19325 _M_clone(const _Alloc&, size_type __res = 0);
19326 };
19327
19328
19329 struct _Alloc_hider : _Alloc
19330 {
19331 _Alloc_hider(_CharT* __dat, const _Alloc& __a)
19332 : _Alloc(__a), _M_p(__dat) { }
19333
19334 _CharT* _M_p;
19335 };
19336
19337 public:
19338
19339
19340
19341
19342 static const size_type npos = static_cast<size_type>(-1);
19343
19344 private:
19345
19346 mutable _Alloc_hider _M_dataplus;
19347
19348 _CharT*
19349 _M_data() const
19350 { return _M_dataplus._M_p; }
19351
19352 _CharT*
19353 _M_data(_CharT* __p)
19354 { return (_M_dataplus._M_p = __p); }
19355
19356 _Rep*
19357 _M_rep() const
19358 { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
19359
19360
19361
19362 iterator
19363 _M_ibegin() const
19364 { return iterator(_M_data()); }
19365
19366 iterator
19367 _M_iend() const
19368 { return iterator(_M_data() + this->size()); }
19369
19370 void
19371 _M_leak()
19372 {
19373 if (!_M_rep()->_M_is_leaked())
19374 _M_leak_hard();
19375 }
19376
19377 size_type
19378 _M_check(size_type __pos, const char* __s) const
19379 {
19380 if (__pos > this->size())
19381 __throw_out_of_range((__s));
19382 return __pos;
19383 }
19384
19385 void
19386 _M_check_length(size_type __n1, size_type __n2, const char* __s) const
19387 {
19388 if (this->max_size() - (this->size() - __n1) < __n2)
19389 __throw_length_error((__s));
19390 }
19391
19392
19393 size_type
19394 _M_limit(size_type __pos, size_type __off) const
19395 {
19396 const bool __testoff = __off < this->size() - __pos;
19397 return __testoff ? __off : this->size() - __pos;
19398 }
19399
19400
19401 bool
19402 _M_disjunct(const _CharT* __s) const
19403 {
19404 return (less<const _CharT*>()(__s, _M_data())
19405 || less<const _CharT*>()(_M_data() + this->size(), __s));
19406 }
19407
19408
19409
19410 static void
19411 _M_copy(_CharT* __d, const _CharT* __s, size_type __n)
19412 {
19413 if (__n == 1)
19414 traits_type::assign(*__d, *__s);
19415 else
19416 traits_type::copy(__d, __s, __n);
19417 }
19418
19419 static void
19420 _M_move(_CharT* __d, const _CharT* __s, size_type __n)
19421 {
19422 if (__n == 1)
19423 traits_type::assign(*__d, *__s);
19424 else
19425 traits_type::move(__d, __s, __n);
19426 }
19427
19428 static void
19429 _M_assign(_CharT* __d, size_type __n, _CharT __c)
19430 {
19431 if (__n == 1)
19432 traits_type::assign(*__d, __c);
19433 else
19434 traits_type::assign(__d, __n, __c);
19435 }
19436
19437
19438
19439 template<class _Iterator>
19440 static void
19441 _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
19442 {
19443 for (; __k1 != __k2; ++__k1, ++__p)
19444 traits_type::assign(*__p, *__k1);
19445 }
19446
19447 static void
19448 _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
19449 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
19450
19451 static void
19452 _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
19453 { _S_copy_chars(__p, __k1.base(), __k2.base()); }
19454
19455 static void
19456 _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
19457 { _M_copy(__p, __k1, __k2 - __k1); }
19458
19459 static void
19460 _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
19461 { _M_copy(__p, __k1, __k2 - __k1); }
19462
19463 void
19464 _M_mutate(size_type __pos, size_type __len1, size_type __len2);
19465
19466 void
19467 _M_leak_hard();
19468
19469 static _Rep&
19470 _S_empty_rep()
19471 { return _Rep::_S_empty_rep(); }
19472
19473 public:
19474
19475
19476
19477
19478
19479
19480
19481 inline
19482 basic_string();
19483
19484
19485
19486
19487 explicit
19488 basic_string(const _Alloc& __a);
19489
19490
19491
19492
19493
19494
19495 basic_string(const basic_string& __str);
19496
19497
19498
19499
19500
19501
19502 basic_string(const basic_string& __str, size_type __pos,
19503 size_type __n = npos);
19504
19505
19506
19507
19508
19509
19510
19511 basic_string(const basic_string& __str, size_type __pos,
19512 size_type __n, const _Alloc& __a);
19513 # 453 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19514 basic_string(const _CharT* __s, size_type __n,
19515 const _Alloc& __a = _Alloc());
19516
19517
19518
19519
19520
19521 basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
19522
19523
19524
19525
19526
19527
19528 basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
19529
19530
19531
19532
19533
19534
19535
19536 template<class _InputIterator>
19537 basic_string(_InputIterator __beg, _InputIterator __end,
19538 const _Alloc& __a = _Alloc());
19539
19540
19541
19542
19543 ~basic_string()
19544 { _M_rep()->_M_dispose(this->get_allocator()); }
19545
19546
19547
19548
19549
19550 basic_string&
19551 operator=(const basic_string& __str)
19552 { return this->assign(__str); }
19553
19554
19555
19556
19557
19558 basic_string&
19559 operator=(const _CharT* __s)
19560 { return this->assign(__s); }
19561 # 508 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19562 basic_string&
19563 operator=(_CharT __c)
19564 {
19565 this->assign(1, __c);
19566 return *this;
19567 }
19568
19569
19570
19571
19572
19573
19574 iterator
19575 begin()
19576 {
19577 _M_leak();
19578 return iterator(_M_data());
19579 }
19580
19581
19582
19583
19584
19585 const_iterator
19586 begin() const
19587 { return const_iterator(_M_data()); }
19588
19589
19590
19591
19592
19593 iterator
19594 end()
19595 {
19596 _M_leak();
19597 return iterator(_M_data() + this->size());
19598 }
19599
19600
19601
19602
19603
19604 const_iterator
19605 end() const
19606 { return const_iterator(_M_data() + this->size()); }
19607
19608
19609
19610
19611
19612
19613 reverse_iterator
19614 rbegin()
19615 { return reverse_iterator(this->end()); }
19616
19617
19618
19619
19620
19621
19622 const_reverse_iterator
19623 rbegin() const
19624 { return const_reverse_iterator(this->end()); }
19625
19626
19627
19628
19629
19630
19631 reverse_iterator
19632 rend()
19633 { return reverse_iterator(this->begin()); }
19634
19635
19636
19637
19638
19639
19640 const_reverse_iterator
19641 rend() const
19642 { return const_reverse_iterator(this->begin()); }
19643
19644 public:
19645
19646
19647
19648 size_type
19649 size() const
19650 { return _M_rep()->_M_length; }
19651
19652
19653
19654 size_type
19655 length() const
19656 { return _M_rep()->_M_length; }
19657
19658
19659 size_type
19660 max_size() const
19661 { return _Rep::_S_max_size; }
19662 # 619 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19663 void
19664 resize(size_type __n, _CharT __c);
19665 # 632 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19666 void
19667 resize(size_type __n)
19668 { this->resize(__n, _CharT()); }
19669
19670
19671
19672
19673
19674 size_type
19675 capacity() const
19676 { return _M_rep()->_M_capacity; }
19677 # 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19678 void
19679 reserve(size_type __res_arg = 0);
19680
19681
19682
19683
19684 void
19685 clear()
19686 { _M_mutate(0, this->size(), 0); }
19687
19688
19689
19690
19691 bool
19692 empty() const
19693 { return this->size() == 0; }
19694 # 689 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19695 const_reference
19696 operator[] (size_type __pos) const
19697 {
19698 ;
19699 return _M_data()[__pos];
19700 }
19701 # 706 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19702 reference
19703 operator[](size_type __pos)
19704 {
19705
19706 ;
19707
19708 ;
19709 _M_leak();
19710 return _M_data()[__pos];
19711 }
19712 # 727 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19713 const_reference
19714 at(size_type __n) const
19715 {
19716 if (__n >= this->size())
19717 __throw_out_of_range(("basic_string::at"));
19718 return _M_data()[__n];
19719 }
19720 # 746 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19721 reference
19722 at(size_type __n)
19723 {
19724 if (__n >= size())
19725 __throw_out_of_range(("basic_string::at"));
19726 _M_leak();
19727 return _M_data()[__n];
19728 }
19729
19730
19731
19732
19733
19734
19735
19736 basic_string&
19737 operator+=(const basic_string& __str)
19738 { return this->append(__str); }
19739
19740
19741
19742
19743
19744
19745 basic_string&
19746 operator+=(const _CharT* __s)
19747 { return this->append(__s); }
19748
19749
19750
19751
19752
19753
19754 basic_string&
19755 operator+=(_CharT __c)
19756 {
19757 this->push_back(__c);
19758 return *this;
19759 }
19760
19761
19762
19763
19764
19765
19766 basic_string&
19767 append(const basic_string& __str);
19768 # 806 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19769 basic_string&
19770 append(const basic_string& __str, size_type __pos, size_type __n);
19771
19772
19773
19774
19775
19776
19777
19778 basic_string&
19779 append(const _CharT* __s, size_type __n);
19780
19781
19782
19783
19784
19785
19786 basic_string&
19787 append(const _CharT* __s)
19788 {
19789 ;
19790 return this->append(__s, traits_type::length(__s));
19791 }
19792 # 838 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19793 basic_string&
19794 append(size_type __n, _CharT __c);
19795 # 849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19796 template<class _InputIterator>
19797 basic_string&
19798 append(_InputIterator __first, _InputIterator __last)
19799 { return this->replace(_M_iend(), _M_iend(), __first, __last); }
19800
19801
19802
19803
19804
19805 void
19806 push_back(_CharT __c)
19807 {
19808 const size_type __len = 1 + this->size();
19809 if (__len > this->capacity() || _M_rep()->_M_is_shared())
19810 this->reserve(__len);
19811 traits_type::assign(_M_data()[this->size()], __c);
19812 _M_rep()->_M_set_length_and_sharable(__len);
19813 }
19814
19815
19816
19817
19818
19819
19820 basic_string&
19821 assign(const basic_string& __str);
19822 # 888 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19823 basic_string&
19824 assign(const basic_string& __str, size_type __pos, size_type __n)
19825 { return this->assign(__str._M_data()
19826 + __str._M_check(__pos, "basic_string::assign"),
19827 __str._M_limit(__pos, __n)); }
19828 # 904 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19829 basic_string&
19830 assign(const _CharT* __s, size_type __n);
19831 # 916 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19832 basic_string&
19833 assign(const _CharT* __s)
19834 {
19835 ;
19836 return this->assign(__s, traits_type::length(__s));
19837 }
19838 # 932 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19839 basic_string&
19840 assign(size_type __n, _CharT __c)
19841 { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
19842 # 944 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19843 template<class _InputIterator>
19844 basic_string&
19845 assign(_InputIterator __first, _InputIterator __last)
19846 { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
19847 # 961 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19848 void
19849 insert(iterator __p, size_type __n, _CharT __c)
19850 { this->replace(__p, __p, __n, __c); }
19851 # 976 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19852 template<class _InputIterator>
19853 void
19854 insert(iterator __p, _InputIterator __beg, _InputIterator __end)
19855 { this->replace(__p, __p, __beg, __end); }
19856 # 992 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19857 basic_string&
19858 insert(size_type __pos1, const basic_string& __str)
19859 { return this->insert(__pos1, __str, size_type(0), __str.size()); }
19860 # 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19861 basic_string&
19862 insert(size_type __pos1, const basic_string& __str,
19863 size_type __pos2, size_type __n)
19864 { return this->insert(__pos1, __str._M_data()
19865 + __str._M_check(__pos2, "basic_string::insert"),
19866 __str._M_limit(__pos2, __n)); }
19867 # 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19868 basic_string&
19869 insert(size_type __pos, const _CharT* __s, size_type __n);
19870 # 1055 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19871 basic_string&
19872 insert(size_type __pos, const _CharT* __s)
19873 {
19874 ;
19875 return this->insert(__pos, __s, traits_type::length(__s));
19876 }
19877 # 1078 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19878 basic_string&
19879 insert(size_type __pos, size_type __n, _CharT __c)
19880 { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
19881 size_type(0), __n, __c); }
19882 # 1095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19883 iterator
19884 insert(iterator __p, _CharT __c)
19885 {
19886 ;
19887 const size_type __pos = __p - _M_ibegin();
19888 _M_replace_aux(__pos, size_type(0), size_type(1), __c);
19889 _M_rep()->_M_set_leaked();
19890 return iterator(_M_data() + __pos);
19891 }
19892 # 1119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19893 basic_string&
19894 erase(size_type __pos = 0, size_type __n = npos)
19895 {
19896 _M_mutate(_M_check(__pos, "basic_string::erase"),
19897 _M_limit(__pos, __n), size_type(0));
19898 return *this;
19899 }
19900 # 1135 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19901 iterator
19902 erase(iterator __position)
19903 {
19904 ;
19905
19906 const size_type __pos = __position - _M_ibegin();
19907 _M_mutate(__pos, size_type(1), size_type(0));
19908 _M_rep()->_M_set_leaked();
19909 return iterator(_M_data() + __pos);
19910 }
19911 # 1155 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19912 iterator
19913 erase(iterator __first, iterator __last)
19914 {
19915 ;
19916
19917 const size_type __pos = __first - _M_ibegin();
19918 _M_mutate(__pos, __last - __first, size_type(0));
19919 _M_rep()->_M_set_leaked();
19920 return iterator(_M_data() + __pos);
19921 }
19922 # 1182 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19923 basic_string&
19924 replace(size_type __pos, size_type __n, const basic_string& __str)
19925 { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
19926 # 1204 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19927 basic_string&
19928 replace(size_type __pos1, size_type __n1, const basic_string& __str,
19929 size_type __pos2, size_type __n2)
19930 { return this->replace(__pos1, __n1, __str._M_data()
19931 + __str._M_check(__pos2, "basic_string::replace"),
19932 __str._M_limit(__pos2, __n2)); }
19933 # 1228 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19934 basic_string&
19935 replace(size_type __pos, size_type __n1, const _CharT* __s,
19936 size_type __n2);
19937 # 1247 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19938 basic_string&
19939 replace(size_type __pos, size_type __n1, const _CharT* __s)
19940 {
19941 ;
19942 return this->replace(__pos, __n1, __s, traits_type::length(__s));
19943 }
19944 # 1270 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19945 basic_string&
19946 replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
19947 { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
19948 _M_limit(__pos, __n1), __n2, __c); }
19949 # 1288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19950 basic_string&
19951 replace(iterator __i1, iterator __i2, const basic_string& __str)
19952 { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
19953 # 1306 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19954 basic_string&
19955 replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
19956 {
19957 ;
19958
19959 return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
19960 }
19961 # 1327 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19962 basic_string&
19963 replace(iterator __i1, iterator __i2, const _CharT* __s)
19964 {
19965 ;
19966 return this->replace(__i1, __i2, __s, traits_type::length(__s));
19967 }
19968 # 1348 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19969 basic_string&
19970 replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
19971 {
19972 ;
19973
19974 return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
19975 }
19976 # 1370 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19977 template<class _InputIterator>
19978 basic_string&
19979 replace(iterator __i1, iterator __i2,
19980 _InputIterator __k1, _InputIterator __k2)
19981 {
19982 ;
19983
19984 ;
19985 typedef typename std::__is_integer<_InputIterator>::__type _Integral;
19986 return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
19987 }
19988
19989
19990
19991 basic_string&
19992 replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
19993 {
19994 ;
19995
19996 ;
19997 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
19998 __k1, __k2 - __k1);
19999 }
20000
20001 basic_string&
20002 replace(iterator __i1, iterator __i2,
20003 const _CharT* __k1, const _CharT* __k2)
20004 {
20005 ;
20006
20007 ;
20008 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
20009 __k1, __k2 - __k1);
20010 }
20011
20012 basic_string&
20013 replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
20014 {
20015 ;
20016
20017 ;
20018 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
20019 __k1.base(), __k2 - __k1);
20020 }
20021
20022 basic_string&
20023 replace(iterator __i1, iterator __i2,
20024 const_iterator __k1, const_iterator __k2)
20025 {
20026 ;
20027
20028 ;
20029 return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
20030 __k1.base(), __k2 - __k1);
20031 }
20032
20033 private:
20034 template<class _Integer>
20035 basic_string&
20036 _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
20037 _Integer __val, __true_type)
20038 { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
20039
20040 template<class _InputIterator>
20041 basic_string&
20042 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
20043 _InputIterator __k2, __false_type);
20044
20045 basic_string&
20046 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
20047 _CharT __c);
20048
20049 basic_string&
20050 _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
20051 size_type __n2);
20052
20053
20054
20055 template<class _InIterator>
20056 static _CharT*
20057 _S_construct_aux(_InIterator __beg, _InIterator __end,
20058 const _Alloc& __a, __false_type)
20059 {
20060 typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
20061 return _S_construct(__beg, __end, __a, _Tag());
20062 }
20063
20064 template<class _InIterator>
20065 static _CharT*
20066 _S_construct_aux(_InIterator __beg, _InIterator __end,
20067 const _Alloc& __a, __true_type)
20068 { return _S_construct(static_cast<size_type>(__beg),
20069 static_cast<value_type>(__end), __a); }
20070
20071 template<class _InIterator>
20072 static _CharT*
20073 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
20074 {
20075 typedef typename std::__is_integer<_InIterator>::__type _Integral;
20076 return _S_construct_aux(__beg, __end, __a, _Integral());
20077 }
20078
20079
20080 template<class _InIterator>
20081 static _CharT*
20082 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
20083 input_iterator_tag);
20084
20085
20086
20087 template<class _FwdIterator>
20088 static _CharT*
20089 _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
20090 forward_iterator_tag);
20091
20092 static _CharT*
20093 _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
20094
20095 public:
20096 # 1501 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20097 size_type
20098 copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
20099 # 1511 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20100 void
20101 swap(basic_string& __s);
20102 # 1521 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20103 const _CharT*
20104 c_str() const
20105 { return _M_data(); }
20106
20107
20108
20109
20110
20111
20112
20113 const _CharT*
20114 data() const
20115 { return _M_data(); }
20116
20117
20118
20119
20120 allocator_type
20121 get_allocator() const
20122 { return _M_dataplus; }
20123 # 1553 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20124 size_type
20125 find(const _CharT* __s, size_type __pos, size_type __n) const;
20126 # 1566 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20127 size_type
20128 find(const basic_string& __str, size_type __pos = 0) const
20129 { return this->find(__str.data(), __pos, __str.size()); }
20130 # 1580 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20131 size_type
20132 find(const _CharT* __s, size_type __pos = 0) const
20133 {
20134 ;
20135 return this->find(__s, __pos, traits_type::length(__s));
20136 }
20137 # 1597 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20138 size_type
20139 find(_CharT __c, size_type __pos = 0) const;
20140 # 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20141 size_type
20142 rfind(const basic_string& __str, size_type __pos = npos) const
20143 { return this->rfind(__str.data(), __pos, __str.size()); }
20144 # 1625 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20145 size_type
20146 rfind(const _CharT* __s, size_type __pos, size_type __n) const;
20147 # 1638 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20148 size_type
20149 rfind(const _CharT* __s, size_type __pos = npos) const
20150 {
20151 ;
20152 return this->rfind(__s, __pos, traits_type::length(__s));
20153 }
20154 # 1655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20155 size_type
20156 rfind(_CharT __c, size_type __pos = npos) const;
20157 # 1668 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20158 size_type
20159 find_first_of(const basic_string& __str, size_type __pos = 0) const
20160 { return this->find_first_of(__str.data(), __pos, __str.size()); }
20161 # 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20162 size_type
20163 find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
20164 # 1696 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20165 size_type
20166 find_first_of(const _CharT* __s, size_type __pos = 0) const
20167 {
20168 ;
20169 return this->find_first_of(__s, __pos, traits_type::length(__s));
20170 }
20171 # 1715 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20172 size_type
20173 find_first_of(_CharT __c, size_type __pos = 0) const
20174 { return this->find(__c, __pos); }
20175 # 1729 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20176 size_type
20177 find_last_of(const basic_string& __str, size_type __pos = npos) const
20178 { return this->find_last_of(__str.data(), __pos, __str.size()); }
20179 # 1744 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20180 size_type
20181 find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
20182 # 1757 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20183 size_type
20184 find_last_of(const _CharT* __s, size_type __pos = npos) const
20185 {
20186 ;
20187 return this->find_last_of(__s, __pos, traits_type::length(__s));
20188 }
20189 # 1776 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20190 size_type
20191 find_last_of(_CharT __c, size_type __pos = npos) const
20192 { return this->rfind(__c, __pos); }
20193 # 1790 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20194 size_type
20195 find_first_not_of(const basic_string& __str, size_type __pos = 0) const
20196 { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
20197 # 1805 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20198 size_type
20199 find_first_not_of(const _CharT* __s, size_type __pos,
20200 size_type __n) const;
20201 # 1819 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20202 size_type
20203 find_first_not_of(const _CharT* __s, size_type __pos = 0) const
20204 {
20205 ;
20206 return this->find_first_not_of(__s, __pos, traits_type::length(__s));
20207 }
20208 # 1836 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20209 size_type
20210 find_first_not_of(_CharT __c, size_type __pos = 0) const;
20211 # 1849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20212 size_type
20213 find_last_not_of(const basic_string& __str, size_type __pos = npos) const
20214 { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
20215 # 1865 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20216 size_type
20217 find_last_not_of(const _CharT* __s, size_type __pos,
20218 size_type __n) const;
20219 # 1878 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20220 size_type
20221 find_last_not_of(const _CharT* __s, size_type __pos = npos) const
20222 {
20223 ;
20224 return this->find_last_not_of(__s, __pos, traits_type::length(__s));
20225 }
20226 # 1895 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20227 size_type
20228 find_last_not_of(_CharT __c, size_type __pos = npos) const;
20229 # 1910 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20230 basic_string
20231 substr(size_type __pos = 0, size_type __n = npos) const
20232 { return basic_string(*this,
20233 _M_check(__pos, "basic_string::substr"), __n); }
20234 # 1928 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20235 int
20236 compare(const basic_string& __str) const
20237 {
20238 const size_type __size = this->size();
20239 const size_type __osize = __str.size();
20240 const size_type __len = std::min(__size, __osize);
20241
20242 int __r = traits_type::compare(_M_data(), __str.data(), __len);
20243 if (!__r)
20244 __r = __size - __osize;
20245 return __r;
20246 }
20247 # 1958 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20248 int
20249 compare(size_type __pos, size_type __n, const basic_string& __str) const;
20250 # 1982 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20251 int
20252 compare(size_type __pos1, size_type __n1, const basic_string& __str,
20253 size_type __pos2, size_type __n2) const;
20254 # 2000 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20255 int
20256 compare(const _CharT* __s) const;
20257 # 2023 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20258 int
20259 compare(size_type __pos, size_type __n1, const _CharT* __s) const;
20260 # 2048 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20261 int
20262 compare(size_type __pos, size_type __n1, const _CharT* __s,
20263 size_type __n2) const;
20264 };
20265
20266 template<typename _CharT, typename _Traits, typename _Alloc>
20267 inline basic_string<_CharT, _Traits, _Alloc>::
20268 basic_string()
20269
20270 : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
20271 # 2069 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20272 template<typename _CharT, typename _Traits, typename _Alloc>
20273 basic_string<_CharT, _Traits, _Alloc>
20274 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20275 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20276 {
20277 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
20278 __str.append(__rhs);
20279 return __str;
20280 }
20281
20282
20283
20284
20285
20286
20287
20288 template<typename _CharT, typename _Traits, typename _Alloc>
20289 basic_string<_CharT,_Traits,_Alloc>
20290 operator+(const _CharT* __lhs,
20291 const basic_string<_CharT,_Traits,_Alloc>& __rhs);
20292
20293
20294
20295
20296
20297
20298
20299 template<typename _CharT, typename _Traits, typename _Alloc>
20300 basic_string<_CharT,_Traits,_Alloc>
20301 operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
20302
20303
20304
20305
20306
20307
20308
20309 template<typename _CharT, typename _Traits, typename _Alloc>
20310 inline basic_string<_CharT, _Traits, _Alloc>
20311 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20312 const _CharT* __rhs)
20313 {
20314 basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
20315 __str.append(__rhs);
20316 return __str;
20317 }
20318
20319
20320
20321
20322
20323
20324
20325 template<typename _CharT, typename _Traits, typename _Alloc>
20326 inline basic_string<_CharT, _Traits, _Alloc>
20327 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
20328 {
20329 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
20330 typedef typename __string_type::size_type __size_type;
20331 __string_type __str(__lhs);
20332 __str.append(__size_type(1), __rhs);
20333 return __str;
20334 }
20335 # 2140 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20336 template<typename _CharT, typename _Traits, typename _Alloc>
20337 inline bool
20338 operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20339 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20340 { return __lhs.compare(__rhs) == 0; }
20341
20342
20343
20344
20345
20346
20347
20348 template<typename _CharT, typename _Traits, typename _Alloc>
20349 inline bool
20350 operator==(const _CharT* __lhs,
20351 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20352 { return __rhs.compare(__lhs) == 0; }
20353
20354
20355
20356
20357
20358
20359
20360 template<typename _CharT, typename _Traits, typename _Alloc>
20361 inline bool
20362 operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20363 const _CharT* __rhs)
20364 { return __lhs.compare(__rhs) == 0; }
20365 # 2177 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20366 template<typename _CharT, typename _Traits, typename _Alloc>
20367 inline bool
20368 operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20369 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20370 { return __rhs.compare(__lhs) != 0; }
20371
20372
20373
20374
20375
20376
20377
20378 template<typename _CharT, typename _Traits, typename _Alloc>
20379 inline bool
20380 operator!=(const _CharT* __lhs,
20381 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20382 { return __rhs.compare(__lhs) != 0; }
20383
20384
20385
20386
20387
20388
20389
20390 template<typename _CharT, typename _Traits, typename _Alloc>
20391 inline bool
20392 operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20393 const _CharT* __rhs)
20394 { return __lhs.compare(__rhs) != 0; }
20395 # 2214 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20396 template<typename _CharT, typename _Traits, typename _Alloc>
20397 inline bool
20398 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20399 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20400 { return __lhs.compare(__rhs) < 0; }
20401
20402
20403
20404
20405
20406
20407
20408 template<typename _CharT, typename _Traits, typename _Alloc>
20409 inline bool
20410 operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20411 const _CharT* __rhs)
20412 { return __lhs.compare(__rhs) < 0; }
20413
20414
20415
20416
20417
20418
20419
20420 template<typename _CharT, typename _Traits, typename _Alloc>
20421 inline bool
20422 operator<(const _CharT* __lhs,
20423 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20424 { return __rhs.compare(__lhs) > 0; }
20425 # 2251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20426 template<typename _CharT, typename _Traits, typename _Alloc>
20427 inline bool
20428 operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20429 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20430 { return __lhs.compare(__rhs) > 0; }
20431
20432
20433
20434
20435
20436
20437
20438 template<typename _CharT, typename _Traits, typename _Alloc>
20439 inline bool
20440 operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20441 const _CharT* __rhs)
20442 { return __lhs.compare(__rhs) > 0; }
20443
20444
20445
20446
20447
20448
20449
20450 template<typename _CharT, typename _Traits, typename _Alloc>
20451 inline bool
20452 operator>(const _CharT* __lhs,
20453 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20454 { return __rhs.compare(__lhs) < 0; }
20455 # 2288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20456 template<typename _CharT, typename _Traits, typename _Alloc>
20457 inline bool
20458 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20459 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20460 { return __lhs.compare(__rhs) <= 0; }
20461
20462
20463
20464
20465
20466
20467
20468 template<typename _CharT, typename _Traits, typename _Alloc>
20469 inline bool
20470 operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20471 const _CharT* __rhs)
20472 { return __lhs.compare(__rhs) <= 0; }
20473
20474
20475
20476
20477
20478
20479
20480 template<typename _CharT, typename _Traits, typename _Alloc>
20481 inline bool
20482 operator<=(const _CharT* __lhs,
20483 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20484 { return __rhs.compare(__lhs) >= 0; }
20485 # 2325 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20486 template<typename _CharT, typename _Traits, typename _Alloc>
20487 inline bool
20488 operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20489 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20490 { return __lhs.compare(__rhs) >= 0; }
20491
20492
20493
20494
20495
20496
20497
20498 template<typename _CharT, typename _Traits, typename _Alloc>
20499 inline bool
20500 operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20501 const _CharT* __rhs)
20502 { return __lhs.compare(__rhs) >= 0; }
20503
20504
20505
20506
20507
20508
20509
20510 template<typename _CharT, typename _Traits, typename _Alloc>
20511 inline bool
20512 operator>=(const _CharT* __lhs,
20513 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20514 { return __rhs.compare(__lhs) <= 0; }
20515 # 2362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20516 template<typename _CharT, typename _Traits, typename _Alloc>
20517 inline void
20518 swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
20519 basic_string<_CharT, _Traits, _Alloc>& __rhs)
20520 { __lhs.swap(__rhs); }
20521 # 2379 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20522 template<typename _CharT, typename _Traits, typename _Alloc>
20523 basic_istream<_CharT, _Traits>&
20524 operator>>(basic_istream<_CharT, _Traits>& __is,
20525 basic_string<_CharT, _Traits, _Alloc>& __str);
20526
20527 template<>
20528 basic_istream<char>&
20529 operator>>(basic_istream<char>& __is, basic_string<char>& __str);
20530 # 2397 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20531 template<typename _CharT, typename _Traits, typename _Alloc>
20532 inline basic_ostream<_CharT, _Traits>&
20533 operator<<(basic_ostream<_CharT, _Traits>& __os,
20534 const basic_string<_CharT, _Traits, _Alloc>& __str)
20535 {
20536
20537
20538 return __ostream_insert(__os, __str.data(), __str.size());
20539 }
20540 # 2420 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20541 template<typename _CharT, typename _Traits, typename _Alloc>
20542 basic_istream<_CharT, _Traits>&
20543 getline(basic_istream<_CharT, _Traits>& __is,
20544 basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
20545 # 2437 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20546 template<typename _CharT, typename _Traits, typename _Alloc>
20547 inline basic_istream<_CharT, _Traits>&
20548 getline(basic_istream<_CharT, _Traits>& __is,
20549 basic_string<_CharT, _Traits, _Alloc>& __str)
20550 { return getline(__is, __str, __is.widen('\n')); }
20551
20552 template<>
20553 basic_istream<char>&
20554 getline(basic_istream<char>& __in, basic_string<char>& __str,
20555 char __delim);
20556
20557
20558 template<>
20559 basic_istream<wchar_t>&
20560 getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
20561 wchar_t __delim);
20562
20563
20564 }
20565 # 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
20566
20567
20568 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 1 3
20569 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 3
20570 #define _GLIBCXX_ALGORITHM 1
20571
20572
20573 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 3
20574
20575
20576
20577
20578 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 1 3
20579 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
20580 #define _ALGO_H 1
20581
20582 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 1 3
20583 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20584 #define _STL_HEAP_H 1
20585
20586
20587
20588 namespace std __attribute__ ((__visibility__ ("default"))) {
20589
20590
20591
20592
20593 template<typename _RandomAccessIterator, typename _Distance>
20594 bool
20595 __is_heap(_RandomAccessIterator __first, _Distance __n)
20596 {
20597 _Distance __parent = 0;
20598 for (_Distance __child = 1; __child < __n; ++__child)
20599 {
20600 if (__first[__parent] < __first[__child])
20601 return false;
20602 if ((__child & 1) == 0)
20603 ++__parent;
20604 }
20605 return true;
20606 }
20607
20608 template<typename _RandomAccessIterator, typename _Distance,
20609 typename _StrictWeakOrdering>
20610 bool
20611 __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
20612 _Distance __n)
20613 {
20614 _Distance __parent = 0;
20615 for (_Distance __child = 1; __child < __n; ++__child)
20616 {
20617 if (__comp(__first[__parent], __first[__child]))
20618 return false;
20619 if ((__child & 1) == 0)
20620 ++__parent;
20621 }
20622 return true;
20623 }
20624
20625 template<typename _RandomAccessIterator>
20626 bool
20627 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20628 { return std::__is_heap(__first, std::distance(__first, __last)); }
20629
20630 template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
20631 bool
20632 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20633 _StrictWeakOrdering __comp)
20634 { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
20635
20636
20637
20638 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
20639 void
20640 __push_heap(_RandomAccessIterator __first,
20641 _Distance __holeIndex, _Distance __topIndex, _Tp __value)
20642 {
20643 _Distance __parent = (__holeIndex - 1) / 2;
20644 while (__holeIndex > __topIndex && *(__first + __parent) < __value)
20645 {
20646 *(__first + __holeIndex) = *(__first + __parent);
20647 __holeIndex = __parent;
20648 __parent = (__holeIndex - 1) / 2;
20649 }
20650 *(__first + __holeIndex) = __value;
20651 }
20652 # 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20653 template<typename _RandomAccessIterator>
20654 inline void
20655 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20656 {
20657 typedef typename iterator_traits<_RandomAccessIterator>::value_type
20658 _ValueType;
20659 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20660 _DistanceType;
20661
20662
20663
20664
20665
20666 ;
20667
20668
20669 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
20670 _DistanceType(0), _ValueType(*(__last - 1)));
20671 }
20672
20673 template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
20674 typename _Compare>
20675 void
20676 __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
20677 _Distance __topIndex, _Tp __value, _Compare __comp)
20678 {
20679 _Distance __parent = (__holeIndex - 1) / 2;
20680 while (__holeIndex > __topIndex
20681 && __comp(*(__first + __parent), __value))
20682 {
20683 *(__first + __holeIndex) = *(__first + __parent);
20684 __holeIndex = __parent;
20685 __parent = (__holeIndex - 1) / 2;
20686 }
20687 *(__first + __holeIndex) = __value;
20688 }
20689 # 187 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20690 template<typename _RandomAccessIterator, typename _Compare>
20691 inline void
20692 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20693 _Compare __comp)
20694 {
20695 typedef typename iterator_traits<_RandomAccessIterator>::value_type
20696 _ValueType;
20697 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20698 _DistanceType;
20699
20700
20701
20702
20703 ;
20704 ;
20705
20706 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
20707 _DistanceType(0), _ValueType(*(__last - 1)), __comp);
20708 }
20709
20710 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
20711 void
20712 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
20713 _Distance __len, _Tp __value)
20714 {
20715 const _Distance __topIndex = __holeIndex;
20716 _Distance __secondChild = 2 * __holeIndex + 2;
20717 while (__secondChild < __len)
20718 {
20719 if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
20720 __secondChild--;
20721 *(__first + __holeIndex) = *(__first + __secondChild);
20722 __holeIndex = __secondChild;
20723 __secondChild = 2 * (__secondChild + 1);
20724 }
20725 if (__secondChild == __len)
20726 {
20727 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
20728 __holeIndex = __secondChild - 1;
20729 }
20730 std::__push_heap(__first, __holeIndex, __topIndex, __value);
20731 }
20732
20733 template<typename _RandomAccessIterator, typename _Tp>
20734 inline void
20735 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20736 _RandomAccessIterator __result, _Tp __value)
20737 {
20738 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20739 _Distance;
20740 *__result = *__first;
20741 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
20742 __value);
20743 }
20744 # 251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20745 template<typename _RandomAccessIterator>
20746 inline void
20747 pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20748 {
20749 typedef typename iterator_traits<_RandomAccessIterator>::value_type
20750 _ValueType;
20751
20752
20753
20754
20755
20756 ;
20757 ;
20758
20759 std::__pop_heap(__first, __last - 1, __last - 1,
20760 _ValueType(*(__last - 1)));
20761 }
20762
20763 template<typename _RandomAccessIterator, typename _Distance,
20764 typename _Tp, typename _Compare>
20765 void
20766 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
20767 _Distance __len, _Tp __value, _Compare __comp)
20768 {
20769 const _Distance __topIndex = __holeIndex;
20770 _Distance __secondChild = 2 * __holeIndex + 2;
20771 while (__secondChild < __len)
20772 {
20773 if (__comp(*(__first + __secondChild),
20774 *(__first + (__secondChild - 1))))
20775 __secondChild--;
20776 *(__first + __holeIndex) = *(__first + __secondChild);
20777 __holeIndex = __secondChild;
20778 __secondChild = 2 * (__secondChild + 1);
20779 }
20780 if (__secondChild == __len)
20781 {
20782 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
20783 __holeIndex = __secondChild - 1;
20784 }
20785 std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
20786 }
20787
20788 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
20789 inline void
20790 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20791 _RandomAccessIterator __result, _Tp __value, _Compare __comp)
20792 {
20793 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20794 _Distance;
20795 *__result = *__first;
20796 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
20797 __value, __comp);
20798 }
20799 # 317 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20800 template<typename _RandomAccessIterator, typename _Compare>
20801 inline void
20802 pop_heap(_RandomAccessIterator __first,
20803 _RandomAccessIterator __last, _Compare __comp)
20804 {
20805
20806
20807
20808 ;
20809 ;
20810
20811 typedef typename iterator_traits<_RandomAccessIterator>::value_type
20812 _ValueType;
20813 std::__pop_heap(__first, __last - 1, __last - 1,
20814 _ValueType(*(__last - 1)), __comp);
20815 }
20816 # 342 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20817 template<typename _RandomAccessIterator>
20818 void
20819 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20820 {
20821 typedef typename iterator_traits<_RandomAccessIterator>::value_type
20822 _ValueType;
20823 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20824 _DistanceType;
20825
20826
20827
20828
20829
20830 ;
20831
20832 if (__last - __first < 2)
20833 return;
20834
20835 const _DistanceType __len = __last - __first;
20836 _DistanceType __parent = (__len - 2) / 2;
20837 while (true)
20838 {
20839 std::__adjust_heap(__first, __parent, __len,
20840 _ValueType(*(__first + __parent)));
20841 if (__parent == 0)
20842 return;
20843 __parent--;
20844 }
20845 }
20846 # 382 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20847 template<typename _RandomAccessIterator, typename _Compare>
20848 inline void
20849 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20850 _Compare __comp)
20851 {
20852 typedef typename iterator_traits<_RandomAccessIterator>::value_type
20853 _ValueType;
20854 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20855 _DistanceType;
20856
20857
20858
20859
20860 ;
20861
20862 if (__last - __first < 2)
20863 return;
20864
20865 const _DistanceType __len = __last - __first;
20866 _DistanceType __parent = (__len - 2) / 2;
20867 while (true)
20868 {
20869 std::__adjust_heap(__first, __parent, __len,
20870 _ValueType(*(__first + __parent)), __comp);
20871 if (__parent == 0)
20872 return;
20873 __parent--;
20874 }
20875 }
20876 # 420 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20877 template<typename _RandomAccessIterator>
20878 void
20879 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20880 {
20881
20882
20883
20884
20885
20886 ;
20887
20888
20889 while (__last - __first > 1)
20890 std::pop_heap(__first, _RandomAccessIterator(__last--));
20891 }
20892 # 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20893 template<typename _RandomAccessIterator, typename _Compare>
20894 void
20895 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20896 _Compare __comp)
20897 {
20898
20899
20900
20901 ;
20902 ;
20903
20904 while (__last - __first > 1)
20905 std::pop_heap(__first, _RandomAccessIterator(__last--), __comp);
20906 }
20907
20908 }
20909 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 2 3
20910 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_tempbuf.h" 1 3
20911 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_tempbuf.h" 3
20912 #define _TEMPBUF_H 1
20913
20914
20915
20916 namespace std __attribute__ ((__visibility__ ("default"))) {
20917 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_tempbuf.h" 3
20918 template<typename _ForwardIterator, typename _Tp>
20919 class _Temporary_buffer
20920 {
20921
20922
20923
20924 public:
20925 typedef _Tp value_type;
20926 typedef value_type* pointer;
20927 typedef pointer iterator;
20928 typedef ptrdiff_t size_type;
20929
20930 protected:
20931 size_type _M_original_len;
20932 size_type _M_len;
20933 pointer _M_buffer;
20934
20935 void
20936 _M_initialize_buffer(const _Tp&, __true_type) { }
20937
20938 void
20939 _M_initialize_buffer(const _Tp& __val, __false_type)
20940 { std::uninitialized_fill_n(_M_buffer, _M_len, __val); }
20941
20942 public:
20943
20944 size_type
20945 size() const
20946 { return _M_len; }
20947
20948
20949 size_type
20950 requested_size() const
20951 { return _M_original_len; }
20952
20953
20954 iterator
20955 begin()
20956 { return _M_buffer; }
20957
20958
20959 iterator
20960 end()
20961 { return _M_buffer + _M_len; }
20962
20963
20964
20965
20966
20967 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
20968
20969 ~_Temporary_buffer()
20970 {
20971 std::_Destroy(_M_buffer, _M_buffer + _M_len);
20972 std::return_temporary_buffer(_M_buffer);
20973 }
20974
20975 private:
20976
20977 _Temporary_buffer(const _Temporary_buffer&);
20978
20979 void
20980 operator=(const _Temporary_buffer&);
20981 };
20982
20983
20984 template<typename _ForwardIterator, typename _Tp>
20985 _Temporary_buffer<_ForwardIterator, _Tp>::
20986 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
20987 : _M_original_len(std::distance(__first, __last)),
20988 _M_len(0), _M_buffer(0)
20989 {
20990
20991 typedef typename std::__is_scalar<_Tp>::__type _Trivial;
20992
20993 try
20994 {
20995 pair<pointer, size_type> __p(get_temporary_buffer<
20996 value_type>(_M_original_len));
20997 _M_buffer = __p.first;
20998 _M_len = __p.second;
20999 if (_M_len > 0)
21000 _M_initialize_buffer(*__first, _Trivial());
21001 }
21002 catch(...)
21003 {
21004 std::return_temporary_buffer(_M_buffer);
21005 _M_buffer = 0;
21006 _M_len = 0;
21007 throw;
21008 }
21009 }
21010
21011 }
21012 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 2 3
21013
21014
21015
21016
21017 namespace std __attribute__ ((__visibility__ ("default"))) {
21018 # 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21019 template<typename _Tp>
21020 inline const _Tp&
21021 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
21022 {
21023
21024
21025 if (__a < __b)
21026 if (__b < __c)
21027 return __b;
21028 else if (__a < __c)
21029 return __c;
21030 else
21031 return __a;
21032 else if (__a < __c)
21033 return __a;
21034 else if (__b < __c)
21035 return __c;
21036 else
21037 return __b;
21038 }
21039 # 119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21040 template<typename _Tp, typename _Compare>
21041 inline const _Tp&
21042 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
21043 {
21044
21045
21046 if (__comp(__a, __b))
21047 if (__comp(__b, __c))
21048 return __b;
21049 else if (__comp(__a, __c))
21050 return __c;
21051 else
21052 return __a;
21053 else if (__comp(__a, __c))
21054 return __a;
21055 else if (__comp(__b, __c))
21056 return __c;
21057 else
21058 return __b;
21059 }
21060 # 151 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21061 template<typename _InputIterator, typename _Function>
21062 _Function
21063 for_each(_InputIterator __first, _InputIterator __last, _Function __f)
21064 {
21065
21066
21067 ;
21068 for ( ; __first != __last; ++__first)
21069 __f(*__first);
21070 return __f;
21071 }
21072
21073
21074
21075
21076
21077
21078 template<typename _InputIterator, typename _Tp>
21079 inline _InputIterator
21080 __find(_InputIterator __first, _InputIterator __last,
21081 const _Tp& __val, input_iterator_tag)
21082 {
21083 while (__first != __last && !(*__first == __val))
21084 ++__first;
21085 return __first;
21086 }
21087
21088
21089
21090
21091
21092
21093 template<typename _InputIterator, typename _Predicate>
21094 inline _InputIterator
21095 __find_if(_InputIterator __first, _InputIterator __last,
21096 _Predicate __pred, input_iterator_tag)
21097 {
21098 while (__first != __last && !__pred(*__first))
21099 ++__first;
21100 return __first;
21101 }
21102
21103
21104
21105
21106
21107
21108 template<typename _RandomAccessIterator, typename _Tp>
21109 _RandomAccessIterator
21110 __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
21111 const _Tp& __val, random_access_iterator_tag)
21112 {
21113 typename iterator_traits<_RandomAccessIterator>::difference_type
21114 __trip_count = (__last - __first) >> 2;
21115
21116 for ( ; __trip_count > 0 ; --__trip_count)
21117 {
21118 if (*__first == __val)
21119 return __first;
21120 ++__first;
21121
21122 if (*__first == __val)
21123 return __first;
21124 ++__first;
21125
21126 if (*__first == __val)
21127 return __first;
21128 ++__first;
21129
21130 if (*__first == __val)
21131 return __first;
21132 ++__first;
21133 }
21134
21135 switch (__last - __first)
21136 {
21137 case 3:
21138 if (*__first == __val)
21139 return __first;
21140 ++__first;
21141 case 2:
21142 if (*__first == __val)
21143 return __first;
21144 ++__first;
21145 case 1:
21146 if (*__first == __val)
21147 return __first;
21148 ++__first;
21149 case 0:
21150 default:
21151 return __last;
21152 }
21153 }
21154
21155
21156
21157
21158
21159
21160 template<typename _RandomAccessIterator, typename _Predicate>
21161 _RandomAccessIterator
21162 __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
21163 _Predicate __pred, random_access_iterator_tag)
21164 {
21165 typename iterator_traits<_RandomAccessIterator>::difference_type
21166 __trip_count = (__last - __first) >> 2;
21167
21168 for ( ; __trip_count > 0 ; --__trip_count)
21169 {
21170 if (__pred(*__first))
21171 return __first;
21172 ++__first;
21173
21174 if (__pred(*__first))
21175 return __first;
21176 ++__first;
21177
21178 if (__pred(*__first))
21179 return __first;
21180 ++__first;
21181
21182 if (__pred(*__first))
21183 return __first;
21184 ++__first;
21185 }
21186
21187 switch (__last - __first)
21188 {
21189 case 3:
21190 if (__pred(*__first))
21191 return __first;
21192 ++__first;
21193 case 2:
21194 if (__pred(*__first))
21195 return __first;
21196 ++__first;
21197 case 1:
21198 if (__pred(*__first))
21199 return __first;
21200 ++__first;
21201 case 0:
21202 default:
21203 return __last;
21204 }
21205 }
21206
21207
21208
21209
21210
21211
21212 template<typename _CharT>
21213 typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
21214 istreambuf_iterator<_CharT> >::__type
21215 find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
21216 const _CharT&);
21217 # 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21218 template<typename _InputIterator, typename _Tp>
21219 inline _InputIterator
21220 find(_InputIterator __first, _InputIterator __last,
21221 const _Tp& __val)
21222 {
21223
21224
21225
21226
21227 ;
21228 return std::__find(__first, __last, __val,
21229 std::__iterator_category(__first));
21230 }
21231 # 338 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21232 template<typename _InputIterator, typename _Predicate>
21233 inline _InputIterator
21234 find_if(_InputIterator __first, _InputIterator __last,
21235 _Predicate __pred)
21236 {
21237
21238
21239
21240
21241 ;
21242 return std::__find_if(__first, __last, __pred,
21243 std::__iterator_category(__first));
21244 }
21245 # 360 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21246 template<typename _ForwardIterator>
21247 _ForwardIterator
21248 adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
21249 {
21250
21251
21252
21253
21254 ;
21255 if (__first == __last)
21256 return __last;
21257 _ForwardIterator __next = __first;
21258 while(++__next != __last)
21259 {
21260 if (*__first == *__next)
21261 return __first;
21262 __first = __next;
21263 }
21264 return __last;
21265 }
21266 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21267 template<typename _ForwardIterator, typename _BinaryPredicate>
21268 _ForwardIterator
21269 adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
21270 _BinaryPredicate __binary_pred)
21271 {
21272
21273
21274
21275
21276
21277 ;
21278 if (__first == __last)
21279 return __last;
21280 _ForwardIterator __next = __first;
21281 while(++__next != __last)
21282 {
21283 if (__binary_pred(*__first, *__next))
21284 return __first;
21285 __first = __next;
21286 }
21287 return __last;
21288 }
21289 # 422 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21290 template<typename _InputIterator, typename _Tp>
21291 typename iterator_traits<_InputIterator>::difference_type
21292 count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
21293 {
21294
21295
21296
21297
21298 ;
21299 typename iterator_traits<_InputIterator>::difference_type __n = 0;
21300 for ( ; __first != __last; ++__first)
21301 if (*__first == __value)
21302 ++__n;
21303 return __n;
21304 }
21305 # 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21306 template<typename _InputIterator, typename _Predicate>
21307 typename iterator_traits<_InputIterator>::difference_type
21308 count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
21309 {
21310
21311
21312
21313
21314 ;
21315 typename iterator_traits<_InputIterator>::difference_type __n = 0;
21316 for ( ; __first != __last; ++__first)
21317 if (__pred(*__first))
21318 ++__n;
21319 return __n;
21320 }
21321 # 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21322 template<typename _ForwardIterator1, typename _ForwardIterator2>
21323 _ForwardIterator1
21324 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
21325 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
21326 {
21327
21328
21329
21330
21331
21332
21333 ;
21334 ;
21335
21336 if (__first1 == __last1 || __first2 == __last2)
21337 return __first1;
21338
21339
21340 _ForwardIterator2 __tmp(__first2);
21341 ++__tmp;
21342 if (__tmp == __last2)
21343 return std::find(__first1, __last1, *__first2);
21344
21345
21346 _ForwardIterator2 __p1, __p;
21347 __p1 = __first2; ++__p1;
21348 _ForwardIterator1 __current = __first1;
21349
21350 while (__first1 != __last1)
21351 {
21352 __first1 = std::find(__first1, __last1, *__first2);
21353 if (__first1 == __last1)
21354 return __last1;
21355
21356 __p = __p1;
21357 __current = __first1;
21358 if (++__current == __last1)
21359 return __last1;
21360
21361 while (*__current == *__p)
21362 {
21363 if (++__p == __last2)
21364 return __first1;
21365 if (++__current == __last1)
21366 return __last1;
21367 }
21368 ++__first1;
21369 }
21370 return __first1;
21371 }
21372 # 556 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21373 template<typename _ForwardIterator1, typename _ForwardIterator2,
21374 typename _BinaryPredicate>
21375 _ForwardIterator1
21376 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
21377 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
21378 _BinaryPredicate __predicate)
21379 {
21380
21381
21382
21383
21384
21385
21386 ;
21387 ;
21388
21389
21390 if (__first1 == __last1 || __first2 == __last2)
21391 return __first1;
21392
21393
21394 _ForwardIterator2 __tmp(__first2);
21395 ++__tmp;
21396 if (__tmp == __last2)
21397 {
21398 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
21399 ++__first1;
21400 return __first1;
21401 }
21402
21403
21404 _ForwardIterator2 __p1, __p;
21405 __p1 = __first2; ++__p1;
21406 _ForwardIterator1 __current = __first1;
21407
21408 while (__first1 != __last1)
21409 {
21410 while (__first1 != __last1)
21411 {
21412 if (__predicate(*__first1, *__first2))
21413 break;
21414 ++__first1;
21415 }
21416 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
21417 ++__first1;
21418 if (__first1 == __last1)
21419 return __last1;
21420
21421 __p = __p1;
21422 __current = __first1;
21423 if (++__current == __last1)
21424 return __last1;
21425
21426 while (__predicate(*__current, *__p))
21427 {
21428 if (++__p == __last2)
21429 return __first1;
21430 if (++__current == __last1)
21431 return __last1;
21432 }
21433 ++__first1;
21434 }
21435 return __first1;
21436 }
21437 # 628 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21438 template<typename _ForwardIterator, typename _Integer, typename _Tp>
21439 _ForwardIterator
21440 __search_n(_ForwardIterator __first, _ForwardIterator __last,
21441 _Integer __count, const _Tp& __val,
21442 std::forward_iterator_tag)
21443 {
21444 __first = std::find(__first, __last, __val);
21445 while (__first != __last)
21446 {
21447 typename iterator_traits<_ForwardIterator>::difference_type
21448 __n = __count;
21449 _ForwardIterator __i = __first;
21450 ++__i;
21451 while (__i != __last && __n != 1 && *__i == __val)
21452 {
21453 ++__i;
21454 --__n;
21455 }
21456 if (__n == 1)
21457 return __first;
21458 if (__i == __last)
21459 return __last;
21460 __first = std::find(++__i, __last, __val);
21461 }
21462 return __last;
21463 }
21464 # 662 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21465 template<typename _RandomAccessIter, typename _Integer, typename _Tp>
21466 _RandomAccessIter
21467 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
21468 _Integer __count, const _Tp& __val,
21469 std::random_access_iterator_tag)
21470 {
21471
21472 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
21473 _DistanceType;
21474
21475 _DistanceType __tailSize = __last - __first;
21476 const _DistanceType __pattSize = __count;
21477
21478 if (__tailSize < __pattSize)
21479 return __last;
21480
21481 const _DistanceType __skipOffset = __pattSize - 1;
21482 _RandomAccessIter __lookAhead = __first + __skipOffset;
21483 __tailSize -= __pattSize;
21484
21485 while (1)
21486 {
21487
21488
21489 while (!(*__lookAhead == __val))
21490 {
21491 if (__tailSize < __pattSize)
21492 return __last;
21493 __lookAhead += __pattSize;
21494 __tailSize -= __pattSize;
21495 }
21496 _DistanceType __remainder = __skipOffset;
21497 for (_RandomAccessIter __backTrack = __lookAhead - 1;
21498 *__backTrack == __val; --__backTrack)
21499 {
21500 if (--__remainder == 0)
21501 return (__lookAhead - __skipOffset);
21502 }
21503 if (__remainder > __tailSize)
21504 return __last;
21505 __lookAhead += __remainder;
21506 __tailSize -= __remainder;
21507 }
21508 }
21509 # 720 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21510 template<typename _ForwardIterator, typename _Integer, typename _Tp>
21511 _ForwardIterator
21512 search_n(_ForwardIterator __first, _ForwardIterator __last,
21513 _Integer __count, const _Tp& __val)
21514 {
21515
21516
21517
21518
21519 ;
21520
21521 if (__count <= 0)
21522 return __first;
21523 if (__count == 1)
21524 return std::find(__first, __last, __val);
21525 return std::__search_n(__first, __last, __count, __val,
21526 std::__iterator_category(__first));
21527 }
21528 # 747 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21529 template<typename _ForwardIterator, typename _Integer, typename _Tp,
21530 typename _BinaryPredicate>
21531 _ForwardIterator
21532 __search_n(_ForwardIterator __first, _ForwardIterator __last,
21533 _Integer __count, const _Tp& __val,
21534 _BinaryPredicate __binary_pred, std::forward_iterator_tag)
21535 {
21536 while (__first != __last && !__binary_pred(*__first, __val))
21537 ++__first;
21538
21539 while (__first != __last)
21540 {
21541 typename iterator_traits<_ForwardIterator>::difference_type
21542 __n = __count;
21543 _ForwardIterator __i = __first;
21544 ++__i;
21545 while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
21546 {
21547 ++__i;
21548 --__n;
21549 }
21550 if (__n == 1)
21551 return __first;
21552 if (__i == __last)
21553 return __last;
21554 __first = ++__i;
21555 while (__first != __last && !__binary_pred(*__first, __val))
21556 ++__first;
21557 }
21558 return __last;
21559 }
21560 # 787 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21561 template<typename _RandomAccessIter, typename _Integer, typename _Tp,
21562 typename _BinaryPredicate>
21563 _RandomAccessIter
21564 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
21565 _Integer __count, const _Tp& __val,
21566 _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
21567 {
21568
21569 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
21570 _DistanceType;
21571
21572 _DistanceType __tailSize = __last - __first;
21573 const _DistanceType __pattSize = __count;
21574
21575 if (__tailSize < __pattSize)
21576 return __last;
21577
21578 const _DistanceType __skipOffset = __pattSize - 1;
21579 _RandomAccessIter __lookAhead = __first + __skipOffset;
21580 __tailSize -= __pattSize;
21581
21582 while (1)
21583 {
21584
21585
21586 while (!__binary_pred(*__lookAhead, __val))
21587 {
21588 if (__tailSize < __pattSize)
21589 return __last;
21590 __lookAhead += __pattSize;
21591 __tailSize -= __pattSize;
21592 }
21593 _DistanceType __remainder = __skipOffset;
21594 for (_RandomAccessIter __backTrack = __lookAhead - 1;
21595 __binary_pred(*__backTrack, __val); --__backTrack)
21596 {
21597 if (--__remainder == 0)
21598 return (__lookAhead - __skipOffset);
21599 }
21600 if (__remainder > __tailSize)
21601 return __last;
21602 __lookAhead += __remainder;
21603 __tailSize -= __remainder;
21604 }
21605 }
21606 # 848 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21607 template<typename _ForwardIterator, typename _Integer, typename _Tp,
21608 typename _BinaryPredicate>
21609 _ForwardIterator
21610 search_n(_ForwardIterator __first, _ForwardIterator __last,
21611 _Integer __count, const _Tp& __val,
21612 _BinaryPredicate __binary_pred)
21613 {
21614
21615
21616
21617
21618 ;
21619
21620 if (__count <= 0)
21621 return __first;
21622 if (__count == 1)
21623 {
21624 while (__first != __last && !__binary_pred(*__first, __val))
21625 ++__first;
21626 return __first;
21627 }
21628 return std::__search_n(__first, __last, __count, __val, __binary_pred,
21629 std::__iterator_category(__first));
21630 }
21631 # 884 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21632 template<typename _ForwardIterator1, typename _ForwardIterator2>
21633 _ForwardIterator2
21634 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
21635 _ForwardIterator2 __first2)
21636 {
21637
21638
21639
21640
21641
21642
21643
21644
21645
21646
21647
21648 ;
21649
21650 for ( ; __first1 != __last1; ++__first1, ++__first2)
21651 std::iter_swap(__first1, __first2);
21652 return __first2;
21653 }
21654 # 922 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21655 template<typename _InputIterator, typename _OutputIterator,
21656 typename _UnaryOperation>
21657 _OutputIterator
21658 transform(_InputIterator __first, _InputIterator __last,
21659 _OutputIterator __result, _UnaryOperation __unary_op)
21660 {
21661
21662
21663
21664
21665
21666 ;
21667
21668 for ( ; __first != __last; ++__first, ++__result)
21669 *__result = __unary_op(*__first);
21670 return __result;
21671 }
21672 # 957 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21673 template<typename _InputIterator1, typename _InputIterator2,
21674 typename _OutputIterator, typename _BinaryOperation>
21675 _OutputIterator
21676 transform(_InputIterator1 __first1, _InputIterator1 __last1,
21677 _InputIterator2 __first2, _OutputIterator __result,
21678 _BinaryOperation __binary_op)
21679 {
21680
21681
21682
21683
21684
21685
21686 ;
21687
21688 for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
21689 *__result = __binary_op(*__first1, *__first2);
21690 return __result;
21691 }
21692 # 989 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21693 template<typename _ForwardIterator, typename _Tp>
21694 void
21695 replace(_ForwardIterator __first, _ForwardIterator __last,
21696 const _Tp& __old_value, const _Tp& __new_value)
21697 {
21698
21699
21700
21701
21702
21703
21704
21705 ;
21706
21707 for ( ; __first != __last; ++__first)
21708 if (*__first == __old_value)
21709 *__first = __new_value;
21710 }
21711 # 1020 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21712 template<typename _ForwardIterator, typename _Predicate, typename _Tp>
21713 void
21714 replace_if(_ForwardIterator __first, _ForwardIterator __last,
21715 _Predicate __pred, const _Tp& __new_value)
21716 {
21717
21718
21719
21720
21721
21722
21723
21724 ;
21725
21726 for ( ; __first != __last; ++__first)
21727 if (__pred(*__first))
21728 *__first = __new_value;
21729 }
21730 # 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21731 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
21732 _OutputIterator
21733 replace_copy(_InputIterator __first, _InputIterator __last,
21734 _OutputIterator __result,
21735 const _Tp& __old_value, const _Tp& __new_value)
21736 {
21737
21738
21739
21740
21741
21742
21743 ;
21744
21745 for ( ; __first != __last; ++__first, ++__result)
21746 if (*__first == __old_value)
21747 *__result = __new_value;
21748 else
21749 *__result = *__first;
21750 return __result;
21751 }
21752 # 1089 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21753 template<typename _InputIterator, typename _OutputIterator,
21754 typename _Predicate, typename _Tp>
21755 _OutputIterator
21756 replace_copy_if(_InputIterator __first, _InputIterator __last,
21757 _OutputIterator __result,
21758 _Predicate __pred, const _Tp& __new_value)
21759 {
21760
21761
21762
21763
21764
21765
21766 ;
21767
21768 for ( ; __first != __last; ++__first, ++__result)
21769 if (__pred(*__first))
21770 *__result = __new_value;
21771 else
21772 *__result = *__first;
21773 return __result;
21774 }
21775 # 1123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21776 template<typename _ForwardIterator, typename _Generator>
21777 void
21778 generate(_ForwardIterator __first, _ForwardIterator __last,
21779 _Generator __gen)
21780 {
21781
21782
21783
21784
21785 ;
21786
21787 for ( ; __first != __last; ++__first)
21788 *__first = __gen();
21789 }
21790 # 1149 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21791 template<typename _OutputIterator, typename _Size, typename _Generator>
21792 _OutputIterator
21793 generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
21794 {
21795
21796
21797
21798
21799
21800 for ( ; __n > 0; --__n, ++__first)
21801 *__first = __gen();
21802 return __first;
21803 }
21804 # 1176 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21805 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
21806 _OutputIterator
21807 remove_copy(_InputIterator __first, _InputIterator __last,
21808 _OutputIterator __result, const _Tp& __value)
21809 {
21810
21811
21812
21813
21814
21815
21816 ;
21817
21818 for ( ; __first != __last; ++__first)
21819 if (!(*__first == __value))
21820 {
21821 *__result = *__first;
21822 ++__result;
21823 }
21824 return __result;
21825 }
21826 # 1212 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21827 template<typename _InputIterator, typename _OutputIterator,
21828 typename _Predicate>
21829 _OutputIterator
21830 remove_copy_if(_InputIterator __first, _InputIterator __last,
21831 _OutputIterator __result, _Predicate __pred)
21832 {
21833
21834
21835
21836
21837
21838
21839 ;
21840
21841 for ( ; __first != __last; ++__first)
21842 if (!__pred(*__first))
21843 {
21844 *__result = *__first;
21845 ++__result;
21846 }
21847 return __result;
21848 }
21849 # 1251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21850 template<typename _ForwardIterator, typename _Tp>
21851 _ForwardIterator
21852 remove(_ForwardIterator __first, _ForwardIterator __last,
21853 const _Tp& __value)
21854 {
21855
21856
21857
21858
21859
21860 ;
21861
21862 __first = std::find(__first, __last, __value);
21863 _ForwardIterator __i = __first;
21864 return __first == __last ? __first
21865 : std::remove_copy(++__i, __last,
21866 __first, __value);
21867 }
21868 # 1286 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21869 template<typename _ForwardIterator, typename _Predicate>
21870 _ForwardIterator
21871 remove_if(_ForwardIterator __first, _ForwardIterator __last,
21872 _Predicate __pred)
21873 {
21874
21875
21876
21877
21878
21879 ;
21880
21881 __first = std::find_if(__first, __last, __pred);
21882 _ForwardIterator __i = __first;
21883 return __first == __last ? __first
21884 : std::remove_copy_if(++__i, __last,
21885 __first, __pred);
21886 }
21887 # 1312 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21888 template<typename _ForwardIterator, typename _OutputIterator>
21889 _OutputIterator
21890 __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
21891 _OutputIterator __result,
21892 forward_iterator_tag, output_iterator_tag)
21893 {
21894
21895 _ForwardIterator __next = __first;
21896 *__result = *__first;
21897 while (++__next != __last)
21898 if (!(*__first == *__next))
21899 {
21900 __first = __next;
21901 *++__result = *__first;
21902 }
21903 return ++__result;
21904 }
21905 # 1337 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21906 template<typename _InputIterator, typename _OutputIterator>
21907 _OutputIterator
21908 __unique_copy(_InputIterator __first, _InputIterator __last,
21909 _OutputIterator __result,
21910 input_iterator_tag, output_iterator_tag)
21911 {
21912
21913 typename iterator_traits<_InputIterator>::value_type __value = *__first;
21914 *__result = __value;
21915 while (++__first != __last)
21916 if (!(__value == *__first))
21917 {
21918 __value = *__first;
21919 *++__result = __value;
21920 }
21921 return ++__result;
21922 }
21923 # 1362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21924 template<typename _InputIterator, typename _ForwardIterator>
21925 _ForwardIterator
21926 __unique_copy(_InputIterator __first, _InputIterator __last,
21927 _ForwardIterator __result,
21928 input_iterator_tag, forward_iterator_tag)
21929 {
21930
21931 *__result = *__first;
21932 while (++__first != __last)
21933 if (!(*__result == *__first))
21934 *++__result = *__first;
21935 return ++__result;
21936 }
21937 # 1384 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21938 template<typename _ForwardIterator, typename _OutputIterator,
21939 typename _BinaryPredicate>
21940 _OutputIterator
21941 __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
21942 _OutputIterator __result, _BinaryPredicate __binary_pred,
21943 forward_iterator_tag, output_iterator_tag)
21944 {
21945
21946
21947
21948
21949
21950 _ForwardIterator __next = __first;
21951 *__result = *__first;
21952 while (++__next != __last)
21953 if (!__binary_pred(*__first, *__next))
21954 {
21955 __first = __next;
21956 *++__result = *__first;
21957 }
21958 return ++__result;
21959 }
21960 # 1415 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21961 template<typename _InputIterator, typename _OutputIterator,
21962 typename _BinaryPredicate>
21963 _OutputIterator
21964 __unique_copy(_InputIterator __first, _InputIterator __last,
21965 _OutputIterator __result, _BinaryPredicate __binary_pred,
21966 input_iterator_tag, output_iterator_tag)
21967 {
21968
21969
21970
21971
21972
21973 typename iterator_traits<_InputIterator>::value_type __value = *__first;
21974 *__result = __value;
21975 while (++__first != __last)
21976 if (!__binary_pred(__value, *__first))
21977 {
21978 __value = *__first;
21979 *++__result = __value;
21980 }
21981 return ++__result;
21982 }
21983 # 1446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21984 template<typename _InputIterator, typename _ForwardIterator,
21985 typename _BinaryPredicate>
21986 _ForwardIterator
21987 __unique_copy(_InputIterator __first, _InputIterator __last,
21988 _ForwardIterator __result, _BinaryPredicate __binary_pred,
21989 input_iterator_tag, forward_iterator_tag)
21990 {
21991
21992
21993
21994
21995
21996 *__result = *__first;
21997 while (++__first != __last)
21998 if (!__binary_pred(*__result, *__first))
21999 *++__result = *__first;
22000 return ++__result;
22001 }
22002 # 1487 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22003 template<typename _InputIterator, typename _OutputIterator>
22004 inline _OutputIterator
22005 unique_copy(_InputIterator __first, _InputIterator __last,
22006 _OutputIterator __result)
22007 {
22008
22009
22010
22011
22012
22013
22014 ;
22015
22016 if (__first == __last)
22017 return __result;
22018 return std::__unique_copy(__first, __last, __result,
22019 std::__iterator_category(__first),
22020 std::__iterator_category(__result));
22021 }
22022 # 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22023 template<typename _InputIterator, typename _OutputIterator,
22024 typename _BinaryPredicate>
22025 inline _OutputIterator
22026 unique_copy(_InputIterator __first, _InputIterator __last,
22027 _OutputIterator __result,
22028 _BinaryPredicate __binary_pred)
22029 {
22030
22031
22032
22033
22034 ;
22035
22036 if (__first == __last)
22037 return __result;
22038 return std::__unique_copy(__first, __last, __result, __binary_pred,
22039 std::__iterator_category(__first),
22040 std::__iterator_category(__result));
22041 }
22042 # 1560 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22043 template<typename _ForwardIterator>
22044 _ForwardIterator
22045 unique(_ForwardIterator __first, _ForwardIterator __last)
22046 {
22047
22048
22049
22050
22051
22052 ;
22053
22054
22055 __first = std::adjacent_find(__first, __last);
22056 if (__first == __last)
22057 return __last;
22058
22059
22060 _ForwardIterator __dest = __first;
22061 ++__first;
22062 while (++__first != __last)
22063 if (!(*__dest == *__first))
22064 *++__dest = *__first;
22065 return ++__dest;
22066 }
22067 # 1599 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22068 template<typename _ForwardIterator, typename _BinaryPredicate>
22069 _ForwardIterator
22070 unique(_ForwardIterator __first, _ForwardIterator __last,
22071 _BinaryPredicate __binary_pred)
22072 {
22073
22074
22075
22076
22077
22078
22079 ;
22080
22081
22082 __first = std::adjacent_find(__first, __last, __binary_pred);
22083 if (__first == __last)
22084 return __last;
22085
22086
22087 _ForwardIterator __dest = __first;
22088 ++__first;
22089 while (++__first != __last)
22090 if (!__binary_pred(*__dest, *__first))
22091 *++__dest = *__first;
22092 return ++__dest;
22093 }
22094 # 1633 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22095 template<typename _BidirectionalIterator>
22096 void
22097 __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
22098 bidirectional_iterator_tag)
22099 {
22100 while (true)
22101 if (__first == __last || __first == --__last)
22102 return;
22103 else
22104 {
22105 std::iter_swap(__first, __last);
22106 ++__first;
22107 }
22108 }
22109 # 1655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22110 template<typename _RandomAccessIterator>
22111 void
22112 __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
22113 random_access_iterator_tag)
22114 {
22115 if (__first == __last)
22116 return;
22117 --__last;
22118 while (__first < __last)
22119 {
22120 std::iter_swap(__first, __last);
22121 ++__first;
22122 --__last;
22123 }
22124 }
22125 # 1682 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22126 template<typename _BidirectionalIterator>
22127 inline void
22128 reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
22129 {
22130
22131
22132
22133 ;
22134 std::__reverse(__first, __last, std::__iterator_category(__first));
22135 }
22136 # 1708 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22137 template<typename _BidirectionalIterator, typename _OutputIterator>
22138 _OutputIterator
22139 reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
22140 _OutputIterator __result)
22141 {
22142
22143
22144
22145
22146
22147 ;
22148
22149 while (__first != __last)
22150 {
22151 --__last;
22152 *__result = *__last;
22153 ++__result;
22154 }
22155 return __result;
22156 }
22157 # 1736 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22158 template<typename _EuclideanRingElement>
22159 _EuclideanRingElement
22160 __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
22161 {
22162 while (__n != 0)
22163 {
22164 _EuclideanRingElement __t = __m % __n;
22165 __m = __n;
22166 __n = __t;
22167 }
22168 return __m;
22169 }
22170
22171
22172
22173
22174
22175
22176 template<typename _ForwardIterator>
22177 void
22178 __rotate(_ForwardIterator __first,
22179 _ForwardIterator __middle,
22180 _ForwardIterator __last,
22181 forward_iterator_tag)
22182 {
22183 if (__first == __middle || __last == __middle)
22184 return;
22185
22186 _ForwardIterator __first2 = __middle;
22187 do
22188 {
22189 swap(*__first, *__first2);
22190 ++__first;
22191 ++__first2;
22192 if (__first == __middle)
22193 __middle = __first2;
22194 }
22195 while (__first2 != __last);
22196
22197 __first2 = __middle;
22198
22199 while (__first2 != __last)
22200 {
22201 swap(*__first, *__first2);
22202 ++__first;
22203 ++__first2;
22204 if (__first == __middle)
22205 __middle = __first2;
22206 else if (__first2 == __last)
22207 __first2 = __middle;
22208 }
22209 }
22210
22211
22212
22213
22214
22215
22216 template<typename _BidirectionalIterator>
22217 void
22218 __rotate(_BidirectionalIterator __first,
22219 _BidirectionalIterator __middle,
22220 _BidirectionalIterator __last,
22221 bidirectional_iterator_tag)
22222 {
22223
22224
22225
22226
22227 if (__first == __middle || __last == __middle)
22228 return;
22229
22230 std::__reverse(__first, __middle, bidirectional_iterator_tag());
22231 std::__reverse(__middle, __last, bidirectional_iterator_tag());
22232
22233 while (__first != __middle && __middle != __last)
22234 {
22235 swap(*__first, *--__last);
22236 ++__first;
22237 }
22238
22239 if (__first == __middle)
22240 std::__reverse(__middle, __last, bidirectional_iterator_tag());
22241 else
22242 std::__reverse(__first, __middle, bidirectional_iterator_tag());
22243 }
22244
22245
22246
22247
22248
22249
22250 template<typename _RandomAccessIterator>
22251 void
22252 __rotate(_RandomAccessIterator __first,
22253 _RandomAccessIterator __middle,
22254 _RandomAccessIterator __last,
22255 random_access_iterator_tag)
22256 {
22257
22258
22259
22260
22261 if (__first == __middle || __last == __middle)
22262 return;
22263
22264 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
22265 _Distance;
22266 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22267 _ValueType;
22268
22269 const _Distance __n = __last - __first;
22270 const _Distance __k = __middle - __first;
22271 const _Distance __l = __n - __k;
22272
22273 if (__k == __l)
22274 {
22275 std::swap_ranges(__first, __middle, __middle);
22276 return;
22277 }
22278
22279 const _Distance __d = __gcd(__n, __k);
22280
22281 for (_Distance __i = 0; __i < __d; __i++)
22282 {
22283 _ValueType __tmp = *__first;
22284 _RandomAccessIterator __p = __first;
22285
22286 if (__k < __l)
22287 {
22288 for (_Distance __j = 0; __j < __l / __d; __j++)
22289 {
22290 if (__p > __first + __l)
22291 {
22292 *__p = *(__p - __l);
22293 __p -= __l;
22294 }
22295
22296 *__p = *(__p + __k);
22297 __p += __k;
22298 }
22299 }
22300 else
22301 {
22302 for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
22303 {
22304 if (__p < __last - __k)
22305 {
22306 *__p = *(__p + __k);
22307 __p += __k;
22308 }
22309 *__p = * (__p - __l);
22310 __p -= __l;
22311 }
22312 }
22313
22314 *__p = __tmp;
22315 ++__first;
22316 }
22317 }
22318 # 1915 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22319 template<typename _ForwardIterator>
22320 inline void
22321 rotate(_ForwardIterator __first, _ForwardIterator __middle,
22322 _ForwardIterator __last)
22323 {
22324
22325
22326
22327 ;
22328 ;
22329
22330 typedef typename iterator_traits<_ForwardIterator>::iterator_category
22331 _IterType;
22332 std::__rotate(__first, __middle, __last, _IterType());
22333 }
22334 # 1948 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22335 template<typename _ForwardIterator, typename _OutputIterator>
22336 _OutputIterator
22337 rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
22338 _ForwardIterator __last, _OutputIterator __result)
22339 {
22340
22341
22342
22343
22344 ;
22345 ;
22346
22347 return std::copy(__first, __middle,
22348 std::copy(__middle, __last, __result));
22349 }
22350 # 1974 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22351 template<typename _RandomAccessIterator>
22352 inline void
22353 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
22354 {
22355
22356
22357
22358 ;
22359
22360 if (__first != __last)
22361 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22362 std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
22363 }
22364 # 2001 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22365 template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
22366 void
22367 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
22368 _RandomNumberGenerator& __rand)
22369 {
22370
22371
22372
22373 ;
22374
22375 if (__first == __last)
22376 return;
22377 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22378 std::iter_swap(__i, __first + __rand((__i - __first) + 1));
22379 }
22380
22381
22382
22383
22384
22385
22386
22387 template<typename _ForwardIterator, typename _Predicate>
22388 _ForwardIterator
22389 __partition(_ForwardIterator __first, _ForwardIterator __last,
22390 _Predicate __pred,
22391 forward_iterator_tag)
22392 {
22393 if (__first == __last)
22394 return __first;
22395
22396 while (__pred(*__first))
22397 if (++__first == __last)
22398 return __first;
22399
22400 _ForwardIterator __next = __first;
22401
22402 while (++__next != __last)
22403 if (__pred(*__next))
22404 {
22405 swap(*__first, *__next);
22406 ++__first;
22407 }
22408
22409 return __first;
22410 }
22411
22412
22413
22414
22415
22416
22417 template<typename _BidirectionalIterator, typename _Predicate>
22418 _BidirectionalIterator
22419 __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
22420 _Predicate __pred,
22421 bidirectional_iterator_tag)
22422 {
22423 while (true)
22424 {
22425 while (true)
22426 if (__first == __last)
22427 return __first;
22428 else if (__pred(*__first))
22429 ++__first;
22430 else
22431 break;
22432 --__last;
22433 while (true)
22434 if (__first == __last)
22435 return __first;
22436 else if (!__pred(*__last))
22437 --__last;
22438 else
22439 break;
22440 std::iter_swap(__first, __last);
22441 ++__first;
22442 }
22443 }
22444 # 2095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22445 template<typename _ForwardIterator, typename _Predicate>
22446 inline _ForwardIterator
22447 partition(_ForwardIterator __first, _ForwardIterator __last,
22448 _Predicate __pred)
22449 {
22450
22451
22452
22453
22454
22455 ;
22456
22457 return std::__partition(__first, __last, __pred,
22458 std::__iterator_category(__first));
22459 }
22460
22461
22462
22463
22464
22465
22466
22467 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
22468 _ForwardIterator
22469 __inplace_stable_partition(_ForwardIterator __first,
22470 _ForwardIterator __last,
22471 _Predicate __pred, _Distance __len)
22472 {
22473 if (__len == 1)
22474 return __pred(*__first) ? __last : __first;
22475 _ForwardIterator __middle = __first;
22476 std::advance(__middle, __len / 2);
22477 _ForwardIterator __begin = std::__inplace_stable_partition(__first,
22478 __middle,
22479 __pred,
22480 __len / 2);
22481 _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
22482 __pred,
22483 __len
22484 - __len / 2);
22485 std::rotate(__begin, __middle, __end);
22486 std::advance(__begin, std::distance(__middle, __end));
22487 return __begin;
22488 }
22489
22490
22491
22492
22493
22494
22495 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
22496 typename _Distance>
22497 _ForwardIterator
22498 __stable_partition_adaptive(_ForwardIterator __first,
22499 _ForwardIterator __last,
22500 _Predicate __pred, _Distance __len,
22501 _Pointer __buffer,
22502 _Distance __buffer_size)
22503 {
22504 if (__len <= __buffer_size)
22505 {
22506 _ForwardIterator __result1 = __first;
22507 _Pointer __result2 = __buffer;
22508 for ( ; __first != __last ; ++__first)
22509 if (__pred(*__first))
22510 {
22511 *__result1 = *__first;
22512 ++__result1;
22513 }
22514 else
22515 {
22516 *__result2 = *__first;
22517 ++__result2;
22518 }
22519 std::copy(__buffer, __result2, __result1);
22520 return __result1;
22521 }
22522 else
22523 {
22524 _ForwardIterator __middle = __first;
22525 std::advance(__middle, __len / 2);
22526 _ForwardIterator __begin =
22527 std::__stable_partition_adaptive(__first, __middle, __pred,
22528 __len / 2, __buffer,
22529 __buffer_size);
22530 _ForwardIterator __end =
22531 std::__stable_partition_adaptive(__middle, __last, __pred,
22532 __len - __len / 2,
22533 __buffer, __buffer_size);
22534 std::rotate(__begin, __middle, __end);
22535 std::advance(__begin, std::distance(__middle, __end));
22536 return __begin;
22537 }
22538 }
22539 # 2206 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22540 template<typename _ForwardIterator, typename _Predicate>
22541 _ForwardIterator
22542 stable_partition(_ForwardIterator __first, _ForwardIterator __last,
22543 _Predicate __pred)
22544 {
22545
22546
22547
22548
22549
22550 ;
22551
22552 if (__first == __last)
22553 return __first;
22554 else
22555 {
22556 typedef typename iterator_traits<_ForwardIterator>::value_type
22557 _ValueType;
22558 typedef typename iterator_traits<_ForwardIterator>::difference_type
22559 _DistanceType;
22560
22561 _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
22562 __last);
22563 if (__buf.size() > 0)
22564 return
22565 std::__stable_partition_adaptive(__first, __last, __pred,
22566 _DistanceType(__buf.requested_size()),
22567 __buf.begin(), __buf.size());
22568 else
22569 return
22570 std::__inplace_stable_partition(__first, __last, __pred,
22571 _DistanceType(__buf.requested_size()));
22572 }
22573 }
22574
22575
22576
22577
22578
22579
22580 template<typename _RandomAccessIterator, typename _Tp>
22581 _RandomAccessIterator
22582 __unguarded_partition(_RandomAccessIterator __first,
22583 _RandomAccessIterator __last, _Tp __pivot)
22584 {
22585 while (true)
22586 {
22587 while (*__first < __pivot)
22588 ++__first;
22589 --__last;
22590 while (__pivot < *__last)
22591 --__last;
22592 if (!(__first < __last))
22593 return __first;
22594 std::iter_swap(__first, __last);
22595 ++__first;
22596 }
22597 }
22598
22599
22600
22601
22602
22603
22604 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
22605 _RandomAccessIterator
22606 __unguarded_partition(_RandomAccessIterator __first,
22607 _RandomAccessIterator __last,
22608 _Tp __pivot, _Compare __comp)
22609 {
22610 while (true)
22611 {
22612 while (__comp(*__first, __pivot))
22613 ++__first;
22614 --__last;
22615 while (__comp(__pivot, *__last))
22616 --__last;
22617 if (!(__first < __last))
22618 return __first;
22619 std::iter_swap(__first, __last);
22620 ++__first;
22621 }
22622 }
22623
22624
22625
22626
22627
22628
22629
22630 enum { _S_threshold = 16 };
22631
22632
22633
22634
22635
22636
22637 template<typename _RandomAccessIterator, typename _Tp>
22638 void
22639 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
22640 {
22641 _RandomAccessIterator __next = __last;
22642 --__next;
22643 while (__val < *__next)
22644 {
22645 *__last = *__next;
22646 __last = __next;
22647 --__next;
22648 }
22649 *__last = __val;
22650 }
22651
22652
22653
22654
22655
22656
22657 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
22658 void
22659 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
22660 _Compare __comp)
22661 {
22662 _RandomAccessIterator __next = __last;
22663 --__next;
22664 while (__comp(__val, *__next))
22665 {
22666 *__last = *__next;
22667 __last = __next;
22668 --__next;
22669 }
22670 *__last = __val;
22671 }
22672
22673
22674
22675
22676
22677
22678 template<typename _RandomAccessIterator>
22679 void
22680 __insertion_sort(_RandomAccessIterator __first,
22681 _RandomAccessIterator __last)
22682 {
22683 if (__first == __last)
22684 return;
22685
22686 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22687 {
22688 typename iterator_traits<_RandomAccessIterator>::value_type
22689 __val = *__i;
22690 if (__val < *__first)
22691 {
22692 std::copy_backward(__first, __i, __i + 1);
22693 *__first = __val;
22694 }
22695 else
22696 std::__unguarded_linear_insert(__i, __val);
22697 }
22698 }
22699
22700
22701
22702
22703
22704
22705 template<typename _RandomAccessIterator, typename _Compare>
22706 void
22707 __insertion_sort(_RandomAccessIterator __first,
22708 _RandomAccessIterator __last, _Compare __comp)
22709 {
22710 if (__first == __last) return;
22711
22712 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22713 {
22714 typename iterator_traits<_RandomAccessIterator>::value_type
22715 __val = *__i;
22716 if (__comp(__val, *__first))
22717 {
22718 std::copy_backward(__first, __i, __i + 1);
22719 *__first = __val;
22720 }
22721 else
22722 std::__unguarded_linear_insert(__i, __val, __comp);
22723 }
22724 }
22725
22726
22727
22728
22729
22730
22731 template<typename _RandomAccessIterator>
22732 inline void
22733 __unguarded_insertion_sort(_RandomAccessIterator __first,
22734 _RandomAccessIterator __last)
22735 {
22736 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22737 _ValueType;
22738
22739 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
22740 std::__unguarded_linear_insert(__i, _ValueType(*__i));
22741 }
22742
22743
22744
22745
22746
22747
22748 template<typename _RandomAccessIterator, typename _Compare>
22749 inline void
22750 __unguarded_insertion_sort(_RandomAccessIterator __first,
22751 _RandomAccessIterator __last, _Compare __comp)
22752 {
22753 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22754 _ValueType;
22755
22756 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
22757 std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
22758 }
22759
22760
22761
22762
22763
22764
22765 template<typename _RandomAccessIterator>
22766 void
22767 __final_insertion_sort(_RandomAccessIterator __first,
22768 _RandomAccessIterator __last)
22769 {
22770 if (__last - __first > int(_S_threshold))
22771 {
22772 std::__insertion_sort(__first, __first + int(_S_threshold));
22773 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
22774 }
22775 else
22776 std::__insertion_sort(__first, __last);
22777 }
22778
22779
22780
22781
22782
22783
22784 template<typename _RandomAccessIterator, typename _Compare>
22785 void
22786 __final_insertion_sort(_RandomAccessIterator __first,
22787 _RandomAccessIterator __last, _Compare __comp)
22788 {
22789 if (__last - __first > int(_S_threshold))
22790 {
22791 std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
22792 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
22793 __comp);
22794 }
22795 else
22796 std::__insertion_sort(__first, __last, __comp);
22797 }
22798
22799
22800
22801
22802
22803
22804 template<typename _RandomAccessIterator>
22805 void
22806 __heap_select(_RandomAccessIterator __first,
22807 _RandomAccessIterator __middle,
22808 _RandomAccessIterator __last)
22809 {
22810 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22811 _ValueType;
22812
22813 std::make_heap(__first, __middle);
22814 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
22815 if (*__i < *__first)
22816 std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
22817 }
22818
22819
22820
22821
22822
22823
22824 template<typename _RandomAccessIterator, typename _Compare>
22825 void
22826 __heap_select(_RandomAccessIterator __first,
22827 _RandomAccessIterator __middle,
22828 _RandomAccessIterator __last, _Compare __comp)
22829 {
22830 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22831 _ValueType;
22832
22833 std::make_heap(__first, __middle, __comp);
22834 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
22835 if (__comp(*__i, *__first))
22836 std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
22837 }
22838
22839
22840
22841
22842
22843
22844 template<typename _Size>
22845 inline _Size
22846 __lg(_Size __n)
22847 {
22848 _Size __k;
22849 for (__k = 0; __n != 1; __n >>= 1)
22850 ++__k;
22851 return __k;
22852 }
22853 # 2535 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22854 template<typename _RandomAccessIterator>
22855 inline void
22856 partial_sort(_RandomAccessIterator __first,
22857 _RandomAccessIterator __middle,
22858 _RandomAccessIterator __last)
22859 {
22860 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22861 _ValueType;
22862
22863
22864
22865
22866
22867 ;
22868 ;
22869
22870 std::__heap_select(__first, __middle, __last);
22871 std::sort_heap(__first, __middle);
22872 }
22873 # 2573 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22874 template<typename _RandomAccessIterator, typename _Compare>
22875 inline void
22876 partial_sort(_RandomAccessIterator __first,
22877 _RandomAccessIterator __middle,
22878 _RandomAccessIterator __last,
22879 _Compare __comp)
22880 {
22881 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22882 _ValueType;
22883
22884
22885
22886
22887
22888
22889 ;
22890 ;
22891
22892 std::__heap_select(__first, __middle, __last, __comp);
22893 std::sort_heap(__first, __middle, __comp);
22894 }
22895 # 2612 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22896 template<typename _InputIterator, typename _RandomAccessIterator>
22897 _RandomAccessIterator
22898 partial_sort_copy(_InputIterator __first, _InputIterator __last,
22899 _RandomAccessIterator __result_first,
22900 _RandomAccessIterator __result_last)
22901 {
22902 typedef typename iterator_traits<_InputIterator>::value_type
22903 _InputValueType;
22904 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22905 _OutputValueType;
22906 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
22907 _DistanceType;
22908
22909
22910
22911
22912
22913
22914
22915
22916 ;
22917 ;
22918
22919 if (__result_first == __result_last)
22920 return __result_last;
22921 _RandomAccessIterator __result_real_last = __result_first;
22922 while(__first != __last && __result_real_last != __result_last)
22923 {
22924 *__result_real_last = *__first;
22925 ++__result_real_last;
22926 ++__first;
22927 }
22928 std::make_heap(__result_first, __result_real_last);
22929 while (__first != __last)
22930 {
22931 if (*__first < *__result_first)
22932 std::__adjust_heap(__result_first, _DistanceType(0),
22933 _DistanceType(__result_real_last
22934 - __result_first),
22935 _InputValueType(*__first));
22936 ++__first;
22937 }
22938 std::sort_heap(__result_first, __result_real_last);
22939 return __result_real_last;
22940 }
22941 # 2677 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22942 template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
22943 _RandomAccessIterator
22944 partial_sort_copy(_InputIterator __first, _InputIterator __last,
22945 _RandomAccessIterator __result_first,
22946 _RandomAccessIterator __result_last,
22947 _Compare __comp)
22948 {
22949 typedef typename iterator_traits<_InputIterator>::value_type
22950 _InputValueType;
22951 typedef typename iterator_traits<_RandomAccessIterator>::value_type
22952 _OutputValueType;
22953 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
22954 _DistanceType;
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966 ;
22967 ;
22968
22969 if (__result_first == __result_last)
22970 return __result_last;
22971 _RandomAccessIterator __result_real_last = __result_first;
22972 while(__first != __last && __result_real_last != __result_last)
22973 {
22974 *__result_real_last = *__first;
22975 ++__result_real_last;
22976 ++__first;
22977 }
22978 std::make_heap(__result_first, __result_real_last, __comp);
22979 while (__first != __last)
22980 {
22981 if (__comp(*__first, *__result_first))
22982 std::__adjust_heap(__result_first, _DistanceType(0),
22983 _DistanceType(__result_real_last
22984 - __result_first),
22985 _InputValueType(*__first),
22986 __comp);
22987 ++__first;
22988 }
22989 std::sort_heap(__result_first, __result_real_last, __comp);
22990 return __result_real_last;
22991 }
22992
22993
22994
22995
22996
22997
22998 template<typename _RandomAccessIterator, typename _Size>
22999 void
23000 __introsort_loop(_RandomAccessIterator __first,
23001 _RandomAccessIterator __last,
23002 _Size __depth_limit)
23003 {
23004 typedef typename iterator_traits<_RandomAccessIterator>::value_type
23005 _ValueType;
23006
23007 while (__last - __first > int(_S_threshold))
23008 {
23009 if (__depth_limit == 0)
23010 {
23011 std::partial_sort(__first, __last, __last);
23012 return;
23013 }
23014 --__depth_limit;
23015 _RandomAccessIterator __cut =
23016 std::__unguarded_partition(__first, __last,
23017 _ValueType(std::__median(*__first,
23018 *(__first
23019 + (__last
23020 - __first)
23021 / 2),
23022 *(__last
23023 - 1))));
23024 std::__introsort_loop(__cut, __last, __depth_limit);
23025 __last = __cut;
23026 }
23027 }
23028
23029
23030
23031
23032
23033
23034 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
23035 void
23036 __introsort_loop(_RandomAccessIterator __first,
23037 _RandomAccessIterator __last,
23038 _Size __depth_limit, _Compare __comp)
23039 {
23040 typedef typename iterator_traits<_RandomAccessIterator>::value_type
23041 _ValueType;
23042
23043 while (__last - __first > int(_S_threshold))
23044 {
23045 if (__depth_limit == 0)
23046 {
23047 std::partial_sort(__first, __last, __last, __comp);
23048 return;
23049 }
23050 --__depth_limit;
23051 _RandomAccessIterator __cut =
23052 std::__unguarded_partition(__first, __last,
23053 _ValueType(std::__median(*__first,
23054 *(__first
23055 + (__last
23056 - __first)
23057 / 2),
23058 *(__last - 1),
23059 __comp)),
23060 __comp);
23061 std::__introsort_loop(__cut, __last, __depth_limit, __comp);
23062 __last = __cut;
23063 }
23064 }
23065 # 2814 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23066 template<typename _RandomAccessIterator>
23067 inline void
23068 sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
23069 {
23070 typedef typename iterator_traits<_RandomAccessIterator>::value_type
23071 _ValueType;
23072
23073
23074
23075
23076
23077 ;
23078
23079 if (__first != __last)
23080 {
23081 std::__introsort_loop(__first, __last,
23082 std::__lg(__last - __first) * 2);
23083 std::__final_insertion_sort(__first, __last);
23084 }
23085 }
23086 # 2849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23087 template<typename _RandomAccessIterator, typename _Compare>
23088 inline void
23089 sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
23090 _Compare __comp)
23091 {
23092 typedef typename iterator_traits<_RandomAccessIterator>::value_type
23093 _ValueType;
23094
23095
23096
23097
23098
23099
23100 ;
23101
23102 if (__first != __last)
23103 {
23104 std::__introsort_loop(__first, __last,
23105 std::__lg(__last - __first) * 2, __comp);
23106 std::__final_insertion_sort(__first, __last, __comp);
23107 }
23108 }
23109 # 2882 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23110 template<typename _ForwardIterator, typename _Tp>
23111 _ForwardIterator
23112 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
23113 const _Tp& __val)
23114 {
23115 typedef typename iterator_traits<_ForwardIterator>::value_type
23116 _ValueType;
23117 typedef typename iterator_traits<_ForwardIterator>::difference_type
23118 _DistanceType;
23119
23120
23121
23122
23123 ;
23124
23125 _DistanceType __len = std::distance(__first, __last);
23126 _DistanceType __half;
23127 _ForwardIterator __middle;
23128
23129 while (__len > 0)
23130 {
23131 __half = __len >> 1;
23132 __middle = __first;
23133 std::advance(__middle, __half);
23134 if (*__middle < __val)
23135 {
23136 __first = __middle;
23137 ++__first;
23138 __len = __len - __half - 1;
23139 }
23140 else
23141 __len = __half;
23142 }
23143 return __first;
23144 }
23145 # 2932 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23146 template<typename _ForwardIterator, typename _Tp, typename _Compare>
23147 _ForwardIterator
23148 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
23149 const _Tp& __val, _Compare __comp)
23150 {
23151 typedef typename iterator_traits<_ForwardIterator>::value_type
23152 _ValueType;
23153 typedef typename iterator_traits<_ForwardIterator>::difference_type
23154 _DistanceType;
23155
23156
23157
23158
23159
23160 ;
23161
23162 _DistanceType __len = std::distance(__first, __last);
23163 _DistanceType __half;
23164 _ForwardIterator __middle;
23165
23166 while (__len > 0)
23167 {
23168 __half = __len >> 1;
23169 __middle = __first;
23170 std::advance(__middle, __half);
23171 if (__comp(*__middle, __val))
23172 {
23173 __first = __middle;
23174 ++__first;
23175 __len = __len - __half - 1;
23176 }
23177 else
23178 __len = __half;
23179 }
23180 return __first;
23181 }
23182 # 2979 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23183 template<typename _ForwardIterator, typename _Tp>
23184 _ForwardIterator
23185 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
23186 const _Tp& __val)
23187 {
23188 typedef typename iterator_traits<_ForwardIterator>::value_type
23189 _ValueType;
23190 typedef typename iterator_traits<_ForwardIterator>::difference_type
23191 _DistanceType;
23192
23193
23194
23195
23196 ;
23197
23198 _DistanceType __len = std::distance(__first, __last);
23199 _DistanceType __half;
23200 _ForwardIterator __middle;
23201
23202 while (__len > 0)
23203 {
23204 __half = __len >> 1;
23205 __middle = __first;
23206 std::advance(__middle, __half);
23207 if (__val < *__middle)
23208 __len = __half;
23209 else
23210 {
23211 __first = __middle;
23212 ++__first;
23213 __len = __len - __half - 1;
23214 }
23215 }
23216 return __first;
23217 }
23218 # 3029 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23219 template<typename _ForwardIterator, typename _Tp, typename _Compare>
23220 _ForwardIterator
23221 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
23222 const _Tp& __val, _Compare __comp)
23223 {
23224 typedef typename iterator_traits<_ForwardIterator>::value_type
23225 _ValueType;
23226 typedef typename iterator_traits<_ForwardIterator>::difference_type
23227 _DistanceType;
23228
23229
23230
23231
23232
23233 ;
23234
23235 _DistanceType __len = std::distance(__first, __last);
23236 _DistanceType __half;
23237 _ForwardIterator __middle;
23238
23239 while (__len > 0)
23240 {
23241 __half = __len >> 1;
23242 __middle = __first;
23243 std::advance(__middle, __half);
23244 if (__comp(__val, *__middle))
23245 __len = __half;
23246 else
23247 {
23248 __first = __middle;
23249 ++__first;
23250 __len = __len - __half - 1;
23251 }
23252 }
23253 return __first;
23254 }
23255
23256
23257
23258
23259
23260
23261 template<typename _BidirectionalIterator, typename _Distance>
23262 void
23263 __merge_without_buffer(_BidirectionalIterator __first,
23264 _BidirectionalIterator __middle,
23265 _BidirectionalIterator __last,
23266 _Distance __len1, _Distance __len2)
23267 {
23268 if (__len1 == 0 || __len2 == 0)
23269 return;
23270 if (__len1 + __len2 == 2)
23271 {
23272 if (*__middle < *__first)
23273 std::iter_swap(__first, __middle);
23274 return;
23275 }
23276 _BidirectionalIterator __first_cut = __first;
23277 _BidirectionalIterator __second_cut = __middle;
23278 _Distance __len11 = 0;
23279 _Distance __len22 = 0;
23280 if (__len1 > __len2)
23281 {
23282 __len11 = __len1 / 2;
23283 std::advance(__first_cut, __len11);
23284 __second_cut = std::lower_bound(__middle, __last, *__first_cut);
23285 __len22 = std::distance(__middle, __second_cut);
23286 }
23287 else
23288 {
23289 __len22 = __len2 / 2;
23290 std::advance(__second_cut, __len22);
23291 __first_cut = std::upper_bound(__first, __middle, *__second_cut);
23292 __len11 = std::distance(__first, __first_cut);
23293 }
23294 std::rotate(__first_cut, __middle, __second_cut);
23295 _BidirectionalIterator __new_middle = __first_cut;
23296 std::advance(__new_middle, std::distance(__middle, __second_cut));
23297 std::__merge_without_buffer(__first, __first_cut, __new_middle,
23298 __len11, __len22);
23299 std::__merge_without_buffer(__new_middle, __second_cut, __last,
23300 __len1 - __len11, __len2 - __len22);
23301 }
23302
23303
23304
23305
23306
23307
23308 template<typename _BidirectionalIterator, typename _Distance,
23309 typename _Compare>
23310 void
23311 __merge_without_buffer(_BidirectionalIterator __first,
23312 _BidirectionalIterator __middle,
23313 _BidirectionalIterator __last,
23314 _Distance __len1, _Distance __len2,
23315 _Compare __comp)
23316 {
23317 if (__len1 == 0 || __len2 == 0)
23318 return;
23319 if (__len1 + __len2 == 2)
23320 {
23321 if (__comp(*__middle, *__first))
23322 std::iter_swap(__first, __middle);
23323 return;
23324 }
23325 _BidirectionalIterator __first_cut = __first;
23326 _BidirectionalIterator __second_cut = __middle;
23327 _Distance __len11 = 0;
23328 _Distance __len22 = 0;
23329 if (__len1 > __len2)
23330 {
23331 __len11 = __len1 / 2;
23332 std::advance(__first_cut, __len11);
23333 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
23334 __comp);
23335 __len22 = std::distance(__middle, __second_cut);
23336 }
23337 else
23338 {
23339 __len22 = __len2 / 2;
23340 std::advance(__second_cut, __len22);
23341 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
23342 __comp);
23343 __len11 = std::distance(__first, __first_cut);
23344 }
23345 std::rotate(__first_cut, __middle, __second_cut);
23346 _BidirectionalIterator __new_middle = __first_cut;
23347 std::advance(__new_middle, std::distance(__middle, __second_cut));
23348 std::__merge_without_buffer(__first, __first_cut, __new_middle,
23349 __len11, __len22, __comp);
23350 std::__merge_without_buffer(__new_middle, __second_cut, __last,
23351 __len1 - __len11, __len2 - __len22, __comp);
23352 }
23353
23354
23355
23356
23357
23358
23359 template<typename _RandomAccessIterator>
23360 void
23361 __inplace_stable_sort(_RandomAccessIterator __first,
23362 _RandomAccessIterator __last)
23363 {
23364 if (__last - __first < 15)
23365 {
23366 std::__insertion_sort(__first, __last);
23367 return;
23368 }
23369 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
23370 std::__inplace_stable_sort(__first, __middle);
23371 std::__inplace_stable_sort(__middle, __last);
23372 std::__merge_without_buffer(__first, __middle, __last,
23373 __middle - __first,
23374 __last - __middle);
23375 }
23376
23377
23378
23379
23380
23381
23382 template<typename _RandomAccessIterator, typename _Compare>
23383 void
23384 __inplace_stable_sort(_RandomAccessIterator __first,
23385 _RandomAccessIterator __last, _Compare __comp)
23386 {
23387 if (__last - __first < 15)
23388 {
23389 std::__insertion_sort(__first, __last, __comp);
23390 return;
23391 }
23392 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
23393 std::__inplace_stable_sort(__first, __middle, __comp);
23394 std::__inplace_stable_sort(__middle, __last, __comp);
23395 std::__merge_without_buffer(__first, __middle, __last,
23396 __middle - __first,
23397 __last - __middle,
23398 __comp);
23399 }
23400 # 3227 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23401 template<typename _InputIterator1, typename _InputIterator2,
23402 typename _OutputIterator>
23403 _OutputIterator
23404 merge(_InputIterator1 __first1, _InputIterator1 __last1,
23405 _InputIterator2 __first2, _InputIterator2 __last2,
23406 _OutputIterator __result)
23407 {
23408 typedef typename iterator_traits<_InputIterator1>::value_type
23409 _ValueType1;
23410 typedef typename iterator_traits<_InputIterator2>::value_type
23411 _ValueType2;
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421 ;
23422 ;
23423
23424 while (__first1 != __last1 && __first2 != __last2)
23425 {
23426 if (*__first2 < *__first1)
23427 {
23428 *__result = *__first2;
23429 ++__first2;
23430 }
23431 else
23432 {
23433 *__result = *__first1;
23434 ++__first1;
23435 }
23436 ++__result;
23437 }
23438 return std::copy(__first2, __last2, std::copy(__first1, __last1,
23439 __result));
23440 }
23441 # 3288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23442 template<typename _InputIterator1, typename _InputIterator2,
23443 typename _OutputIterator, typename _Compare>
23444 _OutputIterator
23445 merge(_InputIterator1 __first1, _InputIterator1 __last1,
23446 _InputIterator2 __first2, _InputIterator2 __last2,
23447 _OutputIterator __result, _Compare __comp)
23448 {
23449 typedef typename iterator_traits<_InputIterator1>::value_type
23450 _ValueType1;
23451 typedef typename iterator_traits<_InputIterator2>::value_type
23452 _ValueType2;
23453
23454
23455
23456
23457
23458
23459
23460
23461
23462
23463 ;
23464 ;
23465
23466 while (__first1 != __last1 && __first2 != __last2)
23467 {
23468 if (__comp(*__first2, *__first1))
23469 {
23470 *__result = *__first2;
23471 ++__first2;
23472 }
23473 else
23474 {
23475 *__result = *__first1;
23476 ++__first1;
23477 }
23478 ++__result;
23479 }
23480 return std::copy(__first2, __last2, std::copy(__first1, __last1,
23481 __result));
23482 }
23483
23484 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
23485 typename _Distance>
23486 void
23487 __merge_sort_loop(_RandomAccessIterator1 __first,
23488 _RandomAccessIterator1 __last,
23489 _RandomAccessIterator2 __result,
23490 _Distance __step_size)
23491 {
23492 const _Distance __two_step = 2 * __step_size;
23493
23494 while (__last - __first >= __two_step)
23495 {
23496 __result = std::merge(__first, __first + __step_size,
23497 __first + __step_size, __first + __two_step,
23498 __result);
23499 __first += __two_step;
23500 }
23501
23502 __step_size = std::min(_Distance(__last - __first), __step_size);
23503 std::merge(__first, __first + __step_size, __first + __step_size, __last,
23504 __result);
23505 }
23506
23507 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
23508 typename _Distance, typename _Compare>
23509 void
23510 __merge_sort_loop(_RandomAccessIterator1 __first,
23511 _RandomAccessIterator1 __last,
23512 _RandomAccessIterator2 __result, _Distance __step_size,
23513 _Compare __comp)
23514 {
23515 const _Distance __two_step = 2 * __step_size;
23516
23517 while (__last - __first >= __two_step)
23518 {
23519 __result = std::merge(__first, __first + __step_size,
23520 __first + __step_size, __first + __two_step,
23521 __result,
23522 __comp);
23523 __first += __two_step;
23524 }
23525 __step_size = std::min(_Distance(__last - __first), __step_size);
23526
23527 std::merge(__first, __first + __step_size,
23528 __first + __step_size, __last,
23529 __result,
23530 __comp);
23531 }
23532
23533 enum { _S_chunk_size = 7 };
23534
23535 template<typename _RandomAccessIterator, typename _Distance>
23536 void
23537 __chunk_insertion_sort(_RandomAccessIterator __first,
23538 _RandomAccessIterator __last,
23539 _Distance __chunk_size)
23540 {
23541 while (__last - __first >= __chunk_size)
23542 {
23543 std::__insertion_sort(__first, __first + __chunk_size);
23544 __first += __chunk_size;
23545 }
23546 std::__insertion_sort(__first, __last);
23547 }
23548
23549 template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
23550 void
23551 __chunk_insertion_sort(_RandomAccessIterator __first,
23552 _RandomAccessIterator __last,
23553 _Distance __chunk_size, _Compare __comp)
23554 {
23555 while (__last - __first >= __chunk_size)
23556 {
23557 std::__insertion_sort(__first, __first + __chunk_size, __comp);
23558 __first += __chunk_size;
23559 }
23560 std::__insertion_sort(__first, __last, __comp);
23561 }
23562
23563 template<typename _RandomAccessIterator, typename _Pointer>
23564 void
23565 __merge_sort_with_buffer(_RandomAccessIterator __first,
23566 _RandomAccessIterator __last,
23567 _Pointer __buffer)
23568 {
23569 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
23570 _Distance;
23571
23572 const _Distance __len = __last - __first;
23573 const _Pointer __buffer_last = __buffer + __len;
23574
23575 _Distance __step_size = _S_chunk_size;
23576 std::__chunk_insertion_sort(__first, __last, __step_size);
23577
23578 while (__step_size < __len)
23579 {
23580 std::__merge_sort_loop(__first, __last, __buffer, __step_size);
23581 __step_size *= 2;
23582 std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
23583 __step_size *= 2;
23584 }
23585 }
23586
23587 template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
23588 void
23589 __merge_sort_with_buffer(_RandomAccessIterator __first,
23590 _RandomAccessIterator __last,
23591 _Pointer __buffer, _Compare __comp)
23592 {
23593 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
23594 _Distance;
23595
23596 const _Distance __len = __last - __first;
23597 const _Pointer __buffer_last = __buffer + __len;
23598
23599 _Distance __step_size = _S_chunk_size;
23600 std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
23601
23602 while (__step_size < __len)
23603 {
23604 std::__merge_sort_loop(__first, __last, __buffer,
23605 __step_size, __comp);
23606 __step_size *= 2;
23607 std::__merge_sort_loop(__buffer, __buffer_last, __first,
23608 __step_size, __comp);
23609 __step_size *= 2;
23610 }
23611 }
23612
23613
23614
23615
23616
23617
23618 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
23619 typename _BidirectionalIterator3>
23620 _BidirectionalIterator3
23621 __merge_backward(_BidirectionalIterator1 __first1,
23622 _BidirectionalIterator1 __last1,
23623 _BidirectionalIterator2 __first2,
23624 _BidirectionalIterator2 __last2,
23625 _BidirectionalIterator3 __result)
23626 {
23627 if (__first1 == __last1)
23628 return std::copy_backward(__first2, __last2, __result);
23629 if (__first2 == __last2)
23630 return std::copy_backward(__first1, __last1, __result);
23631 --__last1;
23632 --__last2;
23633 while (true)
23634 {
23635 if (*__last2 < *__last1)
23636 {
23637 *--__result = *__last1;
23638 if (__first1 == __last1)
23639 return std::copy_backward(__first2, ++__last2, __result);
23640 --__last1;
23641 }
23642 else
23643 {
23644 *--__result = *__last2;
23645 if (__first2 == __last2)
23646 return std::copy_backward(__first1, ++__last1, __result);
23647 --__last2;
23648 }
23649 }
23650 }
23651
23652
23653
23654
23655
23656
23657 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
23658 typename _BidirectionalIterator3, typename _Compare>
23659 _BidirectionalIterator3
23660 __merge_backward(_BidirectionalIterator1 __first1,
23661 _BidirectionalIterator1 __last1,
23662 _BidirectionalIterator2 __first2,
23663 _BidirectionalIterator2 __last2,
23664 _BidirectionalIterator3 __result,
23665 _Compare __comp)
23666 {
23667 if (__first1 == __last1)
23668 return std::copy_backward(__first2, __last2, __result);
23669 if (__first2 == __last2)
23670 return std::copy_backward(__first1, __last1, __result);
23671 --__last1;
23672 --__last2;
23673 while (true)
23674 {
23675 if (__comp(*__last2, *__last1))
23676 {
23677 *--__result = *__last1;
23678 if (__first1 == __last1)
23679 return std::copy_backward(__first2, ++__last2, __result);
23680 --__last1;
23681 }
23682 else
23683 {
23684 *--__result = *__last2;
23685 if (__first2 == __last2)
23686 return std::copy_backward(__first1, ++__last1, __result);
23687 --__last2;
23688 }
23689 }
23690 }
23691
23692
23693
23694
23695
23696
23697 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
23698 typename _Distance>
23699 _BidirectionalIterator1
23700 __rotate_adaptive(_BidirectionalIterator1 __first,
23701 _BidirectionalIterator1 __middle,
23702 _BidirectionalIterator1 __last,
23703 _Distance __len1, _Distance __len2,
23704 _BidirectionalIterator2 __buffer,
23705 _Distance __buffer_size)
23706 {
23707 _BidirectionalIterator2 __buffer_end;
23708 if (__len1 > __len2 && __len2 <= __buffer_size)
23709 {
23710 __buffer_end = std::copy(__middle, __last, __buffer);
23711 std::copy_backward(__first, __middle, __last);
23712 return std::copy(__buffer, __buffer_end, __first);
23713 }
23714 else if (__len1 <= __buffer_size)
23715 {
23716 __buffer_end = std::copy(__first, __middle, __buffer);
23717 std::copy(__middle, __last, __first);
23718 return std::copy_backward(__buffer, __buffer_end, __last);
23719 }
23720 else
23721 {
23722 std::rotate(__first, __middle, __last);
23723 std::advance(__first, std::distance(__middle, __last));
23724 return __first;
23725 }
23726 }
23727
23728
23729
23730
23731
23732
23733 template<typename _BidirectionalIterator, typename _Distance,
23734 typename _Pointer>
23735 void
23736 __merge_adaptive(_BidirectionalIterator __first,
23737 _BidirectionalIterator __middle,
23738 _BidirectionalIterator __last,
23739 _Distance __len1, _Distance __len2,
23740 _Pointer __buffer, _Distance __buffer_size)
23741 {
23742 if (__len1 <= __len2 && __len1 <= __buffer_size)
23743 {
23744 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
23745 std::merge(__buffer, __buffer_end, __middle, __last, __first);
23746 }
23747 else if (__len2 <= __buffer_size)
23748 {
23749 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
23750 std::__merge_backward(__first, __middle, __buffer,
23751 __buffer_end, __last);
23752 }
23753 else
23754 {
23755 _BidirectionalIterator __first_cut = __first;
23756 _BidirectionalIterator __second_cut = __middle;
23757 _Distance __len11 = 0;
23758 _Distance __len22 = 0;
23759 if (__len1 > __len2)
23760 {
23761 __len11 = __len1 / 2;
23762 std::advance(__first_cut, __len11);
23763 __second_cut = std::lower_bound(__middle, __last,
23764 *__first_cut);
23765 __len22 = std::distance(__middle, __second_cut);
23766 }
23767 else
23768 {
23769 __len22 = __len2 / 2;
23770 std::advance(__second_cut, __len22);
23771 __first_cut = std::upper_bound(__first, __middle,
23772 *__second_cut);
23773 __len11 = std::distance(__first, __first_cut);
23774 }
23775 _BidirectionalIterator __new_middle =
23776 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
23777 __len1 - __len11, __len22, __buffer,
23778 __buffer_size);
23779 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
23780 __len22, __buffer, __buffer_size);
23781 std::__merge_adaptive(__new_middle, __second_cut, __last,
23782 __len1 - __len11,
23783 __len2 - __len22, __buffer, __buffer_size);
23784 }
23785 }
23786
23787
23788
23789
23790
23791
23792 template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
23793 typename _Compare>
23794 void
23795 __merge_adaptive(_BidirectionalIterator __first,
23796 _BidirectionalIterator __middle,
23797 _BidirectionalIterator __last,
23798 _Distance __len1, _Distance __len2,
23799 _Pointer __buffer, _Distance __buffer_size,
23800 _Compare __comp)
23801 {
23802 if (__len1 <= __len2 && __len1 <= __buffer_size)
23803 {
23804 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
23805 std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
23806 }
23807 else if (__len2 <= __buffer_size)
23808 {
23809 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
23810 std::__merge_backward(__first, __middle, __buffer, __buffer_end,
23811 __last, __comp);
23812 }
23813 else
23814 {
23815 _BidirectionalIterator __first_cut = __first;
23816 _BidirectionalIterator __second_cut = __middle;
23817 _Distance __len11 = 0;
23818 _Distance __len22 = 0;
23819 if (__len1 > __len2)
23820 {
23821 __len11 = __len1 / 2;
23822 std::advance(__first_cut, __len11);
23823 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
23824 __comp);
23825 __len22 = std::distance(__middle, __second_cut);
23826 }
23827 else
23828 {
23829 __len22 = __len2 / 2;
23830 std::advance(__second_cut, __len22);
23831 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
23832 __comp);
23833 __len11 = std::distance(__first, __first_cut);
23834 }
23835 _BidirectionalIterator __new_middle =
23836 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
23837 __len1 - __len11, __len22, __buffer,
23838 __buffer_size);
23839 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
23840 __len22, __buffer, __buffer_size, __comp);
23841 std::__merge_adaptive(__new_middle, __second_cut, __last,
23842 __len1 - __len11,
23843 __len2 - __len22, __buffer,
23844 __buffer_size, __comp);
23845 }
23846 }
23847 # 3711 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23848 template<typename _BidirectionalIterator>
23849 void
23850 inplace_merge(_BidirectionalIterator __first,
23851 _BidirectionalIterator __middle,
23852 _BidirectionalIterator __last)
23853 {
23854 typedef typename iterator_traits<_BidirectionalIterator>::value_type
23855 _ValueType;
23856 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
23857 _DistanceType;
23858
23859
23860
23861
23862
23863 ;
23864 ;
23865
23866 if (__first == __middle || __middle == __last)
23867 return;
23868
23869 _DistanceType __len1 = std::distance(__first, __middle);
23870 _DistanceType __len2 = std::distance(__middle, __last);
23871
23872 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
23873 __last);
23874 if (__buf.begin() == 0)
23875 std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
23876 else
23877 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
23878 __buf.begin(), _DistanceType(__buf.size()));
23879 }
23880 # 3765 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23881 template<typename _BidirectionalIterator, typename _Compare>
23882 void
23883 inplace_merge(_BidirectionalIterator __first,
23884 _BidirectionalIterator __middle,
23885 _BidirectionalIterator __last,
23886 _Compare __comp)
23887 {
23888 typedef typename iterator_traits<_BidirectionalIterator>::value_type
23889 _ValueType;
23890 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
23891 _DistanceType;
23892
23893
23894
23895
23896
23897
23898 ;
23899 ;
23900
23901 if (__first == __middle || __middle == __last)
23902 return;
23903
23904 const _DistanceType __len1 = std::distance(__first, __middle);
23905 const _DistanceType __len2 = std::distance(__middle, __last);
23906
23907 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
23908 __last);
23909 if (__buf.begin() == 0)
23910 std::__merge_without_buffer(__first, __middle, __last, __len1,
23911 __len2, __comp);
23912 else
23913 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
23914 __buf.begin(), _DistanceType(__buf.size()),
23915 __comp);
23916 }
23917
23918 template<typename _RandomAccessIterator, typename _Pointer,
23919 typename _Distance>
23920 void
23921 __stable_sort_adaptive(_RandomAccessIterator __first,
23922 _RandomAccessIterator __last,
23923 _Pointer __buffer, _Distance __buffer_size)
23924 {
23925 const _Distance __len = (__last - __first + 1) / 2;
23926 const _RandomAccessIterator __middle = __first + __len;
23927 if (__len > __buffer_size)
23928 {
23929 std::__stable_sort_adaptive(__first, __middle,
23930 __buffer, __buffer_size);
23931 std::__stable_sort_adaptive(__middle, __last,
23932 __buffer, __buffer_size);
23933 }
23934 else
23935 {
23936 std::__merge_sort_with_buffer(__first, __middle, __buffer);
23937 std::__merge_sort_with_buffer(__middle, __last, __buffer);
23938 }
23939 std::__merge_adaptive(__first, __middle, __last,
23940 _Distance(__middle - __first),
23941 _Distance(__last - __middle),
23942 __buffer, __buffer_size);
23943 }
23944
23945 template<typename _RandomAccessIterator, typename _Pointer,
23946 typename _Distance, typename _Compare>
23947 void
23948 __stable_sort_adaptive(_RandomAccessIterator __first,
23949 _RandomAccessIterator __last,
23950 _Pointer __buffer, _Distance __buffer_size,
23951 _Compare __comp)
23952 {
23953 const _Distance __len = (__last - __first + 1) / 2;
23954 const _RandomAccessIterator __middle = __first + __len;
23955 if (__len > __buffer_size)
23956 {
23957 std::__stable_sort_adaptive(__first, __middle, __buffer,
23958 __buffer_size, __comp);
23959 std::__stable_sort_adaptive(__middle, __last, __buffer,
23960 __buffer_size, __comp);
23961 }
23962 else
23963 {
23964 std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
23965 std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
23966 }
23967 std::__merge_adaptive(__first, __middle, __last,
23968 _Distance(__middle - __first),
23969 _Distance(__last - __middle),
23970 __buffer, __buffer_size,
23971 __comp);
23972 }
23973 # 3874 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23974 template<typename _RandomAccessIterator>
23975 inline void
23976 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
23977 {
23978 typedef typename iterator_traits<_RandomAccessIterator>::value_type
23979 _ValueType;
23980 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
23981 _DistanceType;
23982
23983
23984
23985
23986
23987 ;
23988
23989 _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first,
23990 __last);
23991 if (__buf.begin() == 0)
23992 std::__inplace_stable_sort(__first, __last);
23993 else
23994 std::__stable_sort_adaptive(__first, __last, __buf.begin(),
23995 _DistanceType(__buf.size()));
23996 }
23997 # 3915 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23998 template<typename _RandomAccessIterator, typename _Compare>
23999 inline void
24000 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
24001 _Compare __comp)
24002 {
24003 typedef typename iterator_traits<_RandomAccessIterator>::value_type
24004 _ValueType;
24005 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
24006 _DistanceType;
24007
24008
24009
24010
24011
24012
24013
24014 ;
24015
24016 _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first,
24017 __last);
24018 if (__buf.begin() == 0)
24019 std::__inplace_stable_sort(__first, __last, __comp);
24020 else
24021 std::__stable_sort_adaptive(__first, __last, __buf.begin(),
24022 _DistanceType(__buf.size()), __comp);
24023 }
24024
24025
24026 template<typename _RandomAccessIterator, typename _Size>
24027 void
24028 __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24029 _RandomAccessIterator __last, _Size __depth_limit)
24030 {
24031 typedef typename iterator_traits<_RandomAccessIterator>::value_type
24032 _ValueType;
24033
24034 while (__last - __first > 3)
24035 {
24036 if (__depth_limit == 0)
24037 {
24038 std::__heap_select(__first, __nth + 1, __last);
24039
24040 std::iter_swap(__first, __nth);
24041 return;
24042 }
24043 --__depth_limit;
24044 _RandomAccessIterator __cut =
24045 std::__unguarded_partition(__first, __last,
24046 _ValueType(std::__median(*__first,
24047 *(__first
24048 + (__last
24049 - __first)
24050 / 2),
24051 *(__last
24052 - 1))));
24053 if (__cut <= __nth)
24054 __first = __cut;
24055 else
24056 __last = __cut;
24057 }
24058 std::__insertion_sort(__first, __last);
24059 }
24060
24061 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
24062 void
24063 __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24064 _RandomAccessIterator __last, _Size __depth_limit,
24065 _Compare __comp)
24066 {
24067 typedef typename iterator_traits<_RandomAccessIterator>::value_type
24068 _ValueType;
24069
24070 while (__last - __first > 3)
24071 {
24072 if (__depth_limit == 0)
24073 {
24074 std::__heap_select(__first, __nth + 1, __last, __comp);
24075
24076 std::iter_swap(__first, __nth);
24077 return;
24078 }
24079 --__depth_limit;
24080 _RandomAccessIterator __cut =
24081 std::__unguarded_partition(__first, __last,
24082 _ValueType(std::__median(*__first,
24083 *(__first
24084 + (__last
24085 - __first)
24086 / 2),
24087 *(__last - 1),
24088 __comp)),
24089 __comp);
24090 if (__cut <= __nth)
24091 __first = __cut;
24092 else
24093 __last = __cut;
24094 }
24095 std::__insertion_sort(__first, __last, __comp);
24096 }
24097 # 4030 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24098 template<typename _RandomAccessIterator>
24099 inline void
24100 nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24101 _RandomAccessIterator __last)
24102 {
24103 typedef typename iterator_traits<_RandomAccessIterator>::value_type
24104 _ValueType;
24105
24106
24107
24108
24109
24110 ;
24111 ;
24112
24113 if (__first == __last || __nth == __last)
24114 return;
24115
24116 std::__introselect(__first, __nth, __last,
24117 std::__lg(__last - __first) * 2);
24118 }
24119 # 4068 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24120 template<typename _RandomAccessIterator, typename _Compare>
24121 inline void
24122 nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24123 _RandomAccessIterator __last, _Compare __comp)
24124 {
24125 typedef typename iterator_traits<_RandomAccessIterator>::value_type
24126 _ValueType;
24127
24128
24129
24130
24131
24132
24133 ;
24134 ;
24135
24136 if (__first == __last || __nth == __last)
24137 return;
24138
24139 std::__introselect(__first, __nth, __last,
24140 std::__lg(__last - __first) * 2, __comp);
24141 }
24142 # 4107 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24143 template<typename _ForwardIterator, typename _Tp>
24144 pair<_ForwardIterator, _ForwardIterator>
24145 equal_range(_ForwardIterator __first, _ForwardIterator __last,
24146 const _Tp& __val)
24147 {
24148 typedef typename iterator_traits<_ForwardIterator>::value_type
24149 _ValueType;
24150 typedef typename iterator_traits<_ForwardIterator>::difference_type
24151 _DistanceType;
24152
24153
24154
24155
24156
24157 ;
24158
24159 _DistanceType __len = std::distance(__first, __last);
24160 _DistanceType __half;
24161 _ForwardIterator __middle, __left, __right;
24162
24163 while (__len > 0)
24164 {
24165 __half = __len >> 1;
24166 __middle = __first;
24167 std::advance(__middle, __half);
24168 if (*__middle < __val)
24169 {
24170 __first = __middle;
24171 ++__first;
24172 __len = __len - __half - 1;
24173 }
24174 else if (__val < *__middle)
24175 __len = __half;
24176 else
24177 {
24178 __left = std::lower_bound(__first, __middle, __val);
24179 std::advance(__first, __len);
24180 __right = std::upper_bound(++__middle, __first, __val);
24181 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
24182 }
24183 }
24184 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
24185 }
24186 # 4168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24187 template<typename _ForwardIterator, typename _Tp, typename _Compare>
24188 pair<_ForwardIterator, _ForwardIterator>
24189 equal_range(_ForwardIterator __first, _ForwardIterator __last,
24190 const _Tp& __val,
24191 _Compare __comp)
24192 {
24193 typedef typename iterator_traits<_ForwardIterator>::value_type
24194 _ValueType;
24195 typedef typename iterator_traits<_ForwardIterator>::difference_type
24196 _DistanceType;
24197
24198
24199
24200
24201
24202
24203
24204 ;
24205
24206 _DistanceType __len = std::distance(__first, __last);
24207 _DistanceType __half;
24208 _ForwardIterator __middle, __left, __right;
24209
24210 while (__len > 0)
24211 {
24212 __half = __len >> 1;
24213 __middle = __first;
24214 std::advance(__middle, __half);
24215 if (__comp(*__middle, __val))
24216 {
24217 __first = __middle;
24218 ++__first;
24219 __len = __len - __half - 1;
24220 }
24221 else if (__comp(__val, *__middle))
24222 __len = __half;
24223 else
24224 {
24225 __left = std::lower_bound(__first, __middle, __val, __comp);
24226 std::advance(__first, __len);
24227 __right = std::upper_bound(++__middle, __first, __val, __comp);
24228 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
24229 }
24230 }
24231 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
24232 }
24233 # 4226 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24234 template<typename _ForwardIterator, typename _Tp>
24235 bool
24236 binary_search(_ForwardIterator __first, _ForwardIterator __last,
24237 const _Tp& __val)
24238 {
24239 typedef typename iterator_traits<_ForwardIterator>::value_type
24240 _ValueType;
24241
24242
24243
24244
24245 ;
24246
24247 _ForwardIterator __i = std::lower_bound(__first, __last, __val);
24248 return __i != __last && !(__val < *__i);
24249 }
24250 # 4258 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24251 template<typename _ForwardIterator, typename _Tp, typename _Compare>
24252 bool
24253 binary_search(_ForwardIterator __first, _ForwardIterator __last,
24254 const _Tp& __val, _Compare __comp)
24255 {
24256 typedef typename iterator_traits<_ForwardIterator>::value_type
24257 _ValueType;
24258
24259
24260
24261
24262
24263 ;
24264
24265 _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
24266 return __i != __last && !__comp(__val, *__i);
24267 }
24268 # 4297 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24269 template<typename _InputIterator1, typename _InputIterator2>
24270 bool
24271 includes(_InputIterator1 __first1, _InputIterator1 __last1,
24272 _InputIterator2 __first2, _InputIterator2 __last2)
24273 {
24274 typedef typename iterator_traits<_InputIterator1>::value_type
24275 _ValueType1;
24276 typedef typename iterator_traits<_InputIterator2>::value_type
24277 _ValueType2;
24278
24279
24280
24281
24282
24283
24284 ;
24285 ;
24286
24287 while (__first1 != __last1 && __first2 != __last2)
24288 if (*__first2 < *__first1)
24289 return false;
24290 else if(*__first1 < *__first2)
24291 ++__first1;
24292 else
24293 ++__first1, ++__first2;
24294
24295 return __first2 == __last2;
24296 }
24297 # 4345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24298 template<typename _InputIterator1, typename _InputIterator2,
24299 typename _Compare>
24300 bool
24301 includes(_InputIterator1 __first1, _InputIterator1 __last1,
24302 _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
24303 {
24304 typedef typename iterator_traits<_InputIterator1>::value_type
24305 _ValueType1;
24306 typedef typename iterator_traits<_InputIterator2>::value_type
24307 _ValueType2;
24308
24309
24310
24311
24312
24313
24314
24315
24316 ;
24317 ;
24318
24319 while (__first1 != __last1 && __first2 != __last2)
24320 if (__comp(*__first2, *__first1))
24321 return false;
24322 else if(__comp(*__first1, *__first2))
24323 ++__first1;
24324 else
24325 ++__first1, ++__first2;
24326
24327 return __first2 == __last2;
24328 }
24329 # 4394 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24330 template<typename _InputIterator1, typename _InputIterator2,
24331 typename _OutputIterator>
24332 _OutputIterator
24333 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
24334 _InputIterator2 __first2, _InputIterator2 __last2,
24335 _OutputIterator __result)
24336 {
24337 typedef typename iterator_traits<_InputIterator1>::value_type
24338 _ValueType1;
24339 typedef typename iterator_traits<_InputIterator2>::value_type
24340 _ValueType2;
24341
24342
24343
24344
24345
24346
24347
24348
24349
24350
24351 ;
24352 ;
24353
24354 while (__first1 != __last1 && __first2 != __last2)
24355 {
24356 if (*__first1 < *__first2)
24357 {
24358 *__result = *__first1;
24359 ++__first1;
24360 }
24361 else if (*__first2 < *__first1)
24362 {
24363 *__result = *__first2;
24364 ++__first2;
24365 }
24366 else
24367 {
24368 *__result = *__first1;
24369 ++__first1;
24370 ++__first2;
24371 }
24372 ++__result;
24373 }
24374 return std::copy(__first2, __last2, std::copy(__first1, __last1,
24375 __result));
24376 }
24377 # 4460 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24378 template<typename _InputIterator1, typename _InputIterator2,
24379 typename _OutputIterator, typename _Compare>
24380 _OutputIterator
24381 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
24382 _InputIterator2 __first2, _InputIterator2 __last2,
24383 _OutputIterator __result, _Compare __comp)
24384 {
24385 typedef typename iterator_traits<_InputIterator1>::value_type
24386 _ValueType1;
24387 typedef typename iterator_traits<_InputIterator2>::value_type
24388 _ValueType2;
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398
24399
24400
24401 ;
24402 ;
24403
24404 while (__first1 != __last1 && __first2 != __last2)
24405 {
24406 if (__comp(*__first1, *__first2))
24407 {
24408 *__result = *__first1;
24409 ++__first1;
24410 }
24411 else if (__comp(*__first2, *__first1))
24412 {
24413 *__result = *__first2;
24414 ++__first2;
24415 }
24416 else
24417 {
24418 *__result = *__first1;
24419 ++__first1;
24420 ++__first2;
24421 }
24422 ++__result;
24423 }
24424 return std::copy(__first2, __last2, std::copy(__first1, __last1,
24425 __result));
24426 }
24427 # 4526 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24428 template<typename _InputIterator1, typename _InputIterator2,
24429 typename _OutputIterator>
24430 _OutputIterator
24431 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
24432 _InputIterator2 __first2, _InputIterator2 __last2,
24433 _OutputIterator __result)
24434 {
24435 typedef typename iterator_traits<_InputIterator1>::value_type
24436 _ValueType1;
24437 typedef typename iterator_traits<_InputIterator2>::value_type
24438 _ValueType2;
24439
24440
24441
24442
24443
24444
24445
24446
24447 ;
24448 ;
24449
24450 while (__first1 != __last1 && __first2 != __last2)
24451 if (*__first1 < *__first2)
24452 ++__first1;
24453 else if (*__first2 < *__first1)
24454 ++__first2;
24455 else
24456 {
24457 *__result = *__first1;
24458 ++__first1;
24459 ++__first2;
24460 ++__result;
24461 }
24462 return __result;
24463 }
24464 # 4582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24465 template<typename _InputIterator1, typename _InputIterator2,
24466 typename _OutputIterator, typename _Compare>
24467 _OutputIterator
24468 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
24469 _InputIterator2 __first2, _InputIterator2 __last2,
24470 _OutputIterator __result, _Compare __comp)
24471 {
24472 typedef typename iterator_traits<_InputIterator1>::value_type
24473 _ValueType1;
24474 typedef typename iterator_traits<_InputIterator2>::value_type
24475 _ValueType2;
24476
24477
24478
24479
24480
24481
24482
24483
24484
24485
24486 ;
24487 ;
24488
24489 while (__first1 != __last1 && __first2 != __last2)
24490 if (__comp(*__first1, *__first2))
24491 ++__first1;
24492 else if (__comp(*__first2, *__first1))
24493 ++__first2;
24494 else
24495 {
24496 *__result = *__first1;
24497 ++__first1;
24498 ++__first2;
24499 ++__result;
24500 }
24501 return __result;
24502 }
24503 # 4639 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24504 template<typename _InputIterator1, typename _InputIterator2,
24505 typename _OutputIterator>
24506 _OutputIterator
24507 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24508 _InputIterator2 __first2, _InputIterator2 __last2,
24509 _OutputIterator __result)
24510 {
24511 typedef typename iterator_traits<_InputIterator1>::value_type
24512 _ValueType1;
24513 typedef typename iterator_traits<_InputIterator2>::value_type
24514 _ValueType2;
24515
24516
24517
24518
24519
24520
24521
24522
24523 ;
24524 ;
24525
24526 while (__first1 != __last1 && __first2 != __last2)
24527 if (*__first1 < *__first2)
24528 {
24529 *__result = *__first1;
24530 ++__first1;
24531 ++__result;
24532 }
24533 else if (*__first2 < *__first1)
24534 ++__first2;
24535 else
24536 {
24537 ++__first1;
24538 ++__first2;
24539 }
24540 return std::copy(__first1, __last1, __result);
24541 }
24542 # 4699 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24543 template<typename _InputIterator1, typename _InputIterator2,
24544 typename _OutputIterator, typename _Compare>
24545 _OutputIterator
24546 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24547 _InputIterator2 __first2, _InputIterator2 __last2,
24548 _OutputIterator __result, _Compare __comp)
24549 {
24550 typedef typename iterator_traits<_InputIterator1>::value_type
24551 _ValueType1;
24552 typedef typename iterator_traits<_InputIterator2>::value_type
24553 _ValueType2;
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564 ;
24565 ;
24566
24567 while (__first1 != __last1 && __first2 != __last2)
24568 if (__comp(*__first1, *__first2))
24569 {
24570 *__result = *__first1;
24571 ++__first1;
24572 ++__result;
24573 }
24574 else if (__comp(*__first2, *__first1))
24575 ++__first2;
24576 else
24577 {
24578 ++__first1;
24579 ++__first2;
24580 }
24581 return std::copy(__first1, __last1, __result);
24582 }
24583 # 4756 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24584 template<typename _InputIterator1, typename _InputIterator2,
24585 typename _OutputIterator>
24586 _OutputIterator
24587 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24588 _InputIterator2 __first2, _InputIterator2 __last2,
24589 _OutputIterator __result)
24590 {
24591 typedef typename iterator_traits<_InputIterator1>::value_type
24592 _ValueType1;
24593 typedef typename iterator_traits<_InputIterator2>::value_type
24594 _ValueType2;
24595
24596
24597
24598
24599
24600
24601
24602
24603
24604
24605 ;
24606 ;
24607
24608 while (__first1 != __last1 && __first2 != __last2)
24609 if (*__first1 < *__first2)
24610 {
24611 *__result = *__first1;
24612 ++__first1;
24613 ++__result;
24614 }
24615 else if (*__first2 < *__first1)
24616 {
24617 *__result = *__first2;
24618 ++__first2;
24619 ++__result;
24620 }
24621 else
24622 {
24623 ++__first1;
24624 ++__first2;
24625 }
24626 return std::copy(__first2, __last2, std::copy(__first1,
24627 __last1, __result));
24628 }
24629 # 4821 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24630 template<typename _InputIterator1, typename _InputIterator2,
24631 typename _OutputIterator, typename _Compare>
24632 _OutputIterator
24633 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24634 _InputIterator2 __first2, _InputIterator2 __last2,
24635 _OutputIterator __result,
24636 _Compare __comp)
24637 {
24638 typedef typename iterator_traits<_InputIterator1>::value_type
24639 _ValueType1;
24640 typedef typename iterator_traits<_InputIterator2>::value_type
24641 _ValueType2;
24642
24643
24644
24645
24646
24647
24648
24649
24650
24651
24652
24653
24654 ;
24655 ;
24656
24657 while (__first1 != __last1 && __first2 != __last2)
24658 if (__comp(*__first1, *__first2))
24659 {
24660 *__result = *__first1;
24661 ++__first1;
24662 ++__result;
24663 }
24664 else if (__comp(*__first2, *__first1))
24665 {
24666 *__result = *__first2;
24667 ++__first2;
24668 ++__result;
24669 }
24670 else
24671 {
24672 ++__first1;
24673 ++__first2;
24674 }
24675 return std::copy(__first2, __last2, std::copy(__first1,
24676 __last1, __result));
24677 }
24678 # 4879 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24679 template<typename _ForwardIterator>
24680 _ForwardIterator
24681 max_element(_ForwardIterator __first, _ForwardIterator __last)
24682 {
24683
24684
24685
24686
24687 ;
24688
24689 if (__first == __last)
24690 return __first;
24691 _ForwardIterator __result = __first;
24692 while (++__first != __last)
24693 if (*__result < *__first)
24694 __result = __first;
24695 return __result;
24696 }
24697 # 4906 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24698 template<typename _ForwardIterator, typename _Compare>
24699 _ForwardIterator
24700 max_element(_ForwardIterator __first, _ForwardIterator __last,
24701 _Compare __comp)
24702 {
24703
24704
24705
24706
24707
24708 ;
24709
24710 if (__first == __last) return __first;
24711 _ForwardIterator __result = __first;
24712 while (++__first != __last)
24713 if (__comp(*__result, *__first)) __result = __first;
24714 return __result;
24715 }
24716
24717
24718
24719
24720
24721
24722
24723 template<typename _ForwardIterator>
24724 _ForwardIterator
24725 min_element(_ForwardIterator __first, _ForwardIterator __last)
24726 {
24727
24728
24729
24730
24731 ;
24732
24733 if (__first == __last)
24734 return __first;
24735 _ForwardIterator __result = __first;
24736 while (++__first != __last)
24737 if (*__first < *__result)
24738 __result = __first;
24739 return __result;
24740 }
24741 # 4958 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24742 template<typename _ForwardIterator, typename _Compare>
24743 _ForwardIterator
24744 min_element(_ForwardIterator __first, _ForwardIterator __last,
24745 _Compare __comp)
24746 {
24747
24748
24749
24750
24751
24752 ;
24753
24754 if (__first == __last)
24755 return __first;
24756 _ForwardIterator __result = __first;
24757 while (++__first != __last)
24758 if (__comp(*__first, *__result))
24759 __result = __first;
24760 return __result;
24761 }
24762 # 4993 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24763 template<typename _BidirectionalIterator>
24764 bool
24765 next_permutation(_BidirectionalIterator __first,
24766 _BidirectionalIterator __last)
24767 {
24768
24769
24770
24771
24772
24773 ;
24774
24775 if (__first == __last)
24776 return false;
24777 _BidirectionalIterator __i = __first;
24778 ++__i;
24779 if (__i == __last)
24780 return false;
24781 __i = __last;
24782 --__i;
24783
24784 for(;;)
24785 {
24786 _BidirectionalIterator __ii = __i;
24787 --__i;
24788 if (*__i < *__ii)
24789 {
24790 _BidirectionalIterator __j = __last;
24791 while (!(*__i < *--__j))
24792 {}
24793 std::iter_swap(__i, __j);
24794 std::reverse(__ii, __last);
24795 return true;
24796 }
24797 if (__i == __first)
24798 {
24799 std::reverse(__first, __last);
24800 return false;
24801 }
24802 }
24803 }
24804 # 5049 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24805 template<typename _BidirectionalIterator, typename _Compare>
24806 bool
24807 next_permutation(_BidirectionalIterator __first,
24808 _BidirectionalIterator __last, _Compare __comp)
24809 {
24810
24811
24812
24813
24814
24815
24816 ;
24817
24818 if (__first == __last)
24819 return false;
24820 _BidirectionalIterator __i = __first;
24821 ++__i;
24822 if (__i == __last)
24823 return false;
24824 __i = __last;
24825 --__i;
24826
24827 for(;;)
24828 {
24829 _BidirectionalIterator __ii = __i;
24830 --__i;
24831 if (__comp(*__i, *__ii))
24832 {
24833 _BidirectionalIterator __j = __last;
24834 while (!__comp(*__i, *--__j))
24835 {}
24836 std::iter_swap(__i, __j);
24837 std::reverse(__ii, __last);
24838 return true;
24839 }
24840 if (__i == __first)
24841 {
24842 std::reverse(__first, __last);
24843 return false;
24844 }
24845 }
24846 }
24847 # 5104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24848 template<typename _BidirectionalIterator>
24849 bool
24850 prev_permutation(_BidirectionalIterator __first,
24851 _BidirectionalIterator __last)
24852 {
24853
24854
24855
24856
24857
24858 ;
24859
24860 if (__first == __last)
24861 return false;
24862 _BidirectionalIterator __i = __first;
24863 ++__i;
24864 if (__i == __last)
24865 return false;
24866 __i = __last;
24867 --__i;
24868
24869 for(;;)
24870 {
24871 _BidirectionalIterator __ii = __i;
24872 --__i;
24873 if (*__ii < *__i)
24874 {
24875 _BidirectionalIterator __j = __last;
24876 while (!(*--__j < *__i))
24877 {}
24878 std::iter_swap(__i, __j);
24879 std::reverse(__ii, __last);
24880 return true;
24881 }
24882 if (__i == __first)
24883 {
24884 std::reverse(__first, __last);
24885 return false;
24886 }
24887 }
24888 }
24889 # 5160 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24890 template<typename _BidirectionalIterator, typename _Compare>
24891 bool
24892 prev_permutation(_BidirectionalIterator __first,
24893 _BidirectionalIterator __last, _Compare __comp)
24894 {
24895
24896
24897
24898
24899
24900
24901 ;
24902
24903 if (__first == __last)
24904 return false;
24905 _BidirectionalIterator __i = __first;
24906 ++__i;
24907 if (__i == __last)
24908 return false;
24909 __i = __last;
24910 --__i;
24911
24912 for(;;)
24913 {
24914 _BidirectionalIterator __ii = __i;
24915 --__i;
24916 if (__comp(*__ii, *__i))
24917 {
24918 _BidirectionalIterator __j = __last;
24919 while (!__comp(*--__j, *__i))
24920 {}
24921 std::iter_swap(__i, __j);
24922 std::reverse(__ii, __last);
24923 return true;
24924 }
24925 if (__i == __first)
24926 {
24927 std::reverse(__first, __last);
24928 return false;
24929 }
24930 }
24931 }
24932 # 5219 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24933 template<typename _InputIterator, typename _ForwardIterator>
24934 _InputIterator
24935 find_first_of(_InputIterator __first1, _InputIterator __last1,
24936 _ForwardIterator __first2, _ForwardIterator __last2)
24937 {
24938
24939
24940
24941
24942
24943
24944 ;
24945 ;
24946
24947 for ( ; __first1 != __last1; ++__first1)
24948 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
24949 if (*__first1 == *__iter)
24950 return __first1;
24951 return __last1;
24952 }
24953 # 5255 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24954 template<typename _InputIterator, typename _ForwardIterator,
24955 typename _BinaryPredicate>
24956 _InputIterator
24957 find_first_of(_InputIterator __first1, _InputIterator __last1,
24958 _ForwardIterator __first2, _ForwardIterator __last2,
24959 _BinaryPredicate __comp)
24960 {
24961
24962
24963
24964
24965
24966
24967 ;
24968 ;
24969
24970 for ( ; __first1 != __last1; ++__first1)
24971 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
24972 if (__comp(*__first1, *__iter))
24973 return __first1;
24974 return __last1;
24975 }
24976 # 5285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24977 template<typename _ForwardIterator1, typename _ForwardIterator2>
24978 _ForwardIterator1
24979 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
24980 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
24981 forward_iterator_tag, forward_iterator_tag)
24982 {
24983 if (__first2 == __last2)
24984 return __last1;
24985 else
24986 {
24987 _ForwardIterator1 __result = __last1;
24988 while (1)
24989 {
24990 _ForwardIterator1 __new_result
24991 = std::search(__first1, __last1, __first2, __last2);
24992 if (__new_result == __last1)
24993 return __result;
24994 else
24995 {
24996 __result = __new_result;
24997 __first1 = __new_result;
24998 ++__first1;
24999 }
25000 }
25001 }
25002 }
25003
25004 template<typename _ForwardIterator1, typename _ForwardIterator2,
25005 typename _BinaryPredicate>
25006 _ForwardIterator1
25007 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
25008 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
25009 forward_iterator_tag, forward_iterator_tag,
25010 _BinaryPredicate __comp)
25011 {
25012 if (__first2 == __last2)
25013 return __last1;
25014 else
25015 {
25016 _ForwardIterator1 __result = __last1;
25017 while (1)
25018 {
25019 _ForwardIterator1 __new_result
25020 = std::search(__first1, __last1, __first2, __last2, __comp);
25021 if (__new_result == __last1)
25022 return __result;
25023 else
25024 {
25025 __result = __new_result;
25026 __first1 = __new_result;
25027 ++__first1;
25028 }
25029 }
25030 }
25031 }
25032
25033
25034 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
25035 _BidirectionalIterator1
25036 __find_end(_BidirectionalIterator1 __first1,
25037 _BidirectionalIterator1 __last1,
25038 _BidirectionalIterator2 __first2,
25039 _BidirectionalIterator2 __last2,
25040 bidirectional_iterator_tag, bidirectional_iterator_tag)
25041 {
25042
25043
25044
25045
25046
25047
25048 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
25049 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
25050
25051 _RevIterator1 __rlast1(__first1);
25052 _RevIterator2 __rlast2(__first2);
25053 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
25054 _RevIterator2(__last2), __rlast2);
25055
25056 if (__rresult == __rlast1)
25057 return __last1;
25058 else
25059 {
25060 _BidirectionalIterator1 __result = __rresult.base();
25061 std::advance(__result, -std::distance(__first2, __last2));
25062 return __result;
25063 }
25064 }
25065
25066 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
25067 typename _BinaryPredicate>
25068 _BidirectionalIterator1
25069 __find_end(_BidirectionalIterator1 __first1,
25070 _BidirectionalIterator1 __last1,
25071 _BidirectionalIterator2 __first2,
25072 _BidirectionalIterator2 __last2,
25073 bidirectional_iterator_tag, bidirectional_iterator_tag,
25074 _BinaryPredicate __comp)
25075 {
25076
25077
25078
25079
25080
25081
25082 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
25083 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
25084
25085 _RevIterator1 __rlast1(__first1);
25086 _RevIterator2 __rlast2(__first2);
25087 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
25088 _RevIterator2(__last2), __rlast2,
25089 __comp);
25090
25091 if (__rresult == __rlast1)
25092 return __last1;
25093 else
25094 {
25095 _BidirectionalIterator1 __result = __rresult.base();
25096 std::advance(__result, -std::distance(__first2, __last2));
25097 return __result;
25098 }
25099 }
25100 # 5435 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
25101 template<typename _ForwardIterator1, typename _ForwardIterator2>
25102 inline _ForwardIterator1
25103 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
25104 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
25105 {
25106
25107
25108
25109
25110
25111
25112 ;
25113 ;
25114
25115 return std::__find_end(__first1, __last1, __first2, __last2,
25116 std::__iterator_category(__first1),
25117 std::__iterator_category(__first2));
25118 }
25119 # 5480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
25120 template<typename _ForwardIterator1, typename _ForwardIterator2,
25121 typename _BinaryPredicate>
25122 inline _ForwardIterator1
25123 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
25124 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
25125 _BinaryPredicate __comp)
25126 {
25127
25128
25129
25130
25131
25132
25133 ;
25134 ;
25135
25136 return std::__find_end(__first1, __last1, __first2, __last2,
25137 std::__iterator_category(__first1),
25138 std::__iterator_category(__first2),
25139 __comp);
25140 }
25141
25142 }
25143 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 2 3
25144 # 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
25145 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 1 3
25146 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 3
25147 #define _BASIC_STRING_TCC 1
25148
25149
25150 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 3
25151
25152 namespace std __attribute__ ((__visibility__ ("default"))) {
25153
25154 template<typename _Type>
25155 inline bool
25156 __is_null_pointer(_Type* __ptr)
25157 { return __ptr == 0; }
25158
25159 template<typename _Type>
25160 inline bool
25161 __is_null_pointer(_Type)
25162 { return false; }
25163
25164 template<typename _CharT, typename _Traits, typename _Alloc>
25165 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
25166 basic_string<_CharT, _Traits, _Alloc>::
25167 _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
25168
25169 template<typename _CharT, typename _Traits, typename _Alloc>
25170 const _CharT
25171 basic_string<_CharT, _Traits, _Alloc>::
25172 _Rep::_S_terminal = _CharT();
25173
25174 template<typename _CharT, typename _Traits, typename _Alloc>
25175 const typename basic_string<_CharT, _Traits, _Alloc>::size_type
25176 basic_string<_CharT, _Traits, _Alloc>::npos;
25177
25178
25179
25180 template<typename _CharT, typename _Traits, typename _Alloc>
25181 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25182 basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
25183 (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
25184 sizeof(size_type)];
25185
25186
25187
25188
25189
25190 template<typename _CharT, typename _Traits, typename _Alloc>
25191 template<typename _InIterator>
25192 _CharT*
25193 basic_string<_CharT, _Traits, _Alloc>::
25194 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
25195 input_iterator_tag)
25196 {
25197
25198 if (__beg == __end && __a == _Alloc())
25199 return _S_empty_rep()._M_refdata();
25200
25201
25202 _CharT __buf[128];
25203 size_type __len = 0;
25204 while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
25205 {
25206 __buf[__len++] = *__beg;
25207 ++__beg;
25208 }
25209 _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
25210 _M_copy(__r->_M_refdata(), __buf, __len);
25211 try
25212 {
25213 while (__beg != __end)
25214 {
25215 if (__len == __r->_M_capacity)
25216 {
25217
25218 _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
25219 _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
25220 __r->_M_destroy(__a);
25221 __r = __another;
25222 }
25223 __r->_M_refdata()[__len++] = *__beg;
25224 ++__beg;
25225 }
25226 }
25227 catch(...)
25228 {
25229 __r->_M_destroy(__a);
25230 throw;
25231 }
25232 __r->_M_set_length_and_sharable(__len);
25233 return __r->_M_refdata();
25234 }
25235
25236 template<typename _CharT, typename _Traits, typename _Alloc>
25237 template <typename _InIterator>
25238 _CharT*
25239 basic_string<_CharT, _Traits, _Alloc>::
25240 _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
25241 forward_iterator_tag)
25242 {
25243
25244 if (__beg == __end && __a == _Alloc())
25245 return _S_empty_rep()._M_refdata();
25246
25247
25248 if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0))
25249 __throw_logic_error(("basic_string::_S_construct NULL not valid"));
25250
25251 const size_type __dnew = static_cast<size_type>(std::distance(__beg,
25252 __end));
25253
25254 _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
25255 try
25256 { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
25257 catch(...)
25258 {
25259 __r->_M_destroy(__a);
25260 throw;
25261 }
25262 __r->_M_set_length_and_sharable(__dnew);
25263 return __r->_M_refdata();
25264 }
25265
25266 template<typename _CharT, typename _Traits, typename _Alloc>
25267 _CharT*
25268 basic_string<_CharT, _Traits, _Alloc>::
25269 _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
25270 {
25271
25272 if (__n == 0 && __a == _Alloc())
25273 return _S_empty_rep()._M_refdata();
25274
25275
25276 _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
25277 if (__n)
25278 _M_assign(__r->_M_refdata(), __n, __c);
25279
25280 __r->_M_set_length_and_sharable(__n);
25281 return __r->_M_refdata();
25282 }
25283
25284 template<typename _CharT, typename _Traits, typename _Alloc>
25285 basic_string<_CharT, _Traits, _Alloc>::
25286 basic_string(const basic_string& __str)
25287 : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
25288 __str.get_allocator()),
25289 __str.get_allocator())
25290 { }
25291
25292 template<typename _CharT, typename _Traits, typename _Alloc>
25293 basic_string<_CharT, _Traits, _Alloc>::
25294 basic_string(const _Alloc& __a)
25295 : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
25296 { }
25297
25298 template<typename _CharT, typename _Traits, typename _Alloc>
25299 basic_string<_CharT, _Traits, _Alloc>::
25300 basic_string(const basic_string& __str, size_type __pos, size_type __n)
25301 : _M_dataplus(_S_construct(__str._M_data()
25302 + __str._M_check(__pos,
25303 "basic_string::basic_string"),
25304 __str._M_data() + __str._M_limit(__pos, __n)
25305 + __pos, _Alloc()), _Alloc())
25306 { }
25307
25308 template<typename _CharT, typename _Traits, typename _Alloc>
25309 basic_string<_CharT, _Traits, _Alloc>::
25310 basic_string(const basic_string& __str, size_type __pos,
25311 size_type __n, const _Alloc& __a)
25312 : _M_dataplus(_S_construct(__str._M_data()
25313 + __str._M_check(__pos,
25314 "basic_string::basic_string"),
25315 __str._M_data() + __str._M_limit(__pos, __n)
25316 + __pos, __a), __a)
25317 { }
25318
25319
25320 template<typename _CharT, typename _Traits, typename _Alloc>
25321 basic_string<_CharT, _Traits, _Alloc>::
25322 basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
25323 : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
25324 { }
25325
25326
25327 template<typename _CharT, typename _Traits, typename _Alloc>
25328 basic_string<_CharT, _Traits, _Alloc>::
25329 basic_string(const _CharT* __s, const _Alloc& __a)
25330 : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
25331 __s + npos, __a), __a)
25332 { }
25333
25334 template<typename _CharT, typename _Traits, typename _Alloc>
25335 basic_string<_CharT, _Traits, _Alloc>::
25336 basic_string(size_type __n, _CharT __c, const _Alloc& __a)
25337 : _M_dataplus(_S_construct(__n, __c, __a), __a)
25338 { }
25339
25340
25341 template<typename _CharT, typename _Traits, typename _Alloc>
25342 template<typename _InputIterator>
25343 basic_string<_CharT, _Traits, _Alloc>::
25344 basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
25345 : _M_dataplus(_S_construct(__beg, __end, __a), __a)
25346 { }
25347
25348 template<typename _CharT, typename _Traits, typename _Alloc>
25349 basic_string<_CharT, _Traits, _Alloc>&
25350 basic_string<_CharT, _Traits, _Alloc>::
25351 assign(const basic_string& __str)
25352 {
25353 if (_M_rep() != __str._M_rep())
25354 {
25355
25356 const allocator_type __a = this->get_allocator();
25357 _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
25358 _M_rep()->_M_dispose(__a);
25359 _M_data(__tmp);
25360 }
25361 return *this;
25362 }
25363
25364 template<typename _CharT, typename _Traits, typename _Alloc>
25365 basic_string<_CharT, _Traits, _Alloc>&
25366 basic_string<_CharT, _Traits, _Alloc>::
25367 assign(const _CharT* __s, size_type __n)
25368 {
25369 ;
25370 _M_check_length(this->size(), __n, "basic_string::assign");
25371 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
25372 return _M_replace_safe(size_type(0), this->size(), __s, __n);
25373 else
25374 {
25375
25376 const size_type __pos = __s - _M_data();
25377 if (__pos >= __n)
25378 _M_copy(_M_data(), __s, __n);
25379 else if (__pos)
25380 _M_move(_M_data(), __s, __n);
25381 _M_rep()->_M_set_length_and_sharable(__n);
25382 return *this;
25383 }
25384 }
25385
25386 template<typename _CharT, typename _Traits, typename _Alloc>
25387 basic_string<_CharT, _Traits, _Alloc>&
25388 basic_string<_CharT, _Traits, _Alloc>::
25389 append(size_type __n, _CharT __c)
25390 {
25391 if (__n)
25392 {
25393 _M_check_length(size_type(0), __n, "basic_string::append");
25394 const size_type __len = __n + this->size();
25395 if (__len > this->capacity() || _M_rep()->_M_is_shared())
25396 this->reserve(__len);
25397 _M_assign(_M_data() + this->size(), __n, __c);
25398 _M_rep()->_M_set_length_and_sharable(__len);
25399 }
25400 return *this;
25401 }
25402
25403 template<typename _CharT, typename _Traits, typename _Alloc>
25404 basic_string<_CharT, _Traits, _Alloc>&
25405 basic_string<_CharT, _Traits, _Alloc>::
25406 append(const _CharT* __s, size_type __n)
25407 {
25408 ;
25409 if (__n)
25410 {
25411 _M_check_length(size_type(0), __n, "basic_string::append");
25412 const size_type __len = __n + this->size();
25413 if (__len > this->capacity() || _M_rep()->_M_is_shared())
25414 {
25415 if (_M_disjunct(__s))
25416 this->reserve(__len);
25417 else
25418 {
25419 const size_type __off = __s - _M_data();
25420 this->reserve(__len);
25421 __s = _M_data() + __off;
25422 }
25423 }
25424 _M_copy(_M_data() + this->size(), __s, __n);
25425 _M_rep()->_M_set_length_and_sharable(__len);
25426 }
25427 return *this;
25428 }
25429
25430 template<typename _CharT, typename _Traits, typename _Alloc>
25431 basic_string<_CharT, _Traits, _Alloc>&
25432 basic_string<_CharT, _Traits, _Alloc>::
25433 append(const basic_string& __str)
25434 {
25435 const size_type __size = __str.size();
25436 if (__size)
25437 {
25438 const size_type __len = __size + this->size();
25439 if (__len > this->capacity() || _M_rep()->_M_is_shared())
25440 this->reserve(__len);
25441 _M_copy(_M_data() + this->size(), __str._M_data(), __size);
25442 _M_rep()->_M_set_length_and_sharable(__len);
25443 }
25444 return *this;
25445 }
25446
25447 template<typename _CharT, typename _Traits, typename _Alloc>
25448 basic_string<_CharT, _Traits, _Alloc>&
25449 basic_string<_CharT, _Traits, _Alloc>::
25450 append(const basic_string& __str, size_type __pos, size_type __n)
25451 {
25452 __str._M_check(__pos, "basic_string::append");
25453 __n = __str._M_limit(__pos, __n);
25454 if (__n)
25455 {
25456 const size_type __len = __n + this->size();
25457 if (__len > this->capacity() || _M_rep()->_M_is_shared())
25458 this->reserve(__len);
25459 _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
25460 _M_rep()->_M_set_length_and_sharable(__len);
25461 }
25462 return *this;
25463 }
25464
25465 template<typename _CharT, typename _Traits, typename _Alloc>
25466 basic_string<_CharT, _Traits, _Alloc>&
25467 basic_string<_CharT, _Traits, _Alloc>::
25468 insert(size_type __pos, const _CharT* __s, size_type __n)
25469 {
25470 ;
25471 _M_check(__pos, "basic_string::insert");
25472 _M_check_length(size_type(0), __n, "basic_string::insert");
25473 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
25474 return _M_replace_safe(__pos, size_type(0), __s, __n);
25475 else
25476 {
25477
25478 const size_type __off = __s - _M_data();
25479 _M_mutate(__pos, 0, __n);
25480 __s = _M_data() + __off;
25481 _CharT* __p = _M_data() + __pos;
25482 if (__s + __n <= __p)
25483 _M_copy(__p, __s, __n);
25484 else if (__s >= __p)
25485 _M_copy(__p, __s + __n, __n);
25486 else
25487 {
25488 const size_type __nleft = __p - __s;
25489 _M_copy(__p, __s, __nleft);
25490 _M_copy(__p + __nleft, __p + __n, __n - __nleft);
25491 }
25492 return *this;
25493 }
25494 }
25495
25496 template<typename _CharT, typename _Traits, typename _Alloc>
25497 basic_string<_CharT, _Traits, _Alloc>&
25498 basic_string<_CharT, _Traits, _Alloc>::
25499 replace(size_type __pos, size_type __n1, const _CharT* __s,
25500 size_type __n2)
25501 {
25502 ;
25503 _M_check(__pos, "basic_string::replace");
25504 __n1 = _M_limit(__pos, __n1);
25505 _M_check_length(__n1, __n2, "basic_string::replace");
25506 bool __left;
25507 if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
25508 return _M_replace_safe(__pos, __n1, __s, __n2);
25509 else if ((__left = __s + __n2 <= _M_data() + __pos)
25510 || _M_data() + __pos + __n1 <= __s)
25511 {
25512
25513 size_type __off = __s - _M_data();
25514 __left ? __off : (__off += __n2 - __n1);
25515 _M_mutate(__pos, __n1, __n2);
25516 _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
25517 return *this;
25518 }
25519 else
25520 {
25521
25522 const basic_string __tmp(__s, __n2);
25523 return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
25524 }
25525 }
25526
25527 template<typename _CharT, typename _Traits, typename _Alloc>
25528 void
25529 basic_string<_CharT, _Traits, _Alloc>::_Rep::
25530 _M_destroy(const _Alloc& __a) throw ()
25531 {
25532 const size_type __size = sizeof(_Rep_base) +
25533 (this->_M_capacity + 1) * sizeof(_CharT);
25534 _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
25535 }
25536
25537 template<typename _CharT, typename _Traits, typename _Alloc>
25538 void
25539 basic_string<_CharT, _Traits, _Alloc>::
25540 _M_leak_hard()
25541 {
25542
25543 if (_M_rep() == &_S_empty_rep())
25544 return;
25545
25546 if (_M_rep()->_M_is_shared())
25547 _M_mutate(0, 0, 0);
25548 _M_rep()->_M_set_leaked();
25549 }
25550
25551 template<typename _CharT, typename _Traits, typename _Alloc>
25552 void
25553 basic_string<_CharT, _Traits, _Alloc>::
25554 _M_mutate(size_type __pos, size_type __len1, size_type __len2)
25555 {
25556 const size_type __old_size = this->size();
25557 const size_type __new_size = __old_size + __len2 - __len1;
25558 const size_type __how_much = __old_size - __pos - __len1;
25559
25560 if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
25561 {
25562
25563 const allocator_type __a = get_allocator();
25564 _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
25565
25566 if (__pos)
25567 _M_copy(__r->_M_refdata(), _M_data(), __pos);
25568 if (__how_much)
25569 _M_copy(__r->_M_refdata() + __pos + __len2,
25570 _M_data() + __pos + __len1, __how_much);
25571
25572 _M_rep()->_M_dispose(__a);
25573 _M_data(__r->_M_refdata());
25574 }
25575 else if (__how_much && __len1 != __len2)
25576 {
25577
25578 _M_move(_M_data() + __pos + __len2,
25579 _M_data() + __pos + __len1, __how_much);
25580 }
25581 _M_rep()->_M_set_length_and_sharable(__new_size);
25582 }
25583
25584 template<typename _CharT, typename _Traits, typename _Alloc>
25585 void
25586 basic_string<_CharT, _Traits, _Alloc>::
25587 reserve(size_type __res)
25588 {
25589 if (__res != this->capacity() || _M_rep()->_M_is_shared())
25590 {
25591
25592 if (__res < this->size())
25593 __res = this->size();
25594 const allocator_type __a = get_allocator();
25595 _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
25596 _M_rep()->_M_dispose(__a);
25597 _M_data(__tmp);
25598 }
25599 }
25600
25601 template<typename _CharT, typename _Traits, typename _Alloc>
25602 void
25603 basic_string<_CharT, _Traits, _Alloc>::
25604 swap(basic_string& __s)
25605 {
25606 if (_M_rep()->_M_is_leaked())
25607 _M_rep()->_M_set_sharable();
25608 if (__s._M_rep()->_M_is_leaked())
25609 __s._M_rep()->_M_set_sharable();
25610 if (this->get_allocator() == __s.get_allocator())
25611 {
25612 _CharT* __tmp = _M_data();
25613 _M_data(__s._M_data());
25614 __s._M_data(__tmp);
25615 }
25616
25617 else
25618 {
25619 const basic_string __tmp1(_M_ibegin(), _M_iend(),
25620 __s.get_allocator());
25621 const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
25622 this->get_allocator());
25623 *this = __tmp2;
25624 __s = __tmp1;
25625 }
25626 }
25627
25628 template<typename _CharT, typename _Traits, typename _Alloc>
25629 typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
25630 basic_string<_CharT, _Traits, _Alloc>::_Rep::
25631 _S_create(size_type __capacity, size_type __old_capacity,
25632 const _Alloc& __alloc)
25633 {
25634
25635
25636 if (__capacity > _S_max_size)
25637 __throw_length_error(("basic_string::_S_create"));
25638 # 559 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 3
25639 const size_type __pagesize = 4096;
25640 const size_type __malloc_header_size = 4 * sizeof(void*);
25641
25642
25643
25644
25645
25646
25647
25648 if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
25649 __capacity = 2 * __old_capacity;
25650
25651
25652
25653
25654 size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
25655
25656 const size_type __adj_size = __size + __malloc_header_size;
25657 if (__adj_size > __pagesize && __capacity > __old_capacity)
25658 {
25659 const size_type __extra = __pagesize - __adj_size % __pagesize;
25660 __capacity += __extra / sizeof(_CharT);
25661
25662 if (__capacity > _S_max_size)
25663 __capacity = _S_max_size;
25664 __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
25665 }
25666
25667
25668
25669 void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
25670 _Rep *__p = new (__place) _Rep;
25671 __p->_M_capacity = __capacity;
25672
25673
25674
25675
25676
25677
25678
25679 __p->_M_set_sharable();
25680 return __p;
25681 }
25682
25683 template<typename _CharT, typename _Traits, typename _Alloc>
25684 _CharT*
25685 basic_string<_CharT, _Traits, _Alloc>::_Rep::
25686 _M_clone(const _Alloc& __alloc, size_type __res)
25687 {
25688
25689 const size_type __requested_cap = this->_M_length + __res;
25690 _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
25691 __alloc);
25692 if (this->_M_length)
25693 _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
25694
25695 __r->_M_set_length_and_sharable(this->_M_length);
25696 return __r->_M_refdata();
25697 }
25698
25699 template<typename _CharT, typename _Traits, typename _Alloc>
25700 void
25701 basic_string<_CharT, _Traits, _Alloc>::
25702 resize(size_type __n, _CharT __c)
25703 {
25704 const size_type __size = this->size();
25705 _M_check_length(__size, __n, "basic_string::resize");
25706 if (__size < __n)
25707 this->append(__n - __size, __c);
25708 else if (__n < __size)
25709 this->erase(__n);
25710
25711 }
25712
25713 template<typename _CharT, typename _Traits, typename _Alloc>
25714 template<typename _InputIterator>
25715 basic_string<_CharT, _Traits, _Alloc>&
25716 basic_string<_CharT, _Traits, _Alloc>::
25717 _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
25718 _InputIterator __k2, __false_type)
25719 {
25720 const basic_string __s(__k1, __k2);
25721 const size_type __n1 = __i2 - __i1;
25722 _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
25723 return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
25724 __s.size());
25725 }
25726
25727 template<typename _CharT, typename _Traits, typename _Alloc>
25728 basic_string<_CharT, _Traits, _Alloc>&
25729 basic_string<_CharT, _Traits, _Alloc>::
25730 _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
25731 _CharT __c)
25732 {
25733 _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
25734 _M_mutate(__pos1, __n1, __n2);
25735 if (__n2)
25736 _M_assign(_M_data() + __pos1, __n2, __c);
25737 return *this;
25738 }
25739
25740 template<typename _CharT, typename _Traits, typename _Alloc>
25741 basic_string<_CharT, _Traits, _Alloc>&
25742 basic_string<_CharT, _Traits, _Alloc>::
25743 _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
25744 size_type __n2)
25745 {
25746 _M_mutate(__pos1, __n1, __n2);
25747 if (__n2)
25748 _M_copy(_M_data() + __pos1, __s, __n2);
25749 return *this;
25750 }
25751
25752 template<typename _CharT, typename _Traits, typename _Alloc>
25753 basic_string<_CharT, _Traits, _Alloc>
25754 operator+(const _CharT* __lhs,
25755 const basic_string<_CharT, _Traits, _Alloc>& __rhs)
25756 {
25757 ;
25758 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
25759 typedef typename __string_type::size_type __size_type;
25760 const __size_type __len = _Traits::length(__lhs);
25761 __string_type __str;
25762 __str.reserve(__len + __rhs.size());
25763 __str.append(__lhs, __len);
25764 __str.append(__rhs);
25765 return __str;
25766 }
25767
25768 template<typename _CharT, typename _Traits, typename _Alloc>
25769 basic_string<_CharT, _Traits, _Alloc>
25770 operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
25771 {
25772 typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
25773 typedef typename __string_type::size_type __size_type;
25774 __string_type __str;
25775 const __size_type __len = __rhs.size();
25776 __str.reserve(__len + 1);
25777 __str.append(__size_type(1), __lhs);
25778 __str.append(__rhs);
25779 return __str;
25780 }
25781
25782 template<typename _CharT, typename _Traits, typename _Alloc>
25783 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25784 basic_string<_CharT, _Traits, _Alloc>::
25785 copy(_CharT* __s, size_type __n, size_type __pos) const
25786 {
25787 _M_check(__pos, "basic_string::copy");
25788 __n = _M_limit(__pos, __n);
25789 ;
25790 if (__n)
25791 _M_copy(__s, _M_data() + __pos, __n);
25792
25793 return __n;
25794 }
25795
25796 template<typename _CharT, typename _Traits, typename _Alloc>
25797 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25798 basic_string<_CharT, _Traits, _Alloc>::
25799 find(const _CharT* __s, size_type __pos, size_type __n) const
25800 {
25801 ;
25802 const size_type __size = this->size();
25803 const _CharT* __data = _M_data();
25804
25805 if (__n == 0)
25806 return __pos <= __size ? __pos : npos;
25807
25808 if (__n <= __size)
25809 {
25810 for (; __pos <= __size - __n; ++__pos)
25811 if (traits_type::eq(__data[__pos], __s[0])
25812 && traits_type::compare(__data + __pos + 1,
25813 __s + 1, __n - 1) == 0)
25814 return __pos;
25815 }
25816 return npos;
25817 }
25818
25819 template<typename _CharT, typename _Traits, typename _Alloc>
25820 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25821 basic_string<_CharT, _Traits, _Alloc>::
25822 find(_CharT __c, size_type __pos) const
25823 {
25824 size_type __ret = npos;
25825 const size_type __size = this->size();
25826 if (__pos < __size)
25827 {
25828 const _CharT* __data = _M_data();
25829 const size_type __n = __size - __pos;
25830 const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
25831 if (__p)
25832 __ret = __p - __data;
25833 }
25834 return __ret;
25835 }
25836
25837 template<typename _CharT, typename _Traits, typename _Alloc>
25838 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25839 basic_string<_CharT, _Traits, _Alloc>::
25840 rfind(const _CharT* __s, size_type __pos, size_type __n) const
25841 {
25842 ;
25843 const size_type __size = this->size();
25844 if (__n <= __size)
25845 {
25846 __pos = std::min(size_type(__size - __n), __pos);
25847 const _CharT* __data = _M_data();
25848 do
25849 {
25850 if (traits_type::compare(__data + __pos, __s, __n) == 0)
25851 return __pos;
25852 }
25853 while (__pos-- > 0);
25854 }
25855 return npos;
25856 }
25857
25858 template<typename _CharT, typename _Traits, typename _Alloc>
25859 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25860 basic_string<_CharT, _Traits, _Alloc>::
25861 rfind(_CharT __c, size_type __pos) const
25862 {
25863 size_type __size = this->size();
25864 if (__size)
25865 {
25866 if (--__size > __pos)
25867 __size = __pos;
25868 for (++__size; __size-- > 0; )
25869 if (traits_type::eq(_M_data()[__size], __c))
25870 return __size;
25871 }
25872 return npos;
25873 }
25874
25875 template<typename _CharT, typename _Traits, typename _Alloc>
25876 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25877 basic_string<_CharT, _Traits, _Alloc>::
25878 find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
25879 {
25880 ;
25881 for (; __n && __pos < this->size(); ++__pos)
25882 {
25883 const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
25884 if (__p)
25885 return __pos;
25886 }
25887 return npos;
25888 }
25889
25890 template<typename _CharT, typename _Traits, typename _Alloc>
25891 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25892 basic_string<_CharT, _Traits, _Alloc>::
25893 find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
25894 {
25895 ;
25896 size_type __size = this->size();
25897 if (__size && __n)
25898 {
25899 if (--__size > __pos)
25900 __size = __pos;
25901 do
25902 {
25903 if (traits_type::find(__s, __n, _M_data()[__size]))
25904 return __size;
25905 }
25906 while (__size-- != 0);
25907 }
25908 return npos;
25909 }
25910
25911 template<typename _CharT, typename _Traits, typename _Alloc>
25912 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25913 basic_string<_CharT, _Traits, _Alloc>::
25914 find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
25915 {
25916 ;
25917 for (; __pos < this->size(); ++__pos)
25918 if (!traits_type::find(__s, __n, _M_data()[__pos]))
25919 return __pos;
25920 return npos;
25921 }
25922
25923 template<typename _CharT, typename _Traits, typename _Alloc>
25924 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25925 basic_string<_CharT, _Traits, _Alloc>::
25926 find_first_not_of(_CharT __c, size_type __pos) const
25927 {
25928 for (; __pos < this->size(); ++__pos)
25929 if (!traits_type::eq(_M_data()[__pos], __c))
25930 return __pos;
25931 return npos;
25932 }
25933
25934 template<typename _CharT, typename _Traits, typename _Alloc>
25935 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25936 basic_string<_CharT, _Traits, _Alloc>::
25937 find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
25938 {
25939 ;
25940 size_type __size = this->size();
25941 if (__size)
25942 {
25943 if (--__size > __pos)
25944 __size = __pos;
25945 do
25946 {
25947 if (!traits_type::find(__s, __n, _M_data()[__size]))
25948 return __size;
25949 }
25950 while (__size--);
25951 }
25952 return npos;
25953 }
25954
25955 template<typename _CharT, typename _Traits, typename _Alloc>
25956 typename basic_string<_CharT, _Traits, _Alloc>::size_type
25957 basic_string<_CharT, _Traits, _Alloc>::
25958 find_last_not_of(_CharT __c, size_type __pos) const
25959 {
25960 size_type __size = this->size();
25961 if (__size)
25962 {
25963 if (--__size > __pos)
25964 __size = __pos;
25965 do
25966 {
25967 if (!traits_type::eq(_M_data()[__size], __c))
25968 return __size;
25969 }
25970 while (__size--);
25971 }
25972 return npos;
25973 }
25974
25975 template<typename _CharT, typename _Traits, typename _Alloc>
25976 int
25977 basic_string<_CharT, _Traits, _Alloc>::
25978 compare(size_type __pos, size_type __n, const basic_string& __str) const
25979 {
25980 _M_check(__pos, "basic_string::compare");
25981 __n = _M_limit(__pos, __n);
25982 const size_type __osize = __str.size();
25983 const size_type __len = std::min(__n, __osize);
25984 int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
25985 if (!__r)
25986 __r = __n - __osize;
25987 return __r;
25988 }
25989
25990 template<typename _CharT, typename _Traits, typename _Alloc>
25991 int
25992 basic_string<_CharT, _Traits, _Alloc>::
25993 compare(size_type __pos1, size_type __n1, const basic_string& __str,
25994 size_type __pos2, size_type __n2) const
25995 {
25996 _M_check(__pos1, "basic_string::compare");
25997 __str._M_check(__pos2, "basic_string::compare");
25998 __n1 = _M_limit(__pos1, __n1);
25999 __n2 = __str._M_limit(__pos2, __n2);
26000 const size_type __len = std::min(__n1, __n2);
26001 int __r = traits_type::compare(_M_data() + __pos1,
26002 __str.data() + __pos2, __len);
26003 if (!__r)
26004 __r = __n1 - __n2;
26005 return __r;
26006 }
26007
26008 template<typename _CharT, typename _Traits, typename _Alloc>
26009 int
26010 basic_string<_CharT, _Traits, _Alloc>::
26011 compare(const _CharT* __s) const
26012 {
26013 ;
26014 const size_type __size = this->size();
26015 const size_type __osize = traits_type::length(__s);
26016 const size_type __len = std::min(__size, __osize);
26017 int __r = traits_type::compare(_M_data(), __s, __len);
26018 if (!__r)
26019 __r = __size - __osize;
26020 return __r;
26021 }
26022
26023 template<typename _CharT, typename _Traits, typename _Alloc>
26024 int
26025 basic_string <_CharT, _Traits, _Alloc>::
26026 compare(size_type __pos, size_type __n1, const _CharT* __s) const
26027 {
26028 ;
26029 _M_check(__pos, "basic_string::compare");
26030 __n1 = _M_limit(__pos, __n1);
26031 const size_type __osize = traits_type::length(__s);
26032 const size_type __len = std::min(__n1, __osize);
26033 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
26034 if (!__r)
26035 __r = __n1 - __osize;
26036 return __r;
26037 }
26038
26039 template<typename _CharT, typename _Traits, typename _Alloc>
26040 int
26041 basic_string <_CharT, _Traits, _Alloc>::
26042 compare(size_type __pos, size_type __n1, const _CharT* __s,
26043 size_type __n2) const
26044 {
26045 ;
26046 _M_check(__pos, "basic_string::compare");
26047 __n1 = _M_limit(__pos, __n1);
26048 const size_type __len = std::min(__n1, __n2);
26049 int __r = traits_type::compare(_M_data() + __pos, __s, __len);
26050 if (!__r)
26051 __r = __n1 - __n2;
26052 return __r;
26053 }
26054
26055
26056
26057
26058
26059 extern template class basic_string<char>;
26060 extern template
26061 basic_istream<char>&
26062 operator>>(basic_istream<char>&, string&);
26063 extern template
26064 basic_ostream<char>&
26065 operator<<(basic_ostream<char>&, const string&);
26066 extern template
26067 basic_istream<char>&
26068 getline(basic_istream<char>&, string&, char);
26069 extern template
26070 basic_istream<char>&
26071 getline(basic_istream<char>&, string&);
26072
26073
26074 extern template class basic_string<wchar_t>;
26075 extern template
26076 basic_istream<wchar_t>&
26077 operator>>(basic_istream<wchar_t>&, wstring&);
26078 extern template
26079 basic_ostream<wchar_t>&
26080 operator<<(basic_ostream<wchar_t>&, const wstring&);
26081 extern template
26082 basic_istream<wchar_t>&
26083 getline(basic_istream<wchar_t>&, wstring&, wchar_t);
26084 extern template
26085 basic_istream<wchar_t>&
26086 getline(basic_istream<wchar_t>&, wstring&);
26087
26088
26089
26090 }
26091 # 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
26092 # 40 "LogFactory.h" 2
26093
26094 namespace aria2 {
26095
26096 class Logger;
26097
26098 class LogFactory {
26099 private:
26100 static std::string filename;
26101 static Logger* logger;
26102 public:
26103
26104
26105
26106
26107 static Logger* getInstance();
26108
26109
26110
26111
26112 static void setLogFile(const std::string& name) {
26113 filename = name;
26114 }
26115
26116
26117
26118
26119 static void release();
26120 };
26121
26122 }
26123 # 37 "Command.cc" 2
26124 # 1 "Logger.h" 1
26125 # 36 "Logger.h"
26126 #define _D_LOGGER_H_
26127
26128
26129
26130 namespace aria2 {
26131
26132 class Exception;
26133
26134 class Logger {
26135 public:
26136 virtual ~Logger() {}
26137 virtual void debug(const char* msg, ...) const = 0;
26138 virtual void debug(const char* msg, Exception* ex, ...) const = 0;
26139 virtual void info(const char* msg, ...) const = 0;
26140 virtual void info(const char* msg, Exception* ex, ...) const = 0;
26141 virtual void notice(const char* msg, ...) const = 0;
26142 virtual void notice(const char* msg, Exception* ex, ...) const = 0;
26143 virtual void warn(const char* msg, ...) const = 0;
26144 virtual void warn(const char* msg, Exception* ex, ...) const = 0;
26145 virtual void error(const char* msg, ...) const = 0;
26146 virtual void error(const char* msg, Exception* ex, ...) const = 0;
26147
26148 enum LEVEL {
26149 DEBUG = 1 << 0,
26150 INFO = 1 << 1,
26151 NOTICE = 1 << 2,
26152 WARN = 1 << 3,
26153 ERROR = 1 << 4,
26154 };
26155 };
26156
26157 }
26158 # 38 "Command.cc" 2
26159
26160 namespace aria2 {
26161
26162 int32_t Command::uuidGen = 0;
26163
26164 Command::Command(int32_t cuid):uuid(uuidGen++),
26165 status(STATUS_INACTIVE),
26166 cuid(cuid),
26167 logger(LogFactory::getInstance()) {}
26168
26169 void Command::transitStatus()
26170 {
26171 switch(status) {
26172 case STATUS_REALTIME:
26173 break;
26174 default:
26175 status = STATUS_INACTIVE;
26176 }
26177 }
26178
26179 }